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

持久性内存键值系统及其操作方法技术方案

技术编号:30245551 阅读:24 留言:0更新日期:2021-10-09 20:28
本发明专利技术实施例提供了一种持久性内存键值系统及其操作方法,该操作方法包括:查找持久性内存键值系统的索引以定位待插入的键值对元数据;获取动态随机存取存储器中与所述键值对元数据对应的写锁资源;为所述键值对元数据分配持久性内存,并持久化所述键值对元数据;在所述持久性内存键值系统中原子地插入所述键值对元数据。通过本发明专利技术,在键值对的插入操作过程中,对写锁资源的操作不会引入任何对持久性内存的写,并且无需任何日志操作,提高了插入操作性能,并提高多核架构下的扩展性。并提高多核架构下的扩展性。并提高多核架构下的扩展性。

【技术实现步骤摘要】
持久性内存键值系统及其操作方法


[0001]本专利技术实施例涉及持久性内存存储
,具体而言,涉及一种持久性内存键值系统及其操作方法。

技术介绍

[0002]持久性内存(Persistent Memory)具有与动态随机存取存储器(DRAM)相近的性能,并且支持字节粒度寻址;同时,持久性内存和磁盘一样,能够持久化存储数据。例如,现有的持久性内存产品具有亚微秒的延迟以及单条最高512GB的容量,其为新型内存存储系统带来了诸多机遇。现有的持久性内存支持两种模式:应用直访模式和内存模式。应用直访模式将持久性内存抽象为特殊的、可通过load、store指令直接读写的存储设备。在内存模式下,DRAM作为持久性内存的缓存,向应用程序提供了一个大容量内存的抽象,但没有存储能力。
[0003]现代服务器多为多核架构,即一块处理器中包含几十甚至上百个CPU核心,用于提高整个系统的并发性能。然而,多核架构带来了并发控制的问题,即不同CPU核心上的线程如何高效且正确地并发访问数据。
[0004]现有持久性内存键值系统未针对多核架构进行设计,导致了诸多问题。首先,保证多线程正确执行的并发原语(如读写锁)导致数据在不同CPU核心的缓存之间来回抖动,频繁触发低效的缓存一致性协议,严重影响CPU的性能。其次,持久性内存的写带宽很低,单条写带宽仅有2.3GB/s左右,约为DRAM的1/6,而键值系统为保证崩溃一致性而采用的各种一致性机制(如日志)会消耗额外的持久性内存写带宽;同时,读写锁通常被嵌入到数据结构内部,其带来的缓存抖动也会导致大量持久性内存的写回。最后,由于持久性内存较高的读延迟和持久化延迟,临界区的时间被拉长,导致不同线程间相互冲突的操作被严重阻塞。

技术实现思路

