Tair存储引擎之一Leveldb中数据的存储思想

本文介绍了Tair中基于Leveldb的存储引擎,探讨了Leveldb的LSM结构,它通过减少磁盘IO次数优化性能。数据在内存中以排序树形式存储,当达到阈值时与磁盘上的排序树合并。读操作从内存开始,未命中时在磁盘上顺序查找。此外,文章还分析了Leveldb中Get/Put/Delete等操作的数据存储特点。
摘要由CSDN通过智能技术生成

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对数据进行压缩
  • 外部操作(例如文件系统操作)通过虚接口传递使得用户可以自定义与操作系统的交互

限制:

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值