当前位置: 首页 > 专利查询>清华大学专利>正文

一种持久性内存对象存储系统技术方案

技术编号:24408812 阅读:70 留言:0更新日期:2020-06-06 08:16
本发明专利技术公开了一种持久性内存对象存储系统,包括:客户端和服务端;客户端向用户提供对象操作接口,以及通过远程过程调用进行交互;服务端用于对来自客户端的元数据请求进行处理,并通过远程过程调用将结果返回给客户端;服务端基于持久性内存空间分配器管理对象数据,通过三级索引结构进行对象索引,通过持久性对象操作日志实现系统崩溃一致性;客户端远程访问对象时,客户端直接完成数据读写请求,由客户端发起远程过程调用,由服务端间接完成元数据更新工作;通过持久性对象操作日志和Epoch结合的垃圾回收机制,由独立的后台线程批量地进行垃圾回收工作。该系统能够同时提供高效的读写性能、容量可扩展能力以及崩溃后恢复能力。

A persistent memory object storage system

【技术实现步骤摘要】
一种持久性内存对象存储系统
本专利技术涉及持久性内存存储
,特别涉及一种持久性内存对象存储系统。
技术介绍
持久性内存(PersistentMemory,PM)是一种新型的具有字节寻址能力的内存级存储器件,诸如相变存储器(PhaseChangeMemory,PCM)、自旋矩存储器(Spin-TorqueTransferRAM,STT-RAM)以及阻变存储器(ResistiveRAM,RRAM)等都属于持久性内存器件,Intel还推出了全新的持久性内存设备英特尔傲腾数据中心持久性内存(IntelOptaneDCpersistentmemory)。相较于传统磁盘等块设备,持久性内存在保证数据持久化的基础上,还能够提供更高的带宽和更低的读写延迟同时还能够支持按照字节粒度访问,而相较于动态随机存取存储器(DynamicRandomAccessMemory,DRAM)而言,持久性内存又能够实现数据的持久化,因此持久性内存不仅具有同DRAM相近的读写性能,同时又能提供类似传统磁盘等外存类似的持久性。面对高性能的存储器件,构建能够充分发挥持久性内存性能的高效对象存储系统具有重要意义。对象存储(ObjectStorage)是一种重要的数据存储方式,对象存储不同于文件存储,不存在树状的文件名字空间,各对象之间没有依赖关系,所有对象呈现出扁平化的拓扑结构。长久以来,对象存储系统构建于传统磁盘等块设备之上,也就是说,包括对象存储的元数据和对象数据都存储于磁盘这样的块设备上。然而,磁盘的带宽小,延迟高,将元数据存储在磁盘上的做法难以支持对元数据的更高效的并发更新操作,同时,将数据存储在磁盘上的做法难以提供对数据更高带宽,更低延迟的访问。现有的一些设计提出在持久性内存上按照原有的方法构建对象存储系统。通过使用持久性内存替换原有的磁盘之类的块设备,以利用持久性内存的低延迟访问特性,加速对元数据和数据访问。然而,这样的方法并没能充分利用持久性内存能够支持以字节粒度访问的特点,并且当硬件开销大大降低后,传统的设计方法会在软件层面造成巨大的时间开销。单纯的将传统的对象存储系统设计照搬到持久性内存上去,并不能充分的利用持久性内存的优点,发挥持久性内存这一新兴硬件的性能。不改变已有的软件设计,难以降低软件层面的性能损失。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种持久性内存对象存储系统,能够同时提供高效的读写性能、容量可扩展能力以及崩溃后恢复能力。为达到上述目的,本专利技术实施例提出了一种持久性内存对象存储系统,包括:客户端和服务端;所述客户端向用户提供对象操作接口,以及通过远程过程调用进行交互;所述服务端用于对来自所述客户端的元数据请求进行处理,并通过远程过程调用将结果返回给所述客户端;所述服务端包括:持久性内存空间分配管理器、从粗粒度到细粒度的三级索引结构、持久性对象操作日志和垃圾回收机制;所述服务端基于所述持久性内存空间分配器管理对象数据,通过所述三级索引结构进行对象索引,通过所述持久性对象操作日志实现系统崩溃一致性;所述客户端远程访问对象时,所述客户端直接完成数据读写请求,由所述客户端发起远程过程调用,由所述服务端间接完成元数据更新工作;通过所述持久性对象操作日志和Epoch结合的垃圾回收机制,由独立的后台线程批量地进行垃圾回收工作。本专利技术实施例的一种持久性内存对象存储系统,借助高速存储硬件特性,设计更适合于持久性内存的对象元数据组织管理方式,能够同时提供高效的读写性能、容量可扩展能力以及崩溃后恢复能力。另外,根据本专利技术上述实施例的一种持久性内存对象存储系统还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述服务端和所述客户端均允许多个实例同时存在,所述服务端存储有服务端内部对象编号计数器和全局唯一的服务端实例编号。进一步地,在本专利技术的一个实施例中,所述对象包括对象元数据和对象数据,所述对象元数据和所述对象数据均持久性地存储于持久性内存中;其中,所述对象元数据中包括全局唯一的对象标识符,用于索引所述对象,所述对象标识符由所述服务端在所述对象创建时生成,通过所述对象标识符确定一个唯一的对象。进一步地,在本专利技术的一个实施例中,所述持久性内存空间分配器管理的持久性内存空间分为元数据区和数据区两种,所述元数据区用于存放所述对象索引和所述持久性对象操作日志,所述数据区用于存放对象内部数据。进一步地,在本专利技术的一个实施例中,所述粗粒度到细粒度的三级索引结构包括:全局服务端实例索引、可扩展持久性哈希的对象元数据索引和数据块索引的三级索引结构;所述全局服务端实例索引采用一致性哈希的方法用于指示存储给定的对象标识符对应的对象所属的服务端实例编号;所述可扩展持久性哈希的对象元数据索引采用可扩展的持久性哈希表结构,以索引服务端实例中给定的对象标识符对应的对象的元数据所在地址;所述数据块索引采用持久性跳表结构索引对象内部数据块。进一步地,在本专利技术的一个实施例中,所述通过持久性对象操作日志实现系统崩溃一致性,包括:所述持久性内存对象存储系统在更新元数据前记录所述持久性对象操作日志,所述持久性对象操作日志存储于持久性内存中,在确定所述持久性对象操作日志的日志项已被持久性化后,所述持久性内存对象存储系统再进行元数据更新操作,日志项在操作全部完成后被销毁,在所述持久性内存对象存储系统崩溃后的恢复阶段,通过重放所述持久性对象操作日志使所述持久性内存对象存储系统达到一致状态。进一步地,在本专利技术的一个实施例中,所述客户端的写入对象操作包括:空间分配、数据直写和元数据更新三个阶段;在所述空间分配阶段,所述客户端通过只读索引查找所述服务端信息并发送空间分配请求,所述服务端通过所述持久性内存空间分配器分配相应空间,并返回持久性内存空间地址;在所述数据直写阶段,所述客户端在接收到新分配的持久性内存空间地址后,通过RDMA技术将数据直接写入到持久性内存中;在所述元数据更新阶段,所述客户端向所述服务端发送元数据更新请求,所述服务端更新对象索引信息并返回给所述客户端,写入操作结束。进一步地,在本专利技术的一个实施例中,所述客户端的读取对象操作包括:元数据获取、数据直读和对象解锁三个阶段;在所述元数据获取阶段,所述客户端从所述服务端获取对象内部索引信息;在所述数据直读阶段,所述客户端通过RDMA直接读取对象数据;在所述对象解锁阶段,所述客户端向所述服务端发送解锁请求。进一步地,在本专利技术的一个实施例中,所述通过所述持久性对象操作日志和Epoch结合的垃圾回收机制,包括:所述持久性对象操作日志为环形队列,包含多个日志项,每个日志项大小相同,日志项在对象操作过程中产生,由后台线程销毁;在执行元数据更新操作前,所述持久性内存对象存储系统将操作信息和有关的垃圾回收信息连带操作发生的时间戳同时记录本文档来自技高网
...

