支持远程并发访问的持久哈希表访问系统技术方案

技术编号:24853225 阅读:72 留言:0更新日期:2020-07-10 19:07
本发明专利技术提供了一种支持远程并发访问的持久哈希表访问系统,包括:数据存储模块:组织和管理哈希表的元数据及数据的持久存储,并支持通用哈希表读写访问接口;远程访问模块:建立服务端与客户端的RDMA通信连接,实现客户端的远程访问;后台处理模块:后台辅助客户端的远程写请求,更新相关数据及元数据,以保证哈希表的元数据和数据处于一致状态;数据恢复模块:在服务端开启持久哈希表时检测故障一致性,当数据不一致时恢复哈希表中的所有数据到一致状态。本发明专利技术能够降低远程读写延迟,减少服务端负载压力,支持高并发远程访问,保障高效数据一致性。

【技术实现步骤摘要】
支持远程并发访问的持久哈希表访问系统
本专利技术涉及存储系统领域,具体地,涉及一种支持远程并发访问的持久哈希表访问系统。
技术介绍
新型持久内存PM(PersistentMemory,又作非易失内存NVM)技术综合了DRAM内存与磁盘/固态硬盘(SSD)/闪存(Flash)两者的特性。一方面,它具有大容量、非易失、低功耗等特点,与磁盘相似;另一方面,它具有低延迟、高带宽、可字节寻址等特点,与内存相似。与传统DRAM内存相比,基于PM构建存储系统可直接持久存储数据,省去刷出到下一级持久存储器的开销;与磁盘相比,基于PM构建持久存储系统可通过load/store方式直接访问PM中存储的数据,省去了加载到内存缓冲区的开销。因此,PM为构建新型高效持久存储系统提供了机遇。哈希表(HashTable)是一种重要的数据结构,它以键值对(key-valuepair)的形式存储和访问数据,被广泛应用于键值数据库、索引表、缓存表等设计中。哈希表需要解决数据哈希冲突(不同的键映射到同一存储位置)以保证哈希表的存储效率。通常的哈希冲突解决方案有k-哈希、线性本文档来自技高网...

【技术保护点】
1.一种支持远程并发访问的持久哈希表访问系统,其特征在于,包括:/n数据存储模块:组织和管理哈希表的元数据及数据的持久存储,并支持通用哈希表读写访问接口;/n远程访问模块:建立服务端与客户端的RDMA通信连接,实现客户端的远程访问;/n后台处理模块:后台辅助客户端的远程写请求,更新相关数据及元数据,以保证哈希表的元数据和数据处于一致状态;/n数据恢复模块:在服务端开启持久哈希表时检测故障一致性,当数据不一致时恢复哈希表中的所有数据到一致状态。/n

【技术特征摘要】
1.一种支持远程并发访问的持久哈希表访问系统,其特征在于,包括:
数据存储模块:组织和管理哈希表的元数据及数据的持久存储,并支持通用哈希表读写访问接口;
远程访问模块:建立服务端与客户端的RDMA通信连接,实现客户端的远程访问;
后台处理模块:后台辅助客户端的远程写请求,更新相关数据及元数据,以保证哈希表的元数据和数据处于一致状态;
数据恢复模块:在服务端开启持久哈希表时检测故障一致性,当数据不一致时恢复哈希表中的所有数据到一致状态。


2.根据权利要求1所述的支持远程并发访问的持久哈希表访问系统,其特征在于,组织和管理哈希表的所述数据包括:索引表和数据表;
数据表存储键值对数据,索引表存储数据表的元数据。


3.根据权利要求2所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述数据采用Hopscotch哈希方案避免数据哈希冲突,将哈希表中相邻的K个数据桶组成一个Hopscotch组,每个数据桶包含M个数据槽,且K与M满足2≤K≤16,2≤M≤8,K*M≤32;
所述数据槽除存储键值对数据外,还保留1字节作为标记项,置于数据槽末尾,用来指明所述数据槽的有效性与写属性。


4.根据权利要求3所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述索引表由索引槽组成,任一索引槽与数据表中的一个数据桶一一对应,并作为该数据桶的元数据,且该元数据为8字节,支持原子更新。


5.根据权利要求4所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述索引槽包括四个部分:
位图bitmap:指示该数据桶内每个数据槽的有效性,大小为8比特,其中0表示空数据槽,1表示有效数据槽;
跳跃图hopmap:指示哈希到本数据桶的数据在一个Hopscotch组的实际存储情况,大小为32比特,其中每4比特表示一个数据桶的特定有效数据槽数量;
本地锁llock:指示当前是否存在发生在本数据桶中的本地写操作,大小为8比特,用于服务端本地执行哈希表写操作;
远程锁rlock:指示当前是否存在锁定相应数据桶的远程客户端,大小为16比特,为0时表示不存在,否则存在。


6.根据权利要求1所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述服务端将整个哈希表的存储区域注册到网卡,与多个客户端建立RDMA连接并同步关键数据,从而支持客户端对服务端哈希表的远程直接内存访问。


7.根据权利要求6所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述服务端使用共享接收队列来接收多个客户端发送的写事件,并在写事件发生后轮询完成队列,服务端具体执行以下动作:
S1:当与多个客户端建立连接成功并同步关键数据后,发起R个RECV请求,其中R为服务端网卡支持的最大RECV请求数量;
S2:等待远程写事件发生;
S3:当触发远程写事件时,轮询完成队列中的完成消息;
S4:在本地补充一个RECV请求;
S5:提取消息中的立即数,转交所述后台处理模块使用。


8.根据权利要求5所述的支持远程并发访问的持久哈希表访问系统,其特征在于,所述客户端在执行远程读写访问的整个过程中,使用完全的单边RDMA原语,避免服务端在关键执行路径上的一切CPU开销,具体包括:
在执行远程读时,客户端执行以下动作:
S11:通过本地哈希的方式计算出数据桶偏移;
S12:根据所求数据桶偏移初始化远端访问地址...

【专利技术属性】
技术研发人员:黄林鹏郑圣安沈艳艳陈雨亭舒继武黄凯欣
申请(专利权)人:上海交通大学清华大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1