1. Tair ldb简单介绍
1.1 tair非持久化/持久化存储引擎
tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 在最新版本的tair trunk中目前实现了以下4种存储引擎。
非持久化:mdb
持久化:fdb、kdb和 ldb
分别基于四种开源的key/value数据库:Memcached、Firebird、Kyoto Cabinet和LevelDB。其中memcached和Firebird是关系型存储数据库,而Kyoto Cabinet和LevelDB是Nosql数据库。
这里我研究的是Google开源的快速轻量级的单机KV存储引擎leveldb的实现方式。
1.2 leveldb简单介绍
leveldb的基本特性:
- 提供key/value支持,key和value是任意的字节数组
- 数据按key内部排序
- 调用者可以提供自定义的比较函数修改排序规则
- 基本的接口有 Put(key,value), Get(key), Delete(key).
- 支持批量修改(原子操作)
- 用户可以创建临时snapshot来获得数据的一个视图
- 支持正向和反向遍历数据
- 使用Snappy compression library对数据进行压缩
- 外部操作(例如文件系统操作)通过虚接口传递使得用户可以自定义与操作系统的交互
限制:
</