【技术保护点】
1.一种持久性内存对象存储系统,其特征在于,包括:客户端和服务端;/n所述客户端向用户提供对象操作接口,以及通过远程过程调用进行交互;/n所述服务端用于对来自所述客户端的元数据请求进行处理,并通过远程过程调用将结果返回给所述客户端;/n所述服务端包括:持久性内存空间分配管理器、从粗粒度到细粒度的三级索引结构、持久性对象操作日志和垃圾回收机制;/n所述服务端基于所述持久性内存空间分配器管理对象数据,通过所述三级索引结构进行对象索引,通过所述持久性对象操作日志实现系统崩溃一致性;/n所述客户端远程访问对象时,所述客户端直接完成数据读写请求,由所述客户端发起远程过程调用,由所述服务端间接完成元数据更新工作;/n通过所述持久性对象操作日志和Epoch结合的垃圾回收机制,由独立的后台线程批量地进行垃圾回收工作。/n

【技术特征摘要】
1.一种持久性内存对象存储系统,其特征在于,包括:客户端和服务端;
所述客户端向用户提供对象操作接口,以及通过远程过程调用进行交互;
所述服务端用于对来自所述客户端的元数据请求进行处理,并通过远程过程调用将结果返回给所述客户端;
所述服务端包括:持久性内存空间分配管理器、从粗粒度到细粒度的三级索引结构、持久性对象操作日志和垃圾回收机制;
所述服务端基于所述持久性内存空间分配器管理对象数据,通过所述三级索引结构进行对象索引,通过所述持久性对象操作日志实现系统崩溃一致性;
所述客户端远程访问对象时,所述客户端直接完成数据读写请求,由所述客户端发起远程过程调用,由所述服务端间接完成元数据更新工作;
通过所述持久性对象操作日志和Epoch结合的垃圾回收机制,由独立的后台线程批量地进行垃圾回收工作。