[0005]本专利技术实施例提供了一种持久性内存键值系统及其操作方法,以至少解决相关技术中现有持久性内存键值系统未针对多核架构进行设计,导致操作性能较低的问题。
[0006]根据本专利技术的一个实施例,提供了一种持久性内存键值系统的操作方法,该方法包括:查找持久性内存键值系统的索引以定位待插入的键值对元数据;获取动态随机存取存储器中与所述键值对元数据对应的写锁资源;为所述键值对元数据分配持久性内存,并持久化所述键值对元数据;在所述持久性内存键值系统中原子地插入所述键值对元数据,其中,所述键值对元数据插入的提交过程包括两个阶段,在第一阶段中,将所述键值对元数据中持久性标志位清空,并调用CPU持久化指令将其从CPU缓存刷写至持久性内存;在第二阶段中,设置所述持久性标志位,并通知读操作所述键值对元数据已经被成功持久化。
[0007]在一个示例性实施例中,在获取动态随机存取存储器中与所述键值对元数据对应的写锁资源之前,还包括;将所述写锁资源从持久性内存键值系统的索引中分离,并在所述动态随机存取存储器中维护所述写锁资源。
[0008]在一个示例性实施例中,所述写锁资源在所述动态随机存取存储器中以表结构被维护,其中,所述表结构的输入为索引的节点地址,所述表结构的输出为对应的所述写锁资源。
[0009]在一个示例性实施例中,在所述持久性内存键值系统中原子地插入所述键值对元数据之前,还包括:将所述键值对元数据存储为可原子修改的格式。
[0010]在一个示例性实施例中,所述可原子修改的格式指所述键值对元数据被包装到连续的持久性内存空间,并支持被CPU原子地修改。
[0011]在一个示例性实施例中,当相冲突的第一插入操作和第二插入操作同时发生时,不对所述第一插入操作进行持久性内存的分配和写入,将所述第一插入操作返回。
[0012]在一个示例性实施例中,所述键值对元数据至少包括以下之一:键值对指纹、键值对地址以及持久化标志位;其中,所述键值对指纹为键的哈希值的其中若干位,所述键值对地址指向持久性内存中的键值对,所述持久性标志位指示所述键值对元数据的持久化状态。
[0013]在一个示例性实施例中,在将所述键值对元数据原子地插入所述持久性内存键值系统之后,还包括:在所述持久性内存键值系统中无锁地查询所述键值对元数据。
[0014]在一个示例性实施例中,无锁地查询所述键值对元数据包括:检查所述键值对元数据中的持久性标志位,若所述持久性标志位为清空状态,则调用CPU持久化指令持久化所述目标键值对元数据;调用原子指令设置所述持久性标志位,并读取元数据指向的键值对。
[0015]在一个示例性实施例中,该方法还包括:基于时间周期的内存回收方式,通过后台线程周期性回收持久性内存垃圾。
[0016]根据本专利技术的另一个实施例,提供了一种持久性内存键值系统,该系统包括:查找模块,用于查找持久性内存键值系统的索引以定位待插入的键值对元数据;获取模块,用于获取动态随机存取存储器中与所述键值对元数据对应的写锁资源;分配模块,用于为所述键值对元数据分配持久性内存,并持久化所述键值对元数据;插入模块,用于在所述持久性内存键值系统中原子地插入所述键值对元数据,其中,所述键值对元数据插入的提交过程包括两个阶段,在第一阶段中,将所述键值对元数据中持久性标志位清空,并调用CPU持久化指令将其从CPU缓存刷写至持久性内存;在第二阶段中,设置所述持久性标志位,并通知读操作所述键值对元数据已经被成功持久化。
[0017]在一个示例性实施例中,该系统还包括:维护模块,用于将所述写锁资源从持久性内存键值系统的索引中分离,并在所述动态随机存取存储器中维护所述写锁资源。
[0018]在一个示例性实施例中,该系统还包括:存储模块,用于将所述键值对元数据存储为可原子修改的格式。
[0019]在一个示例性实施例中,该系统还包括:查询模块,用于在所述持久性内存键值系统中无锁地查询所述键值对元数据。
[0020]在一个示例性实施例中,该系统还包括:回收模块,用于基于时间周期的内存回收方式,通过后台线程周期性回收持久性内存垃圾。
[0021]根据本专利技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0022]根据本专利技术的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
[0023]通过本专利技术的上述实施例,在键值对的插入操作过程中,对写锁资源的操作不会引入任何对持久性内存的写,并且无需任何日志操作,提高了插入操作性能,并提高多核架构下的扩展性。
附图说明
[0024]图1是根据本专利技术实施例的持久性内存键值系统的操作方法的流程图;
[0025]图2是根据本专利技术实施例的持久性内存键值系统的结构框图;
[0026]图3是根据本专利技术另一实施例的持久性内存键值系统的结构框图;
[0027]图4是根据本专利技术一个实施例的多核架构友好的持久性内存键值系统的示意图;
[0028]图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种持久性内存键值系统的操作方法,其特征在于,包括:查找持久性内存键值系统的索引以定位待插入的键值对元数据;获取动态随机存取存储器中与所述键值对元数据对应的写锁资源;为所述键值对元数据分配持久性内存,并持久化所述键值对元数据;在所述持久性内存键值系统中原子地插入所述键值对元数据,其中,所述键值对元数据插入的提交过程包括两个阶段,在第一阶段中,将所述键值对元数据中持久性标志位清空,并调用CPU持久化指令将其从CPU缓存刷写至持久性内存;在第二阶段中,设置所述持久性标志位,并通知读操作所述键值对元数据已经被成功持久化。2.根据权利要求1所述的方法,其特征在于,在获取动态随机存取存储器中与所述键值对元数据对应的写锁资源之前,还包括;将所述写锁资源从持久性内存键值系统的索引中分离,并在所述动态随机存取存储器中维护所述写锁资源。3.根据权利要求2所述的方法,其特征在于,其中,所述写锁资源在所述动态随机存取存储器中以表结构被维护,其中,所述表结构的输入为索引的节点地址,所述表结构的输出为对应的所述写锁资源。4.根据权利要求1所述的方法,其特征在于,在所述持久性内存键值系统中原子地插入所述键值对元数据之前,还包括:将所述键值对元数据存储为可原子修改的格式。5.根据权利要求4所述的方法,其特征在于,所述可原子修改的格式指所述键值对元数据被包装到连续的持久性内存空间,并支持被CPU原子地修改。6.根据权利要求1所述的方法,其特征在于,还包括:当相冲突的第一插入操作和第二插入操作同时发生时,不对所述第一插入操作进行持久性内存的分配和写入,将所述第一插入操作返回。7.根据权利要求1所述的方法,其特征在于,其中,所述键值对元数据至少包括以下之一:键值对指纹、键值对地址以及持久化标志位;其中,所述键值对指纹为键的哈希值的其中若干位,所述键值对地址指向持久性内存中的键值对,所述持久性标志位指示所述键值对元数据的持久化状态。8.根据权利要求1所述的方法,其特征在于,在将所述键值对元数据原子地插入所述持久性内存键值系统之后,还包括:在所述持久性内存键值系统中无锁地查询所述键值对元数据。9.根据权利要求8所述的方法,其...

【专利技术属性】
技术研发人员:舒继武汪庆屠要峰杨洪章韩银俊
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1