技术开发 频道

张宴:Tokyo Cabinet数据库及其扩展应用

  【IT168报道】首届DTCC 2010数据库技术大会,4月2日在北京歌华开元大酒店盛大开幕,近700中国数据库技术专业人士参加本次技术盛会。这次大会注重实战,邀请业界知名专家现场为大家排除数据库管理过程中的实际问题。本场嘉宾是金山网游技术支持部平台组组长:张宴。演讲主题是:Tokyo Cabinet Key-Value 数据库及其扩展应用。内容涉及Tokyo Cabinet Key-Value 数据库的性能优化关键参数,以及金山逍遥网在Tokyo Cabinet基础上实现的TCSQL实时列表缓存数据库。

图:金山网游技术支持部平台组组长张宴

  从张宴那里了解到,一般数据库缓存分为四种。第一种:单个对象的缓存(一个对象就是数据库一条记录),对于单个对象的临时缓存或永久缓存,用HashMap就可以了,Key-Value方式的Memcached、Memcachedb、Tokyo Tyrant都可以,或者直接对查询数据库的网页采用Squid做缓存,没什么太难的;第二种:列表缓存,就像论坛里帖子的列表;第三种:记录条数的缓存,比如一个论坛板块里有多少个帖子,这样才方便实现分页。第四种:复杂一点的group,sum,count查询,比如一个论坛里按点击数排名的最HOT的帖子列表。第一种比较好实现,后面三种比较困难,虽然可以通过各种方法来解决,但截至目前,似乎还没有使用即简单、并发处理能力又强、实时性又高的解决办法。TCSQL为列表页的实时缓存而生,是金山逍遥网技术支持部平台组以Tokyo Cabinet为底层存储与索引,结合Key-Value对象缓存,借鉴SQL语句的SELECT、INSERT、UPDATE、DELETE思想与功能开发的实时列表缓存数据库,能够较好地解决上述前三种类别,特别是第二种、第三种类别的高并发读写问题。

  张宴认为传统MySQL数据库的性能问题主要包括:1、单表的记录数不断增加,查询效率降低。2、Web 2.0应用的写操作越来越多,传统的MySQL一主库多从库、读写分离模式作用有限。3、随着并发请求数增长,MySQL性能急剧下降。

  图:MySQL 5.5 m2数据库压力测试曲线图

  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比较

  Tokyo Cabinet的数据库类型分为:TCHDB 哈希数据库、TCBDB B+Tree数据库、TCFDB 定长数据库、TCTDB 表格数据库、TCMDB 内存哈希数据库、TCNDB 内存B+Tree数据库。

 

0
相关文章