2.根据权利要求1所述的系统,其特征在于,所述服务端和所述客户端均允许多个实例同时存在,所述服务端存储有服务端内部对象编号计数器和全局唯一的服务端实例编号。


3.根据权利要求1所述的系统,其特征在于,
所述对象包括对象元数据和对象数据,所述对象元数据和所述对象数据均持久性地存储于持久性内存中;其中,所述对象元数据中包括全局唯一的对象标识符,用于索引所述对象,所述对象标识符由所述服务端在所述对象创建时生成,通过所述对象标识符确定一个唯一的对象。


4.根据权利要求1所述的系统,其特征在于,所述持久性内存空间分配器管理的持久性内存空间分为元数据区和数据区两种,所述元数据区用于存放所述对象索引和所述持久性对象操作日志,所述数据区用于存放对象内部数据。


5.根据权利要求1所述的系统,其特征在于,所述粗粒度到细粒度的三级索引结构包括:全局服务端实例索引、可扩展持久性哈希的对象元数据索引和数据块索引的三级索引结构;
所述全局服务端实例索引采用一致性哈希的方法用于指示存储给定的对象标识符对应的对象所属的服务端实例编号;
所述可扩展持久性哈希的对象元数据索引采用可扩展的持久性哈希表结构,以索引服务端实例中给定的对象标识符对应的对象的元数据所在地址;
所述数据块索引采用持久性跳表结构索引对象内部数据块。


6.根据权利要求1所述的系统,其特征在于,所...

【专利技术属性】
技术研发人员:舒继武陈游旻朱博弘陆游游
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

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

1