HiKV: A Hybrid Index Key-Value Store for DRAM-NVM Memory Systems(USENIX ATC ’17)

(一)研究目的

充分利用哈希索引和B+树索引各自的优点。

(二)研究背景

DRAM-NVM 混合存储中,fast writes in DRAM, slow writes in NVM, and
similar reads in DRAM and NVM。
Put、Get、Update、Delete是KV存储的基本操作。此外,Scan在如今的应用中也变得越来越重要。但是,哈希索引和排序索引都不能有效地支持所有这些操作。下图使用micro-benchmarks测量了hash、skiplist、B+Tree 对五种键值操作的性能。对 Put/Get/Update/Delete 操作来说,hash表现最佳。哈希设计的内存操作往往比跳表和B+Tree要少,跳表和B+Tree需要多级搜索。但是作为非排序索引,哈希做不到Scan操作。
目前基于NVM的键值存储普遍采用B+Tree作为索引结构。本文提出混合索引以利于不同索引的不同优点。
在这里插入图片描述

(三)研究概述

在混合内存中实现混合索引键值存储HiKV。
采用混合索引带来的挑战:

  • 需要保持两个索引一致,键值操作(Put、Update、Delete)会增加延迟。HiKV 将slow B+Tree 放在fast DRAM,将 fast hash 放在 slow NVm。异步更新B+Tree以掩盖其延迟。
  • 混合索引的可伸缩性需要精心设计。对哈希索引进行分区可以对哈希索引进行分区可以提供良好的可伸缩性,而对B+Tree索引进行分区,由于数据迁移,成本较高。因此 HiKV 采用了分区哈希索引和全局B+Tree 索引。HiKV采用硬件事务内存(HTM)对B+Tree索引进行并发控制,并采用细粒度锁来支持单个哈希索引分区内的并发访问。
  • 保证混合索引的崩溃一致性会导致对NVM的写入开销很大。HiKV采用选择性一致性,仅通过顺序写保证哈希索引和键值项的一致性。保存在DRAM中的B+Tree索引在系统故障后重新构建。

(四)关键技术

在这里插入图片描述

Asynchronous updates

写操作需要更新哈希索引与B+Tree索引使其保持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值