类似 Big Table的tokyo Cabinet研究记录

2009-07-29

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]

Posted by 54chen 架构研究