- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tokyo cabinet key-value数据库扩展及其应用-张宴.pdf
2010-04-02
张宴
Http://
传统MySQL数据库的性能问题
单表的记录数不断增加,查询效率降
低。
Web 2.0应用的写操作越来越多,传
统的MySQL一主库多从库、读写分离
模式作用有限。
随着并发请求数增长,MySQL性能急
剧下降。
MySQL 5.5 m2数据库压力测试
Dell R900 system ( 16 cores, 32GB of RAM, FusionIO + RAID10 )
Tokyo Cabinet及Tokyo Tyrant 简介
TC (Tokyo Cabinet )是日本人平林幹雄开发的一款
Key-Value 键值数据库,该数据库读写非常快,哈希
模式写入100万条数据只需0.402秒,读取100万条数据
只需0.334秒。
TT (Tokyo Tyrant )是由同一作者开发的Tokyo
Cabinet 数据库网络接口。它拥有自己的协议,并支
持Memcached兼容协议,也可以通过HTTP协议进行
数据交换。哈希数据库读写速度大约在50000次/秒。
TC和TT 目前运行在日本最大的SNS网站MIXI,在国内
也有大量的生产环境应用。
TT、Memcached、MySQL比较
10000线程时,写入性能
TT、Memcached、MySQL比较
10000线程时,读取性能
Tokyo Cabinet的数据库类型
TCHDB 哈希数据库
TCBDB B+Tree数据库
TCFDB 定长数据库
TCTDB 表格数据库
TCMDB 内存哈希数据库
TCNDB 内存B+Tree数据库
TCHDB
TCHDB哈希数据库的优化
很多人反应TT/TC插入数据超过一定数量后,性能会大幅度下降?
先对TC做个测试:
写入100万条:tchtest write test.tch 1000000
时间: 0.732秒速度:1366120条/秒
写入200万条:tchtest write test.tch 2000000
时间: 1.718秒 速度:1164144条/秒
写入500万条:tchtest write test.tch 5000000
时间: 21.529秒 速度:232244条/秒
从测试来看,写入500万条数据,性能确实降低。但是,原因呢?
TCHDB哈希数据库的优化
修改参数后,再测试:
写入100万条:tchtest write -xm 536870912 test.tch 1000000 5000000
时间: 0.580秒速度:1724137条/秒
写入200万条:tchtest write -xm 536870912 test.tch 2000000 5000000
时间: 1.105秒 速度:1809954条/秒
写入500万条:tchtest write -xm 536870912 test.tch 5000000 5000000
时间: 2.737秒速度:1826817条/秒
可见,性能提升了不少,随着写入数据量地增加,速度依旧不减。
TCHDB哈希数据库的优化
关键参数(C API):
bool tchdbsetxmsiz(TCHDB *hdb, int64_t xmsiz);
Xmsiz指定了TCHDB 的扩展MMAP 内存大小,默认值为
也就是64M,如果数据库文件超过64M,则只
有前部分会映射在内存中,所以写入性能会下降。
其他参数(C API) :
bool tchdbtune(TCHDB *hdb, int64_t bnum, int8_t apow,
int8_tfpow , uint8_t opts);
bnum指定了bucke
文档评论(0)