typedef    struct fil_space_struct    fil_space_t;

/** Tablespace or log data space: let us call them by a common name space */
struct fil_space_struct {
    char*        name;    /*!< space name = the path to the first file in
                it */
    ulint        id;    /*!< space id */
    ib_int64_t    tablespace_version;
                /*!< in DISCARD/IMPORT this timestamp
                is used to check if we should ignore
                an insert buffer merge request for a
                page because it actually was for the
                previous incarnation of the space */
    ibool        mark;    /*!< this is set to TRUE at database startup if
                the space corresponds to a table in the InnoDB
                data dictionary; so we can print a warning of
                orphaned tablespaces */
    ibool        stop_ios;/*!< TRUE if we want to rename the
                .ibd file of tablespace and want to
                stop temporarily posting of new i/o
                requests on the file */
    ibool        stop_new_ops;
                /*!< we set this TRUE when we start
                deleting a single-table tablespace.
                When this is set following new ops
                are not allowed:
                * read IO request
                * ibuf merge
                * file flush
                Note that we can still possibly have
                new write operations because we don't
                check this flag when doing flush
                batches. */
    ulint        purpose;/*!< FIL_TABLESPACE, FIL_LOG, or
                FIL_ARCH_LOG */
    UT_LIST_BASE_NODE_T(fil_node_t) chain;
                /*!< base node for the file chain */
    ulint        size;    /*!< space size in pages; 0 if a single-table
                tablespace whose size we do not know yet;
                last incomplete megabytes in data files may be
                ignored if space == 0 */
    ulint        flags;    /*!< compressed page size and file format, or 0 */
    ulint        n_reserved_extents;
                /*!< number of reserved free extents for
                ongoing operations like B-tree page split */
    ulint        n_pending_flushes; /*!< this is positive when flushing
                the tablespace to disk; dropping of the
                tablespace is forbidden if this is positive */
    ulint        n_pending_ops;/*!< this is positive when we
                have pending operations against this
                tablespace. The pending operations can
                be ibuf merges or lock validation code
                trying to read a block.
                Dropping of the tablespace is forbidden
                if this is positive */
    hash_node_t    hash;    /*!< hash chain node */
    hash_node_t    name_hash;/*!< hash chain the name_hash table */
#ifndef UNIV_HOTBACKUP
    rw_lock_t    latch;    /*!< latch protecting the file space storage
                allocation */
#endif /* !UNIV_HOTBACKUP */
    UT_LIST_NODE_T(fil_space_t) unflushed_spaces;
                /*!< list of spaces with at least one unflushed
                file we have written to */
    ibool        is_in_unflushed_spaces; /*!< TRUE if this space is
                currently in unflushed_spaces */
    UT_LIST_NODE_T(fil_space_t) space_list;
                /*!< list of all spaces */
    ulint        magic_n;/*!< FIL_SPACE_MAGIC_N */
};

fil_space_t的更多相关文章

  1. fil_space_create

    /*******************************************************************//** Creates a space memory obje ...

  2. 函数fil_node_create

    /*******************************************************************//** Appends a new file to the c ...

  3. fil_system_struct

    /** The tablespace memory cache */ typedef struct fil_system_struct fil_system_t; /** The tablespace ...

  4. 函数fil_extend_space_to_desired_size

    /**********************************************************************//** Tries to extend a data f ...

  5. 函数fil_io

    /********************************************************************//** Reads or writes data. This ...

  6. Innodb物理存储结构系列1

    本篇先介绍 下Innodb表空间,文件相关的内存数据结构. 1. 数据结构 Innodb的tablespace和文件的关系,是一对多的关系,先来看三个结构体 1. fil_system_struct: ...

  7. MySQL · 引擎特性 · InnoDB redo log漫游(转)

    前言 InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性. 和大多数关系型数据库一样, ...

  8. MySQL 5.7 INFORMATION_SCHEMA 详解

    refman mysql 5.7 INFORMATION_SCHEMA提供了对数据库元数据的访问,MySQL服务器信息,如数据库或表的名称,列的数据类型,访问权限等. 有时也把这些信息叫做数据字典或系 ...

  9. 9. FILES

    9. FILES FILES表提供有关存储MySQL表空间数据的文件的信息. FILES表提供有关InnoDB数据文件的信息. 在NDB Cluster中,此表还提供有关存储NDB Cluster D ...

随机推荐

  1. 环信ipv6适配

    环信2.2.5及之后版本才适配了ipv6.可以自己搭配个ipv6环境,在ipv6环境下2.2.5以下版本无法登录.把整个sdk换成2.2.5版本项目需要改动的地方实在太多. 那么就部分换一下,适配ip ...

  2. aspnet_regiis.exe 的用法

    使用aspnet_regiis.exe注册.NET Framework 重新安装IIS以后,需要用aspnet_regiis.exe来注册.NET Framework, 如下: C:\WINDOWS\ ...

  3. asp.net中的mysql传参数MySqlParameter

    注意在asp.net中传参 string sql="select name,id from user where id=@id"; //@idm不需要引号 MySqlParamet ...

  4. git/github在windows上使用

    问题描述:     git在Windows上的使用 问题解决:     (1)下载安装git http://msysgit.github.io/ 到该网址中下载msgit软件 注:     安装msg ...

  5. hibernate里createSQLQuery

    一.addEntity()和setResultTransformer()方法 1. 使用SQLQuery 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.creat ...

  6. 几款实用的 JavaScript 图形图表库

    一款好的图表插件不是那么容易找到的.最近项目里需要实现统计图表功能,所以在网上搜罗了一圈,找到一些不错的图表插件,分享大家.众多周知,图形和图表要比文本更具表现力和说服力.这里给大家精心推荐几款实用的 ...

  7. Openstack Quantum project 更名为 Neuron

    因为与磁带备份厂商Quantum商标冲突: The OpenStack Foundation has changed the name of its networking project from Q ...

  8. Chp12: Testing

    What the Interviewer is Looking for: Big Picture Understanding Knowing How the Pieces Fit Together O ...

  9. UVA 11174 Stand in a Line (组合+除法的求模)

    题意:村子里有n个人,给出父亲和儿子的关系,有多少种方式可以把他们排成一列,使得没人会排在他父亲的前面 思路:设f[i]表示以i为根的子树有f[i]种排法,节点i的各个子树的根节点,即它的儿子为c1, ...

  10. IOS:利用dispatch_once创建单例

    在之前有一篇学习笔记中,记载了一篇如何在OC中实现单例的文章:<IOS学习笔记4—Objective C—创建单例>自苹果引入了Grand Central Dispatch (GCD)(M ...