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. TCP协议三次握手、四次断开 过程分析

    建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:

  2. 团队项目之Sprint计划会议

    一.我们团队在4月15日进行了冲刺计划会议,会议过程大致如下: 1.总结目前的工作进展,再一次确定所做项目的方向: 2.将之前的调查问卷的结果进行统计,做了需求分析,大致了解了用户的想法: 3.根据初 ...

  3. 3529: [Sdoi2014]数表 - BZOJ

    Description 有一张N×m的数表,其第i行第j列(1 < =i < =n,1 < =j < =m)的数值为能同时整除i和j的所有自然数之和.给定a,计算数表中不大于a ...

  4. CKFinder 1.4.3 任意文件上传漏洞

    CKFinder 是国外一款非常流行的所见即所得文字编辑器,其1.4.3 asp.net版本存在任意文件上传漏洞,攻击者可以利用该漏洞上传任意文件. CKFinder在上传文件的时候,强制将文件名(不 ...

  5. 【面试题003】c数组做为参数退化的问题,二维数组中的查找

    [面试题003]c数组做为参数退化的问题,二维数组中的查找  一,c数组做为参数退化的问题 1.c/c++没有记录数组的大小,因此用指针访问数组中的元素的时候,我们要确保没有超过数组的边界, 通过下面 ...

  6. Intent (一)

    1,简介 Intent 是一种消息传递机制,可以理解为一种对消息的封装,执行某操作的抽象描述,可用于应用程序内部及应用程序之间 其组成包括: 要执行的动作(action) 如VIEW_ACTION(查 ...

  7. URAL 1073 Square Country(DP)

    题目链接 题意 :这个人要投资地,每块地都是正方形并且边长都是整数,他希望他要买的地尽量的少碎块.每买一块地要付的钱是边长的平方,而且会得到一个一份证书,给你一个钱数,让你求出能得到的证书个数. 思路 ...

  8. eclipse 或MyEclipse将工程进行移动的时候会对@Override报错的处理方法

    有时候导入javaSE,javaEE,android 工程的时候,明明是刚刚用过的没有问题的工程,但重新导入的时候就报错. 提示The method ... must override a sperc ...

  9. [转]C++四种cast操作符

    http://blog.csdn.net/starryheavens/article/details/4617637 C 风格(C-style)强制转型如下: (T) expression 或 T(e ...

  10. PCB电路板上防潮绝缘抗腐蚀的三防漆

    三防漆(Conformal Coating)是一种涂在电路板上以形成保护膜的方法,这层保护膜通常仅是薄薄的一层(约30-210µm),它可以用来加强电子产品的防潮.防污.防尘.防化学污染的能力,也可以 ...