Chinaunix
标题:
Secondary Buffer Pool in InnoDB (4.29 XtraDB已准备整合该patch)
[打印本页]
作者:
qlks
时间:
2010-03-29 11:01
标题:
Secondary Buffer Pool in InnoDB (4.29 XtraDB已准备整合该patch)
本帖最后由 qlks 于 2010-04-29 10:58 编辑
-----------------------------------------------------------
4.29 XtraDB已准备整合该patch?
有人已经看到这篇文章了,
http://www.mysqlperformanceblog. ... ash-cache-is-there/
是的,Peter已经和我联系了,很有可能会整合到XtraDB,大家耐心等待吧
-----------------------------------------------------------
4.21 增加辅助缓冲的架构图
sbp.jpg
(37.55 KB, 下载次数: 128)
下载附件
sbp2
2010-04-21 15:24 上传
可以对比Oracle的Flash Cache,Oracle不支持预载入,并且放入到Flash Cache的算法相对较为保守
-----------------------------------------------------------
4.6 关于最近的一些问题
1. 修改的InnoDB源代码是针对于InnoDB Plugin 1.0.6,因为MySQL 5.5开始将InnoDB Plugin作为默认的存储引擎了。
2. 因为是针对于1.0.6的版本,所以可以用于所有5.5,5.1的MySQL服务器。5.1动态加载的话,需要另外编译。5.5已经给出了编译好的Linux 64位版本,直接使用即可。强烈推荐使用64位系统。
3. 全部InnoDB的源代码已经上传到code.google.com,如果需要patch的话,只需diff就可以了。因为前段时间更新比较多,因此没有放上patch
4. 该patch没有在生产环境下使用,因为开发这个patch只是一个突然想到的。开发到一半时,发现Oracle已经有类似功能,称为Flash Cache。不过我用tpcc-mysql工具,在Linux下测试了10个小时,没有发现问题。非常希望可以看到生产环境下的使用,我可以给予支持。当然,我相信该patch目前还存在一些问题,希望通过生产环境下的使用,可以给出意见和建议。当然,我自己这里也会找一个项目进行生产环境下的测试。
5. 希望国内有对InnoDB和MySQL进行源码二次开发的请和我联系,我们可以聊聊。
-------------------------------------------------
Flash Cache是Oracle 11G新增的一个功能,原先只在Exedata服务器中支持,最近的patch使得可以在任何服务器中使用。
和Flash Cache的原理,写了一个针对InnoDB的patch,使得可以在InnoDB下使用闪存存储作为辅助缓冲(L2 Cache),如Flash Memoery,SSD等, 我把这个缓冲池称为辅助缓冲池。
patch会对InnoDB增加新的3个参数,
[mysqld]
innodb_secondary_buffer_pool_size=920M
innodb_secondary_buffer_pool_file=/flash/ib_sbpfile
innodb_secondary_buffer_pool_preload_table=tpcc.*:test.t
复制代码
启用Flach Cache后,show engine innodb status下可以看到更多关于辅助缓冲的信息,如:
mysql> show engine innodb status\G;
*************************** 1. row ***************************
......
----------------------
SECONDARY BUFFER POOL
----------------------
Secondary buffer pool size 58880
Free pages 14111
LRU pages 44769
Page reads 269080, sync 201435, swap 214080
Page make young 269080, skip_unuseful 9325, skip_write_overloaded 0
No secondary buffer pool page gets since the last printout
......
复制代码
若启用预载入到辅助缓冲池innodb_secondary_buffer_pool_preload_table参数,在数据库启动时会看到类似如下内容:
100329 11:09:55 InnoDB: preloading table tpcc.warehouse to secondary buffer pool.(0.00%)
100329 11:09:55 InnoDB: preloading table tpcc.item to secondary buffer pool.(0.00%)
100329 11:09:55 InnoDB: preloading table tpcc.new_orders to secondary buffer pool.(1.01%)
100329 11:09:55 InnoDB: preloading table tpcc.history to secondary buffer pool.(1.27%)
100329 11:09:55 InnoDB: preloading table tpcc.district to secondary buffer pool.(4.57%)
100329 11:09:55 InnoDB: preloading table tpcc.customer to secondary buffer pool.(4.57%)
100329 11:09:56 InnoDB: preloading table tpcc.order_line to secondary buffer pool.(25.85%)
100329 11:09:56 InnoDB: preloading table tpcc.orders to secondary buffer pool.(57.90%)
100329 11:09:57 InnoDB: preloading table tpcc.stock to secondary buffer pool.(60.12%)
100329 11:09:57 InnoDB: preloading to secondary buffer pool finish.
复制代码
更多关于Secondary Buffer Pool的信息见:
http://code.google.com/p/david-m ... condary_buffer_pool
下载地址:
http://david-mysql-tools.googlec ... linux-x86_64.tar.gz
-------------------------------------------------------------------------------------------------------------------------------------------
为什么不直接使用闪存存储设备,如SSD硬盘来直接作为数据库的永久存储器呢?因为闪存存储设备的优势在读,而不在写。或者说写是其巨大的一个性能弱点。第一,写入速度慢,即使对比一般服务器硬盘也没有优势。第二,有写入寿命的说法,当然存储厂商都号称可以写很多次,但实际生产环境下,谁能放心?第三,写入速度随着使用,速度急剧下降。当然Win 7下已经提供了Trim API,不过Linux是否有类似接口不清楚。因此,在SSD没有解决写入速度和寿命的问题前,将其作为二级缓存是比较明智的一种方案。不过从长远来看,Flash is Disk, Disk is tape是肯定的。
作者:
Coolriver
时间:
2010-03-29 11:07
谢谢 qlks的分享。
作者:
phphp
时间:
2010-03-29 11:16
不错, 顶一下
自己动手, 丰衣足食
作者:
leoxqing
时间:
2010-03-29 11:27
很好,支持!
作者:
ruochen
时间:
2010-03-29 14:41
非常好
谢谢分享
作者:
枫影谁用了
时间:
2010-03-29 16:50
有条件可以测试下。很不错。
作者:
deluxe1983
时间:
2010-03-30 09:19
up~
作者:
famo
时间:
2010-04-02 07:45
老大作品,一定要顶啊!
作者:
justin033
时间:
2010-04-02 21:19
thank for sharing!!!:wink:
作者:
yueliangdao0608
时间:
2010-04-06 11:40
强力支持!
作者:
为什么删我号
时间:
2010-04-07 11:06
精华
作者:
denniswwh
时间:
2010-04-08 15:42
强烈支持!!!
作者:
voxxu
时间:
2010-04-08 15:47
不能不顶
作者:
rsjq
时间:
2010-04-19 16:58
提示:
作者被禁止或删除 内容自动屏蔽
作者:
ruochen
时间:
2010-04-27 17:37
非常不错
希望能长期坚持下去debug
作者:
ruochen
时间:
2010-04-27 17:38
作者有没有考虑将代码提交到maridb/xtradb/google/ or sf???
作者:
7islands
时间:
2010-04-28 11:40
回复
16#
ruochen
貌似percona的cto正在联系楼主呢
http://code.google.com/p/david-mysql-tools/issues/detail?id=1
作者:
ruochen
时间:
2010-04-28 12:10
好消息啊
看能不能修改的更高效
作者:
ruochen
时间:
2010-04-28 12:11
然后再应用于生产就就爽了
作者:
yueliangdao0608
时间:
2010-05-10 14:33
老板的帖子要支持。
作者:
P-Linux
时间:
2010-07-12 19:35
LZ能否发一个PATCH给我,我想测试一下,penglixun(at)gmail.com
作者:
Coolriver
时间:
2010-07-13 11:21
再次祝贺qlks.
作者:
edenCC
时间:
2010-07-13 15:11
***看到楼上朋友的回复了,是版主大人的原创作品
小弟拜一拜
作者:
WaterDrops
时间:
2012-04-10 22:04
不错 支持下 虽然有点晚 啊
作者:
devilkin0312
时间:
2012-04-12 15:34
up
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2