HashKV: Enabling Efficient Updates in KV Storage via Hashing

HashKV: Enabling Efficient Updates in KV Storage via Hashing

     持久键值(Persistent key-value, KV)存储大多建立在日志结构合并(Log-Structured Merge, LSM)树上以获得更高的写性能,然而LSM树本身存在高I/O放大问题。KV分离通过仅将键存储在lsm树中,而将值存储在单独的存储中,从而减轻了I/O放大的影响。然而,当前KV分离设计在值存储方面的垃圾收集(GC)开销较大,在更新密集型工作负载下仍然低效。本文提出HashKV,目标是在更新密集型工作负载下,在KV分离的基础上实现高更新性能。HashKV采用基于散列的数据分组,确定地将值映射到存储空间,从而提高更新效率和GC效率。通过简单而有用的设计扩展,进一步放宽了这种确定性映射的限制。实验结果表明,与现有KV分离设计相比,HashKV的吞吐量提高了4.6倍,写流量减少了53.4%。 

HashKV Design

HashKV是一个持久的KV存储,专门针对更新密集型的工作负载。它改进了KV分离之上的值存储管理,实现了较高的更新性能。它支持标准的KV操作:PUT(即写一个KV对)、GET(即取得一个键的值)、DELETE(即删除一个KV对)和SCAN(即取得一个范围内的键的值)。 

1)Main Idea

HashKV遵循KV分离[23],在lsm树中只存储键和元数据,用于索引KV对,而值存储在一个单独的区域中。在KV分离的基础上,HashKV引入了几个核心设计元素,实现了高效的价值存储管理。

 Storage Management

图3描述了HashKV的架构。它将值存储的逻辑地址空间划分为固定大小的单元,称为主段(main segments)。此外,它超额供应了一个固定比例的预留空间,该空间再次划分为称为日志段(log segment)的固定大小单位。请注意,主段和日志段的大小可能不同。默认情况下,我们分别设置为64MiB和1MiB。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值