类似 Big Table的tokyo Cabinet研究记录

Tokyo Cabinet是小人开发的一款数据库,它的功能比较简单,只能键值保存,没有检索功能,以hash table、b+tree、fixed-length array保存。功能类似的Bigtable的东东。
这套Tokyo系列有三个产品,Cabinet是数据库,Tyrant提供管理Cabinet的接口,Dystopia提供全文索引。我把Cabinet理解为存储引擎,Tyrant类似mysql的管理器,Dystopia则是插件。

Tokyo Cabinet有如下特点:

  • 键值保存数据库
  • 数据文件小
  • 高性能,插入1百万记录只需0.4秒(250万 rps),查询1百万记录只需0.3秒(300万 rps)
  • 高并发,支持多线程,读写支持锁记录
  • 使用简单,通过memcached客户端直接使用(需Tyrant)
  • 支持64位架构,容量大
  • 支持事务
Tokyo Tyrant提供管理Cabinet的接口,支持memcached协议,所以,可以通过memcached客户端连接Cabinet。
Tokyo Tyrant有如下特点:
  • 提供使用Cabinet的接口
  • 支持通过memcached和http协议连接
  • 高并发,查询100万记录17.2秒(5.8万 rps)
  • 支持热备份,复制功能,主持主主(可读写)和主从(分写和读)方式
Tokyo Dystopia是一个全文检索系统,你可以搜索包含某短语的一系列记录,它的特性如下:
  • 搜索的高性能。
  • 目标文标的高可靠性
  • N-gram模型的高召回率
  • 短语匹配,前缀匹配,后缀匹配搜索.
  • Unicode下多语种支持。
  • API的分层架构支持。
cabinet的文档:
http://tokyocabinet.sourceforge.net/spex-en.html

tyrant的文档:
http://tokyocabinet.sourceforge.net/tyrantdoc/

cabinet和tyrant的ppt幻灯片介绍:
http://tokyocabinet.sourceforge.net/tokyoproducts.pdf
可关注下其中的TCTDB,就是对table database的支持

使用哪种存储方式,取决于tyrant启动时指定的存储文件名称,table database的文件后缀是.tct


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

捐款订阅54chen
捐赠说明