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

/** The tablespace memory cache; also the totality of logs (the log
data space) is stored here; below we talk about tablespaces, but also
the ib_logfiles form a 'space' and it is handled here */

struct fil_system_struct {
#ifndef UNIV_HOTBACKUP
    mutex_t        mutex;        /*!< The mutex protecting the cache */
#endif /* !UNIV_HOTBACKUP */
    hash_table_t*    spaces;        /*!< The hash table of spaces in the
                    system; they are hashed on the space
                    id */
    hash_table_t*    name_hash;    /*!< hash table based on the space
                    name */
    UT_LIST_BASE_NODE_T(fil_node_t) LRU;
                    /*!< base node for the LRU list of the
                    most recently used open files with no
                    pending i/o's; if we start an i/o on
                    the file, we first remove it from this
                    list, and return it to the start of
                    the list when the i/o ends;
                    log files and the system tablespace are
                    not put to this list: they are opened
                    after the startup, and kept open until
                    shutdown */
    UT_LIST_BASE_NODE_T(fil_space_t) unflushed_spaces;
                    /*!< base node for the list of those
                    tablespaces whose files contain
                    unflushed writes; those spaces have
                    at least one file node where
                    modification_counter > flush_counter */
    ulint        n_open;        /*!< number of files currently open */
    ulint        max_n_open;    /*!< n_open is not allowed to exceed
                    this */
    ib_int64_t    modification_counter;/*!< when we write to a file we
                    increment this by one */
    ulint        max_assigned_id;/*!< maximum space id in the existing
                    tables, or assigned during the time
                    mysqld has been up; at an InnoDB
                    startup we scan the data dictionary
                    and set here the maximum of the
                    space id's of the tables there */
    ib_int64_t    tablespace_version;
                    /*!< a counter which is incremented for
                    every space object memory creation;
                    every space mem object gets a
                    'timestamp' from this; in DISCARD/
                    IMPORT this is used to check if we
                    should ignore an insert buffer merge
                    request */
    UT_LIST_BASE_NODE_T(fil_space_t) space_list;
                    /*!< list of all file spaces */
    ibool        space_id_reuse_warned;
                    /* !< TRUE if fil_space_create()
                    has issued a warning about
                    potential space_id reuse */
};

fil_system_struct的更多相关文章

  1. MySQL内核:InnoDB存储引擎 卷1

    MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...

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

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

随机推荐

  1. ios关于layer的一些常用属性

    UILabel * labb = ... //set the border of labb labb.layer.borderWidth = 1; labb.layer.borderColor = [ ...

  2. 复习linq

    复习linq linq的英文是language integrated query.其中query的意思就是疑问或者计算机用语就是从资料库中提取信息的要求,可以理解为查询的意思.那么它翻译过来的话就是集 ...

  3. Flex显示麦克风当前音量

    Flex动态显示麦克风当前音量 效果: 代码: <?xml version="1.0" encoding="utf-8"?> <s:Appli ...

  4. javascript_22_for_二维数组

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. 数字PID控制算法

    增量式PID控制算法 量式PID控制算法 2009-07-18 10:33 (转载 出处blog.ednchina.com/tengjingshu )blog.ednchina.com/tengjin ...

  6. 【BZOJ】【1833】【ZJOI2010】count 数字计数

    数位DP Orz iwtwiioi 学习了一下用记忆化搜索来捉题的新姿势……但没学会TAT,再挖个坑(妈蛋难道对我来说数位DP就是个神坑吗……sigh) //BZOJ 1833 #include< ...

  7. Linux下配置安装PHP环境

    参考别人的做法,遇到问题上网查,下面就是安装步骤. 一.安装Apache2.2.221.到官网下载  http://httpd.apache.org/download.cgi    2.解压    t ...

  8. 微信ios版6.2更新 聊天记录迁移更快捷朋友圈可翻译

    微信iPhone版昨日发布更新,版本号为微信 6.2 for iOS,主要特性有聊天记录迁移.发送图片更快捷.支持朋友圈翻译.手机充值可充流量查余额.可以通过展示二维码来收钱,和ytkah一起来瞧瞧吧 ...

  9. NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识

    NGINX的奇淫技巧 —— 3. 不同域名输出不同伺服器标识 ARGUS 1月13日 发布 推荐 0 推荐 收藏 6 收藏,707 浏览 大家或许会有这种奇葩的需求...要是同一台主机上, 需要针对不 ...

  10. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...