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. C++(MFC)编程一些注意事项

    一·书写问题 1.括号:左右大括号最好都放在左侧,这样可以很清楚大括号的看清配对情况以及作用域,便于检查也不易出错. 2.强制转换:强制转换表达式时一定要加括号,否则可能只转换了表达式中的单个量,可能 ...

  2. rJava配置

    1. 下载安装R-3.1.1-win.exe: 2. 在R中安装rJava > install.packages("rJava") 3. 设置环境变量: PATH:D:\So ...

  3. Java 8 VM GC Tunning Guide Charter 7-8-b

    第七章 并发gc Java 8提供两种并发gc,CMS和G1 Concurrent Mark Sweep (CMS) Collector This collector is for applicati ...

  4. bnuoj 25662 A Famous Grid (构图+BFS)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=25662 #include <iostream> #include <stdio.h ...

  5. js获取对象、数组的实际长度,元素实际个数

    /*获取对象.数组的长度.元素个数 *@param obj 要计算长度的元素,可以为object.array.string */ function count(obj){ var objType = ...

  6. C# - (0x80040154): Retrieving the COM class factory for component with CLSID {877AA945-1CB2-411C-ACD7-C70B1F9E2E32} failed

    1. Exeption Error: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM clas ...

  7. mysql安装篇

    装了vps,环境又要自己配置.mysql比较难装上. 1.安装MySQL 5.5.x的yum源:rpm -Uvh http://repo.webtatic.com/yum/centos/5/lates ...

  8. 判断不同IOS设备

    var iOSGen = iPhone.generation; if (Debug.isDebugBuild) { Debug.Log("iPhone.generation : " ...

  9. POJ 3104

    Drying Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7959   Accepted: 2014 Descriptio ...

  10. 提交jar作业到spark上运行

    1.引入spark包:spark-assembly-1.4.0-hadoop2.6.0,在spark的lib目录下 File-->project structure 2.用IDEA建立一个sca ...