自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 7 buffer pool的组织结构

一、buf_page_get_gen前面在“6 InnoDB相关的数据结构”一节中,已经提到了buf_pool_t的初始化;并在事务初始化时,宏buf_page_get会调用buf_page_get_gen。我们知道buf_pool中会缓存多种页:索引页、数据页、undo页等,buf_page_get_gen视为了进入database page。现把它的主要代码展示如下:buf_block

2013-12-31 23:25:43 1356

原创 6 InnoDB相关的数据结构

以下讨论的结构体或函数都是出现在innobase_start_or_create_for_mysql()中。一、srv_sys_t*  srv_sys——server systemtypedef struct srv_sys_struct srv_sys_t/** The server system struct */struct srv_sys_struct{ srv_tabl

2013-12-28 17:05:13 1243

原创 5 从plugin_init()看存储引擎的初始化

一、plugin_initmain()------->init_server_components()-------->plugin_init(&remaining_argc, remaining_argv, ...)1、register_builtin()将plugin(类型为struct st_mysql_plugin)的指针保存到plugin_array这个动态数组和plugin_h

2013-12-26 09:51:14 1427

转载 4 各种文件

一、日志文件1、错误日志2、慢查询日志:记录慢的SQL查询语言,以帮助优化。默认不开启。3、查询日志:记录了所有对Mysql数据库请求的信息,无论请求是否得到了执行。默认文件名:主机名.log。慢查询日志和查询日志也可以不记录在文件中,而放入mysql架构下的表中。4、二进制日志:记录对数据库的所有操作,但是不包括SELECT和SHOW这类操作。文件名如bin_log.

2013-12-21 13:47:29 598

原创 3 查询:解析器和优化器

一、调用流程mysqld_main------>init_server_components-------->plugin_init

2013-12-20 20:17:32 915

原创 2 从create_new_thread看连接线程

一、数据包格式在分析create_new_thread()之前,先看一下数据包格式,所有的Mysql Net包可以归纳为:1、握手阶段(当客户端开始连接时):从服务器到客户端:握手初始化包;从客户端到服务器:客户端认证包;从服务器到客户端:OK包、Error包。2、命令包(客户端到服务器端的任一要求):从客户端到服务器端:命令包;从服务器到客户端:OK包、Error包、结果集包

2013-12-20 10:02:10 1555

原创 8 配接器

8.1 分类1、应用于容器:stack、queue2、应用于迭代器:insert iterator(back_inserter、front_inserter、inserter)、reverse iterator、iostream iterator3、应用于仿函数:8.3 iterator adapter1、插入迭代器template class back_

2013-12-19 11:01:54 719

原创 1 从mysqld的main()函数开始

一、sql/main.ccextern int mysqld_main(int argc, char **argv);int main(int argc, char **argv){ return mysqld_main(argc, argv);}这就是mysqld的main()函数,它只是调用了mysql_main()。二、mysqld_mainmysqld_ma

2013-12-18 15:20:53 2606

原创 7 仿函数

7.1 仿函数概念使用方法:greater ig;cout << ig(4,6); //常规用法cout ()(6,4); //使用临时对象。7.2 可配接的关键为了拥有可配接能力,每一个仿函数必须定义自己的相应型别。为了方便,定义了两个class,分别代表一元仿函数和二元仿函数(STL不支持三元仿函数)。任何仿函数,只有继承其中一个class,就可以获得相应型别,也就自动拥

2013-12-13 15:55:13 656

转载 6 算法(续)

6.7 其他算法(举例)1、简单算法2、其他

2013-12-13 14:56:34 514

原创 6 算法

6.3 数值算法-2、accumulatetemplate T accumulate(InputIterator first, InputIterator last, T init) { for ( ; first != last; ++first) init = init + *first; return init; //提供初始值init的作用:当区间为空时,依然可返

2013-12-11 09:14:09 587

原创 Ketama一致性哈希算法的实现

一、修改test程序在test程序中加入memcached_behavior_set_distribution(memc, MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY),设置分布式算法。二、memcached_behavior_set_distributionmemcached_behavior_set_distribution

2013-12-03 23:14:32 2325

原创 linux小知识记录

1、linux的进程和线程进程创建    进程创建通常调用fork实现。创建后子进程和父进程指向同一内存区域,仅当子进程有write发生时候,才会把改动的区域copy到子进程新的地址空间,这就是copy-on-write技术,它极大的提高了创建进程的速度。Linux的线程实现    Linux线程是通过进程来实现。Linux kernel为进程创建提供一个clone()系统

2013-12-03 17:27:30 708

转载 Linux文件系统十问

Linux文件系统十问 作者:yanfei,腾讯后台架构师,参与项目为搜搜网页开发和搜搜开放平台。 关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖一下,其中又有多少是我们理解深度不够的呢。那么让我们一起来看一下下面这一组Linux文件系统相关的问题吧: 1、机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的?2

2013-12-03 17:24:29 649

原创 从MEMCACHED_DISTRIBUTION_MODULA开始

一、修改test程序本节开始探索分布式算法,使用三个memcached服务器,将test程序修改为const char* server_list = "localhost:11211, localhost:11212, localhost:11213"。对于分布式算法,系统默认为MEMCACHED_DISTRIBUTION_MODULA,见_memcached_init()中self->dis

2013-12-02 23:17:08 938

[计算机网络第五版]计算机网络第五版.pdf

计算机网络第五版,pdf格式,内容清晰。

2012-09-17

于渊——自己动手写操作系统(第二版)光盘源代码.rar

该文档中包含了《自己动手写操作系统》(于渊)这本书中各章节的源代码,层层递进,非常详实。

2012-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除