函数fsp_alloc_seg_inode_page
分配一个新的inode page
/**********************************************************************//**
Allocates a new file segment inode page.
@return TRUE if could be allocated */
static
ibool
fsp_alloc_seg_inode_page(
/*=====================*/
fsp_header_t* space_header, /*!< in: space header */
mtr_t* mtr) /*!< in: mini-transaction handle */
{
fseg_inode_t* inode;
buf_block_t* block;
page_t* page; //详见
ulint space;
ulint zip_size;
ulint i;
ut_ad(page_offset(space_header) == FSP_HEADER_OFFSET); /** * * */
space = page_get_space_id(page_align(space_header)); //详见 page_align详见
zip_size = dict_table_flags_to_zip_size(mach_read_from_4(FSP_SPACE_FLAGS + space_header));
block = fsp_alloc_free_page(space, zip_size, , mtr, mtr); //详见 if (block == NULL) {
return(FALSE);
}
buf_block_dbg_add_level(block, SYNC_FSP_PAGE);
ut_ad(rw_lock_get_x_lock_count(&block->);
block->check_index_page_at_flush = FALSE;
page =,页类型为 inodb page
mlog_write_ulint(page + FIL_PAGE_TYPE, FIL_PAGE_INODE,MLOG_2BYTES, mtr);
//for循环86次
; i < FSP_SEG_INODES_PER_PAGE(zip_size); i++) {
inode = fsp_seg_inode_page_get_nth_inode(page, i,zip_size, mtr);
mlog_write_ull(inode + FSEG_ID, , mtr);
} /** *#define FSP_SEG_INODES_FREE (32 + 4 * FLST_BASE_NODE_SIZE *#define FLST_BASE_NODE_SIZE (4 + 2 * FIL_ADDR_SIZE) *#define FIL_ADDR_SIZE 6 * *
*#define FSP_SEG_INODES_FREE (32 + 4 * FLST_BASE_NODE_SIZE) *#define FLST_BASE_NODE_SIZE (4 + 2 * FIL_ADDR_SIZE) *#define FIL_ADDR_SIZE 6 */
*#define FSEG_INODE_PAGE_NODE FSEG_PAGE_DATA *#define FSEG_PAGE_DATA FIL_PAGE_DATA *#define FIL_PAGE_DATA 38
![]()
//FSP_SEG_INODES_FREE 134 所在页为 fsp 页 //FSEG_INODE_PAGE_NODE 38 所在页为inode 页
flst_add_last(space_header + FSP_SEG_INODES_FREE,page + FSEG_INODE_PAGE_NODE, mtr);//详见 return(TRUE); }
函数fsp_alloc_seg_inode_page的更多相关文章
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- javascript中的this与函数讲解
前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- JS核心系列:浅谈函数的作用域
一.作用域(scope) 所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. function scope(){ var foo = "global&quo ...
- C++中的时间函数
C++获取时间函数众多,何时该用什么函数,拿到的是什么时间?该怎么用?很多人都会混淆. 本文是本人经历了几款游戏客户端和服务器开发后,对游戏中时间获取的一点总结. 最早学习游戏客户端时,为了获取最精确 ...
随机推荐
- 解决ListView滑动时卡的问题,实现异步加载图片解决
ListView是最为常见的空间之一,现在的应用的呈现形式大多数都需要用到ListView来呈现,以列表的方式最直观最便于操作. 那么在使用的过程中大家一定使用adapter适配器来匹配这个ListV ...
- JavaScript console 用法大全
对于前端开发者来说,在开发过程中需要监控某些表达式或变量的值的时候,用 debugger 会显得过于笨重,取而代之则是会将值输出到控制台上方便调试.最常用的语句就是console.log(expres ...
- Oracle分析函数 — sum, rollup, cube, grouping用法
本文通过例子展示sum, rollup, cube, grouping的用法. //首先建score表 create table score( class nvarchar2(20), course ...
- 请给出一个左侧定宽右侧自适应的HTML结构及样式
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- EXTJS 4.2 资料 控件之combo 联动
写两个数据源: 1.IM_ST_Module.js { success:true, data:[ { ModuleId: '1', ModuleName: '资讯' } , { ModuleId: ' ...
- 【学习总结】IOS程序运行过程 、UIWindow 、controller 、 UIView 创建过程的总结
程序启动开始到view显示: 程序启动首先会执行main函数 - > UIApplicationMain函数: 程序启动 (加载框架,info文件,资源等) 执行Main函数 初始化UIAppl ...
- 微软职位内部推荐-Principal DEV Manager for Bing Client
微软近期Open的职位: Title: Principal DEV Manager for Bing ClientGroup: Search Technology Center Asia, BingW ...
- Qt播放mp3
.pro项目文件中加入 QT += phonon 包含头 #include <phonon/Phonon> 播放文件 Phonon::MediaObject *media = ...
- Mybatis 示例之 SelectKey(转)
参考:http://blog.csdn.net/isea533/article/details/21153791 SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问 ...
- [转载]LINQ 中的 select
下面通过一些例子来说明怎样使用select,参考自:LINQ Samples 1. 可以对查询出来的结果做一些转换,下面的例子在数组中查找以"B"开头的名字,然后全部转成小写输出 ...
//FSP_SEG_INODES_FREE 134 所在页为 fsp 页
//FSEG_INODE_PAGE_NODE 38 所在页为inode 页