构建key-value存储引擎 -数据组织

key-value存储引擎数据组织方式

 
1.slab方式存储
把文件划分多个等级的块大小(通常以2的次幂方式划分,如 256byte,512byte,1024byte...)。value数据选择存储在“最适合”的块中。这种数据组织方式在内存型服务中也经常使用,如memcached。
优点:块的回收利用较容易,不会产生文件碎片。读取效率比较高
缺点:数据大小不能超过最大块的大小。空间浪费比较严重(取决于实际数据大小分布情况)
 
何时选择这种存储方式:
1)value长度有上限
2)value数据长度分布有一定规律,可有效控制空间浪费
 
 
2.连续空间定长存储
优点:空间利用率比较高。数据大小不受限制。
缺点:高效的空间回收算法实现比较复杂。
 
 
 
这种存储方式在数据组织上较为灵活,是比较通用的存储方式,但回收算法的实现比较复杂。
 
 
3.连续空间变长存储。更新和删除操作不做物理删除,通过数据重写回收数据空洞。
优点:数据更新逻辑简单。通过重写来回收空洞,不会造成磁盘碎片。
缺点:需要在合适的时机进行数据重写,暂用额外的系统资源。
 
 
 
何时选择这种存储方式:
1)更新和删除操作不太频繁。读多写少。
2)在业务低峰期,可以接受数据重写操作带来的资源消耗
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值