CN111309270A - 一种持久性内存键值存储系统 - Google Patents
一种持久性内存键值存储系统 Download PDFInfo
- Publication number
- CN111309270A CN111309270A CN202010176536.4A CN202010176536A CN111309270A CN 111309270 A CN111309270 A CN 111309270A CN 202010176536 A CN202010176536 A CN 202010176536A CN 111309270 A CN111309270 A CN 111309270A
- Authority
- CN
- China
- Prior art keywords
- key
- persistent memory
- value
- key value
- solid state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及持久性内存与固态硬盘的存储技术领域,特别涉及一种持久性内存键值存储系统,包括用于存储变长键值对的持久性内存和固态硬盘,该系统根据二级索引结构索引持久性内存和固态硬盘的键值对;该系统通过主动设置墓碑标记的日志结构式持久性内存空间分配器管理持久性内存的存储空间;该系统采用具备冷热调度功能的垃圾回收机制,并基于访问热度与持久性内存使用率调整垃圾回收策略;其中,二级索引结构基于元数据索引和支持多版本异构存储的版本索引构成;访问热度基于慵懒式热度衰退的热度统计方法统计得出。该持久性内存键值存储系统,混合利用持久性内存低延迟与固态硬盘大容量的特性,能够同时提供性能高效、容量可扩展的键值存储服务。
Description
技术领域
本发明涉及持久性内存与固态硬盘的存储技术领域,特别涉及一种持久性内存键值存储系统。
背景技术
大数据时代对数据存储系统的能力提出了更高的要求,工业界中,扩展性、并发性好的NoSQL(Not only SQL)数据库,尤其是键值存储系统被大规模部署于各种应用之中。这类系统可以很容易的做到横向扩展,克服了传统关系型数据库的问题。然而由于内存的速度是磁盘的近1000倍,现有的如Redis等的键值系统为了保持高性能,即使在有超大容量的硬盘做二级存储的情况下,仍过度依赖于动态随机存取存储器(以下简称为DRAM)内存。
DRAM内存自诞生伊始就在计算机存储系统中作为内存担任着极其重要的位置。然而由于传统的DRAM内存整体密度偏小,每块的造价随着容量呈指数倍上涨,换而言之,DRAM内存在未来很快将达到容量瓶颈。持久性内存(亦称持久性内存,Non Volatile Memory,简称NVM)作为一类近年盛行的新型存储器件,兼有DRAM内存低延时随机访问与硬盘非易失、容量大的优点,被寄望于是取代DRAM内存的下一代存储器。
现有的一些面向持久性内存的键值系统,通过大容量的持久性内存替换掉原有的DRAM内存,缓解原有的DRAM内存的容量瓶颈;或是将低延时的持久性内存作为磁盘使用,提供更高性能的数据存取服务。两者均有缺陷,无法在性能与容量上取得权衡。大数据场景下的数据存储容量高达PB级别,且访问模式具有很强的时间局部性,即只有很少的一部分数据会在一段时间内被频繁访问,大部分数据都处于冷状态。持久性内存容量毕竟有限,有超大容量固态硬盘(SSD)作为传统的二级存储设备,更适合存放一些冷的数据,现有的系统简单地将所有数据不区分冷热直接全部存储于持久性内存,大大浪费了宝贵的持久性内存资源,且无法很好的利用二级存储的大容量特性。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种持久性内存键值存储系统,混合利用持久性内存低延迟与固态硬盘大容量的特性,能够同时提供性能高效、容量可扩展的键值存储服务。
为达此目的,本发明实施例提出了一种持久性内存键值存储系统,包括用于存储变长键值对的持久性内存和固态硬盘,其特征在于,所述持久性内存键值存储系统根据二级索引结构索引所述持久性内存和所述固态硬盘中的键值对;所述持久性内存键值存储系统通过主动设置墓碑标记的日志结构式持久性内存空间分配器管理所述持久性内存的存储空间;所述持久性内存键值存储系统采用具备冷热调度功能的垃圾回收机制,并基于访问热度与持久性内存使用率调整垃圾回收策略;其中,所述二级索引结构基于元数据索引和支持多版本异构存储的版本索引构成;所述访问热度基于慵懒式热度衰退的热度统计方法统计得出。
本发明实施例的一种持久性内存键值存储系统,面向持久性内存和固态硬盘混合存储架构,构建了一个冷热分级的高性能键值存储系统,该键值存储系统利用后台常驻的冷热调度服务将访问不频繁、较冷的键值对维护在固态硬盘中,将访问频繁、较热的键值对存储在持久性内存中,混合利用持久性内存低延迟与固态硬盘大容量的特性,能够同时提供性能高效、容量可扩展的键值存储服务。
另外,根据本发明上述实施例的一种持久性内存键值存储系统还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述持久性内存键值存储系统中存储的数据包括键值对元数据与键值数据;其中,所述键值对元数据存储在所述持久性内存中,所述键值数据存储在所述持久性内存中或所述固态硬盘中。
进一步地,在本发明的一个实施例中,所述元数据索引为无锁B+树数据结构,所述元数据索引维护所有键值对象的元数据信息,所述键值对象存储在所述持久性内存中或所述固态硬盘中。
进一步地,在本发明的一个实施例中,所述版本索引以持久性链表的方式管理同一键对应的若干个版本的元数据信息,所述持久性链表的每个节点记录着键值数据在所述持久性内存的地址或键值数据在所述固态硬盘中的文件名以及偏移信息。
进一步地,在本发明的一个实施例中,所述持久性内存键值存储系统执行读取键值对的操作,包括:
查询所述二级索引结构获得对应版本键值对的元数据信息,并更新所述元数据信息的访问热度;
根据所述版本索引的信息无锁化读取所述持久性内存或所述固态硬盘;其中,所述读取的过程通过Epoch机制进行保护。
进一步地,在本发明的一个实施例中,所述持久性内存键值存储系统执行写入键值对的操作,包括:
将所述键值对写入所述持久性内存;其中,所述写入的过程包括空间分配阶段、数据写入持久化阶段、版本索引更新阶段和元数据索引更新阶段;
当写入的所述键值对的热度值小于或等于预设迁移阈值时,所述键值对被后台线程扫描并迁移至所述固态硬盘。
进一步地,在本发明的一个实施例中,所述日志结构式持久性内存空间分配器分配所述变长键值对的数据的存储空间;所述持久性内存键值存储系统执行修改键值对操作或删除键值对操作产生持久性内存垃圾时,所述持久性内存键值存储系统根据所述二级索引结构的元数据信息,主动在日志结构内存对应地址设置用于标识垃圾的所述墓碑标记,以供垃圾回收线程根据常数时间复杂度算法识别出所述垃圾。
进一步地,在本发明的一个实施例中,所述访问热度的统计结果包括时间戳和热度值;所述键值对每次被访问时,相应的所述键值对的热度值增加一次;所述键值对被接触时触发衰退例程,在衰退时,如果当前时间值与记录时间戳之差大于或等于预设衰退单元时间,则进行(当前时间值-记录时间戳)/预设衰退单元时间次衰退,并将所述当前时间值记录在时间戳中。
进一步地,在本发明的一个实施例中,所述垃圾回收策略的垃圾回收线程对日志结构内存进行扫描时遍历每一个有效的键值对,若发现其中存在所述访问热度小于或等于预设热度阈值的键值对且当前持久性内存使用率大于或等于预设使用阈值,所述持久性内存键值存储系统触发所述冷热调度功能的冷调度将相应的所述键值对迁移至所述固态硬盘中,并更新所述二级索引结构中的元数据信息。
进一步地,在本发明的一个实施例中,所述垃圾回收策略包括选择权重最小的持久性内存段进行回收;其中,所述权重基于所述访问热度与持久性内存有效率计算得出。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的持久性内存键值存储系统的示意图;
图2是本发明实施例的二级索引结构的示意图;
图3是本发明实施例的持久性内存空间分配器的示意图;
图4是本发明实施例的具备冷热调度功能的垃圾回收机制的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述本发明实施例提出的一种持久性内存键值存储系统。
请参考附图1,其是本发明实施例的持久性内存键值存储系统的示意图。
如附图1所示,该持久性内存键值存储系统,包括用于存储变长键值对的持久性内存和固态硬盘,所述持久性内存键值存储系统根据二级索引结构索引所述持久性内存和所述固态硬盘中的键值对;所述持久性内存键值存储系统通过主动设置墓碑标记的日志结构式持久性内存空间分配器管理所述持久性内存的存储空间;所述持久性内存键值存储系统采用具备冷热调度功能的垃圾回收机制,并基于访问热度与持久性内存使用率调整垃圾回收策略;其中,所述二级索引结构基于元数据索引和支持多版本异构存储的版本索引构成;所述访问热度基于慵懒式热度衰退的热度统计方法统计得出。
具体地,该持久性内存键值存储系统的设计混合使用持久性内存和固态硬盘存储变长键值对;通过元数据索引和支持多版本异构存储的版本索引构成的二级索引结构,索引持久性内存和固态硬盘中的键值对;通过主动设置墓碑标记的日志结构式持久性内存空间分配器管理持久性内存空间;采用慵懒式热度衰退的热度统计方法;采用具备冷热调度功能的垃圾回收机制,能够基于访问热度与持久性内存使用率动态调整垃圾回收策略。
本发明实施例基于持久性内存和固态硬盘的混合存储的场景,构建一个键值存储系统,即持久性内存键值存储系统。该持久性内存键值存储系统以用户态程序库的方式向用户程序提供键值存储的接口,包括写入键值、读取键值、删除键值和迁移键值。所有键值对共享一个逻辑视图,用户程序对于键值对的不同存储介质无感知。持久性内存键值存储系统基于键值对的访问热度自动进行冷热迁移,但特别地,用户也可以通过迁移接口主动调整键值对所处的存储介质。
本发明实施例的一种持久性内存键值存储系统,面向持久性内存和固态硬盘混合存储架构,构建了一个冷热分级的高性能键值存储系统,该键值存储系统利用后台常驻的冷热调度服务将访问不频繁、较冷的键值对维护在固态硬盘中,将访问频繁、较热的键值对存储在持久性内存中,混合利用持久性内存低延迟与固态硬盘大容量的特性,能够同时提供性能高效、容量可扩展的键值存储服务。
在本发明的一个实施例中,所述持久性内存键值存储系统中存储的数据包括键值对元数据与键值数据;其中,所述键值对元数据存储在所述持久性内存中,所述键值数据存储在所述持久性内存中或所述固态硬盘中。
具体地,所述持久性内存键值存储系统中存储的数据包括键值对元数据与键值数据,其中键值对元数据固定存放在持久性内存中,键值数据可以存放在持久性内存也可以存放在固态硬盘中。
该持久性内存键值存储系统,存储的数据包括键值对元数据与键值数据,其中键值对元数据固定存放在持久性内存中,少量较热的键值数据存放在持久性内存中,大量较冷的键值数据存放在固态硬盘中。对于访问键值对元数据信息与较热的键值对这些频繁的操作,持久性内存字节寻址与低延迟的优势可以被充分发挥,而对于访问较冷的键值对这种不频繁的操作,固态硬盘提供的大容量可以以更低廉的成本存储更多的键值对。
在本发明的一个实施例中,所述元数据索引为无锁B+树数据结构,所述元数据索引维护所有键值对象的元数据信息,所述键值对象存储在所述持久性内存中或所述固态硬盘中。
具体地,所述二级索引结构中,元数据索引为支持高并发的无锁B+树数据结构。元数据索引维护了所有键值对象的元数据信息,无论键值对象数据在持久性内存中还是在固态硬盘中。
请参考附图2,其是本发明实施例的二级索引结构的示意图。该附图2展示了所述持久性内存上的二级索引结构,包含元数据索引与版本索引两部分,所述持久性内存上的二级索引结构管理了全部的键值对信息,无论键值对象数据在持久性内存中还是在固态硬盘中。其中,元数据索引为支持高并发的无锁B+树数据结构,其索引的“键”以指针外链式指向持久性内存空间分配器分配的用户的键,其索引的“值”为所述版本索引的地址。
进一步地,如果向元数据索引插入键值对时遇到叶子节点分裂,叶子节点中的“键”会向父亲节点复制,此时需由持久性内存空间分配器再分配并拷贝一份复制的键,并以新的复制的键的地址向父节点中拷贝。如若不然,由于B+树的键使用了外链的指针,当叶子节点中的键值对被用户删除时,对应的持久性内存空间被回收,祖先节点中可能残留的指针会指向这片已经被回收的区域,而发生内存泄露。
在本发明的一个实施例中,所述版本索引以持久性链表的方式管理同一键对应的若干个版本的元数据信息,所述持久性链表的每个节点记录着键值数据在所述持久性内存的地址或键值数据在所述固态硬盘中的文件名以及偏移信息。
具体地,所述二级索引结构中,版本索引以持久性链表的方式管理同一键对应的多个版本的元数据信息。持久性链表中每个节点记录着键值数据在持久性内存上的地址或键值数据在固态硬盘中的文件名与偏移信息。
进一步地,所述二级索引结构中的版本索引以持久性链表的方式管理同一键对应的多个版本的元数据信息。版本索引为持久性链表,链表中每个节点包含六个字段,分别是位置标识、版本号、热度退化时间戳、热度值、位置信息,此外还有链表的下一跳指针。其中,位置标识使用最高位1比特用于区别出当前版本的键值对在持久性内存还是固态硬盘,23位版本号为此键值对的版本信息,32位的热度退化时间戳与8位的热度值用于热度统计,位置信息根据异构存储介质的特性以不同方式指示至存储介质中的键值对,具体来说,当对应版本键值数据存储在持久性内存中时,为键值数据的在持久性内存上64位地址。当对应版本键值数据存储在固态硬盘中时,为键值数据所在的文件名与偏移信息,其中文件名和偏移值均为32位的整数。此外持久性链表的插入以头插法插入,这样保证了最新的版本总能最先被查询到,减少了Cache(存储器)的缺失率。
在本发明的一个实施例中,所述持久性内存键值存储系统执行读取键值对的操作,包括:
查询所述二级索引结构获得对应版本键值对的元数据信息,并更新所述元数据信息的访问热度;
根据所述版本索引的信息无锁化读取所述持久性内存或所述固态硬盘;其中,所述读取的过程通过Epoch机制进行保护。
具体地,用户在读取键值对时,首先会查询所述二级索引结构,获得对应版本键值对的元数据,其中访问热度的热度信息会被更新,再根据所述版本索引的信息无锁化读取持久性内存或固态硬盘,读取通过Epoch(Epoch based reclaimation,基于轮次的垃圾回收)机制进行保护。
用户在读取键值对时,首先会查询所述元数据索引获得对应版本键值对的元数据信息,热度信息会被更新但不会被持久化,再根据所述版本索引中的位置信息无锁化读取持久性内存或固态硬盘,读取通过Epoch机制进行保护。热度信息无需持久化,因为热度信息的崩溃不一致对持久性内存键值存储系统没有任何影响。无锁机制使得读取路径上无需加锁,提升了持久性内存键值存储系统的并发能力,能够有效克服锁带来的扩展性问题。无锁机制带来的问题是垃圾回收机制对读无感知,本发明使用了Epoch机制,来避免读线程正在读取的持久性内存或固态硬盘中的文件时被垃圾回收而出现错误。此外,如果热度信息指示当前读取的键值对较热,但其处于固态硬盘中,此时将触发冷热调度功能的热调度将其调度至持久性内存中,热调度由后台线程发起,操作过程与用户写入键值对类似。
在本发明的一个实施例中,所述持久性内存键值存储系统执行写入键值对的操作,包括:
将所述键值对写入所述持久性内存;其中,所述写入的过程包括空间分配阶段、数据写入持久化阶段、版本索引更新阶段和元数据索引更新阶段;
当写入的所述键值对的热度值小于或等于预设迁移阈值时,所述键值对被后台线程扫描并迁移至所述固态硬盘。
具体地,用户在写入键值对时,无论该键值对的冷热情况如何,首先会被写入持久性内存,写入过程分为空间分配、数据写入持久化、版本索引更新和元数据索引更新四阶段,在等到键值对长期不被访问变冷后,才被后台线程扫描并迁移至固态硬盘。所述预设时长对应键值对长期不被访问变冷的时长,具体大小可根据应用场景设置。
用户在写入键值对时,无论该键值对的冷热情况如何,首先会被写入持久性内存,写入分为空间分配、数据写入持久化、版本索引更新和元数据索引更新四阶段。具体而言,在空间分配阶段,无论该键值对的键在索引是否存在,持久性内存空间分配器均需要完整地分配整个键值对的空间并写入。当存在旧的键值对时,如果仅分配值的空间,在后台线程扫描至该值内存进行垃圾回收时,由于不知道该值对应的键是什么,从而无法修改元数据索引中的信息,进而对内存进行回收;在数据写入阶段确保键值对数据已经被持久化之后,在版本索引更新阶段,系统新建链表中的结点并填写相关的版本号、位置指针、链表下一跳地址等信息并持久化;在元数据索引更新阶段,元数据索引使用原子指令更新元数据索引中的链表头结点指针为版本索引中新建的结点,如果键值对是首次插入(即链表原为空),还需在元数据索引结构中新插入,其“键”为用户给出的键,其“值”为新建的链表结点。此外,由于可能有多个写者同时写同一个键而发生冲突,在元数据索引更新阶段的CAS(Compare-and-Swap,比较并替换)指令需要比较版本索引的链表头结点是否改变,如果改变,需要回退至版本索引更新阶段,重新填写链表的下一跳指针并持久化。系统在DRAM内存中为每个版本索引的链表维护了链表长度等元数据信息。当某个键值对的版本数超过用户预设的最大保留版本数时,系统将最旧版本所在的结点从链表中删除,并回收空间。
进一步地,在等到键值对长期不被访问后,会被后台线程扫描并迁移至固态硬盘。即写入的键值对的热度值小于或等于预设迁移阈值时,会被迁移至固态硬盘。热度值综合考虑了访问频率和最近被访问时间,使得做出的迁移判断更准确。具体而言,固态硬盘部分使用日志结构合并树(LSM-Tree)作为存储引擎,键值对首先会被拷贝入持久性内存上的MemTable(可读可写的内存的数据结构),与传统LSM-Tree不同的是,由于键值对在持久性内存中已有备份,因此无需打写前日志(Write Ahead Log);待MemTable到达一定容量后,其转为只读的Immutable MemTable(只读的内存的数据结构)并重新新建一个MemTable,Immutable MemTable则写入硬盘成为第0层的SSTable(一种持久化的磁盘文件),有后台线程对SSTable做合并(compaction)操作;在从Immutable MemTable写入固态硬盘时,以及合并SSTable时,系统需要以Copy-On-Write(写时拷贝)的方式更新所述版本索引中有关键值对的位置信息。此外,在合并SSTable时系统可以查询所述二级索引结构,对SSTable中键值对的有效性做快速判断,对于无效的或当前由其他SSTable存储的键值对则直接丢弃。通过这种修改后的LSM-Tree结构,SSTable中许多垃圾所占的空间被大幅减少,缓解了写放大问题,另一方面,由于有了持久性内存上的二级索引结构,LSM-Tree无需以层级顺序依次遍历SSTable访问键值对,读放大问题也得以解决。
在本发明的一个实施例中,所述日志结构式持久性内存空间分配器分配所述变长键值对的数据的存储空间;所述持久性内存键值存储系统执行修改键值对操作或删除键值对操作产生持久性内存垃圾时,所述持久性内存键值存储系统根据所述二级索引结构的元数据信息,主动在日志结构内存对应地址设置用于标识垃圾的所述墓碑标记,以供垃圾回收线程根据常数时间复杂度算法识别出所述垃圾。
具体地,所述日志结构式持久性内存空间分配器负责分配变长键值对数据的空间;在修改或删除等操作产生持久性内存垃圾时,所述持久性内存键值存储系统会根据所述二级索引结构中的元数据信息,主动在日志结构内存对应地址设置墓碑标记,标识这部分为垃圾,使得垃圾回收线程可以根据常数时间复杂度算法识别,即以O(1)时间复杂度快速识别。
请参考附图3,其是本发明实施例的持久性内存空间分配器的示意图。日志结构式持久性内存空间分配器将持久性内存切分为64MB大小粒度的连续内存段,组成段池。持久性内存空间的分配在段中以仅附加(append-only)的方式连续分配。当目前的段剩余空间大小不足以分配空间时,持久性内存空间分配器再向段池申请新的一个段进行分配,不允许跨段分配。后台线程对已经分配的段做垃圾回收,以权重计算的方式在已经分配的段中选择权重最小的段进行扫描,将其中有效的单元拷贝至一个新段并将已分配的段归还至段池,以做垃圾回收。每个段在分配变长键值对时,每个分配的单元主要包含墓碑、键长度、值长度、键和值五个字段,其中,墓碑、键长度和值长度为定长字段,键和值为变长字段,通过键长度和值长度为偏移进行访问。墓碑标记标识了分配的单元是否为垃圾,存在于持久性内存上,但在设置墓碑标记的墓碑字段时,不必刻意持久化该字段,因为在系统奔溃重启后墓碑字段可以通过查询元数据索引恢复,由于二级索引结构的一致性,所有有效的键值对必然仍然存在于二级索引结构中。
在修改键值对或删除键值对等操作需要释放内存单元时,持久性内存键值存储系统会根据二级索引结构,首先找到原分配单元的地址,并设置其墓碑标记以标识垃圾。这样,在后台线程对已分配的可回收段进行垃圾回收的扫描时,可以通过墓碑标记以O(1)时间复杂度快速识别内存单元是否有效,而无需再查找二级索引结构。对其中有效的内存单元做回收时,需要修改二级索引结构中的指针信息,使其指向经过拷贝后在新段中的地址。
在本发明的一个实施例中,所述访问热度的统计结果包括时间戳和热度值;所述键值对每次被访问时,相应的所述键值对的热度值增加一次;所述键值对被接触时触发衰退例程,在衰退时,如果当前时间值与记录时间戳之差大于或等于预设衰退单元时间,则进行(当前时间值-记录时间戳)/预设衰退单元时间次衰退,并将所述当前时间值记录在时间戳中。
具体地,所述热度统计信息由时间戳和热度值组成。在被访问时,键值对热度值每次自增;在衰退时,如果当前的时间now与记录的时间戳timestamp之差超过预设的衰退单元时间unit,则进行(now-timestamp)/unit次衰退。只有在键值对被接触时才会触发衰退例程。
时间戳字段中维护了上一次衰退时的时间戳,热度值字段维护了键值对的热度值。上述做法实现了慵懒衰退,即只有在键值对被接触时才会触发衰退例程,避免了定时对所有键值对进行遍历并更新热度信息的全局衰退。具体而言,访问热度的热度统计信息嵌入版本索引链表的结点之中,时间戳字段占32位,热度值占8位。每次衰退时,如果当前热度值大于16时,则热度值减半,否则减一,完成后,将此时的时间戳记录在时间戳中。
在本发明的一个实施例中,所述垃圾回收策略的垃圾回收线程对日志结构内存进行扫描时遍历每一个有效的键值对,若发现其中存在所述访问热度小于或等于预设热度阈值的键值对且当前持久性内存使用率大于或等于预设使用阈值,所述持久性内存键值存储系统触发所述冷热调度功能的冷调度将相应的所述键值对迁移至所述固态硬盘中,并更新所述二级索引结构中的元数据信息。
具体地,在垃圾回收线程对日志结构内存进行扫描时,会遍历其中每一个有效的键值对,若某个元素的热度小于预设热度阈值且当前持久性内存占用率较高,所述持久性内存键值存储系统触发冷调度将这个键值对迁移至固态硬盘中以节省持久性内存的空间,同时更新所述二级索引结构中的元数据信息。请参考附图4,其是本发明实施例的具备冷热调度功能的垃圾回收机制的示意图。持久性内存键值存储系统将冷调度和垃圾回收结合到了一起,为了保证持久性内存键值存储系统的一致性,键值对从持久性内存至固态硬盘的迁移主要经过如下步骤:
后台线程对日志结构内存的已分配段进行扫描,发现某个键值对的热度值较低;持久性内存键值存储系统将其拷贝至持久性内存上的MemTable,更新二级索引结构中对应的位置字段为MemTable中的地址指针;待MemTable到达一定大小变成ImmutableMemTable,刷入磁盘变成SSTable时,后台线程对Immutable MemTable中的每个键值对进行遍历,更新二级索引结构中的位置字段为SSTable名与SSTable中的偏移;待整个SSTable中键值对的元数据信息全部都被修改完成且持久化后,Immutable MemTable的空间才被释放,两者之间的先后顺序是为了保证二级索引结构的一致性,防止在系统崩溃时出现数据丢失;在刷入SSTable或对SSTable进行合并操作时,对其中的每个键值对都需要查一次二级索引结构,如果二级索引结构的位置信息与当前的位置一致,则说明了该键值对有效,需要进行合并,否则说明在此之前键值对被用户删除或更新,不需要进行合并。
在本发明的一个实施例中,所述垃圾回收策略包括选择权重最小的持久性内存段进行回收;其中,所述权重基于所述访问热度与持久性内存有效率计算得出。
具体地,所述垃圾回收选择基于访问热度与持久性内存有效率计算出的权重最小的持久性内存段进行回收。
所述垃圾回收时持久性内存段的权重计算方式如下:
其中,α表示访问热度对权重的影响因子,(1-α)表示持久性内存有效率对权重的影响因子,hot_max为热度值域最大值,hot_avg为内存段中所有有效键值对的热度均值,util为有效键值对占内存段的空间比例。这种权重计算方式结合了访问热度与利用率,权重计算所需的统计信息被维护在DRAM内存中,并可在重启时通过遍历所有段进行恢复。
本发明公开了一种持久性内存键值存储系统的设计,该键值存储系统混合使用持久性内存和固态硬盘存储变长键值对:持久性内存部分存储访问较热的键值对,固态硬盘部分存储访问频率低的键值对数据;通过元数据索引和支持多版本异构存储的版本索引构成的二级索引结构,索引持久性内存和固态硬盘中的键值对;通过主动设置墓碑标记的日志结构式化持久性内存空间分配器管理持久性内存空间;采用具备冷热调度功能的垃圾回收机制,能够基于访问热度与持久性内存使用率动态调整垃圾回收策略;热度统计支持慵懒式热度衰退。该持久性内存键值存储系统混合利用持久性内存低延迟与固态硬盘大容量的特性,能够同时提供性能高效、容量可扩展的键值存储服务。
本领域的普通技术人员可以理解,上述各实施例在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种持久性内存键值存储系统,包括用于存储变长键值对的持久性内存和固态硬盘,其特征在于,所述持久性内存键值存储系统根据二级索引结构索引所述持久性内存和所述固态硬盘中的键值对;所述持久性内存键值存储系统通过主动设置墓碑标记的日志结构式持久性内存空间分配器管理所述持久性内存的存储空间;所述持久性内存键值存储系统采用具备冷热调度功能的垃圾回收机制,并基于访问热度与持久性内存使用率调整垃圾回收策略;其中,所述二级索引结构基于元数据索引和支持多版本异构存储的版本索引构成;所述访问热度基于慵懒式热度衰退的热度统计方法统计得出。
2.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述持久性内存键值存储系统中存储的数据包括键值对元数据与键值数据;其中,所述键值对元数据存储在所述持久性内存中,所述键值数据存储在所述持久性内存中或所述固态硬盘中。
3.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述元数据索引为无锁B+树数据结构,所述元数据索引维护所有键值对象的元数据信息,所述键值对象存储在所述持久性内存中或所述固态硬盘中。
4.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述版本索引以持久性链表的方式管理同一键对应的若干个版本的元数据信息,所述持久性链表的每个节点记录着键值数据在所述持久性内存的地址或键值数据在所述固态硬盘中的文件名以及偏移信息。
5.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述持久性内存键值存储系统执行读取键值对的操作,包括:
查询所述二级索引结构获得对应版本键值对的元数据信息,并更新所述元数据信息的访问热度;
根据所述版本索引的信息无锁化读取所述持久性内存或所述固态硬盘;其中,所述读取的过程通过Epoch机制进行保护。
6.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述持久性内存键值存储系统执行写入键值对的操作,包括:
将所述键值对写入所述持久性内存;其中,所述写入的过程包括空间分配阶段、数据写入持久化阶段、版本索引更新阶段和元数据索引更新阶段;
当写入的所述键值对的热度值小于或等于预设迁移阈值时,所述键值对被后台线程扫描并迁移至所述固态硬盘。
7.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述日志结构式持久性内存空间分配器分配所述变长键值对的数据的存储空间;所述持久性内存键值存储系统执行修改键值对操作或删除键值对操作产生持久性内存垃圾时,所述持久性内存键值存储系统根据所述二级索引结构的元数据信息,主动在日志结构内存对应地址设置用于标识垃圾的所述墓碑标记,以供垃圾回收线程根据常数时间复杂度算法识别出所述垃圾。
8.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述访问热度的统计结果包括时间戳和热度值;所述键值对每次被访问时,相应的所述键值对的热度值增加一次;所述键值对被接触时触发衰退例程,在衰退时,如果当前时间值与记录时间戳之差大于或等于预设衰退单元时间,则进行(当前时间值-记录时间戳)/预设衰退单元时间次衰退,并将所述当前时间值记录在时间戳中。
9.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述垃圾回收策略的垃圾回收线程对日志结构内存进行扫描时遍历每一个有效的键值对,若发现其中存在所述访问热度小于或等于预设热度阈值的键值对且当前持久性内存使用率大于或等于预设使用阈值,所述持久性内存键值存储系统触发所述冷热调度功能的冷调度将相应的所述键值对迁移至所述固态硬盘中,并更新所述二级索引结构中的元数据信息。
10.根据权利要求1所述的一种持久性内存键值存储系统,其特征在于,所述垃圾回收策略包括选择权重最小的持久性内存段进行回收;其中,所述权重基于所述访问热度与持久性内存有效率计算得出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176536.4A CN111309270B (zh) | 2020-03-13 | 2020-03-13 | 一种持久性内存键值存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176536.4A CN111309270B (zh) | 2020-03-13 | 2020-03-13 | 一种持久性内存键值存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309270A true CN111309270A (zh) | 2020-06-19 |
CN111309270B CN111309270B (zh) | 2021-04-27 |
Family
ID=71149750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010176536.4A Active CN111309270B (zh) | 2020-03-13 | 2020-03-13 | 一种持久性内存键值存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309270B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857582A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种键值存储系统 |
CN112395212A (zh) * | 2020-11-05 | 2021-02-23 | 华中科技大学 | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 |
CN112416940A (zh) * | 2020-11-27 | 2021-02-26 | 深信服科技股份有限公司 | 键值对存储方法、装置、终端设备以及存储介质 |
CN112527804A (zh) * | 2021-01-27 | 2021-03-19 | 中智关爱通(南京)信息科技有限公司 | 文件存储方法、文件读取方法和数据存储系统 |
CN112540838A (zh) * | 2020-12-18 | 2021-03-23 | 南京中兴力维软件有限公司 | 系统资源调度方法及装置、计算机存储介质 |
CN112667644A (zh) * | 2021-01-20 | 2021-04-16 | 浪潮云信息技术股份公司 | 一种混合索引内存数据库存储引擎管理方法 |
CN112699092A (zh) * | 2021-01-13 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种RocksDB存储大值数据的方法 |
CN113051221A (zh) * | 2021-03-31 | 2021-06-29 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
CN113220693A (zh) * | 2021-06-02 | 2021-08-06 | 北京字节跳动网络技术有限公司 | 计算存储分离系统及其数据访问方法、介质和电子设备 |
CN113608804A (zh) * | 2021-10-11 | 2021-11-05 | 北京华品博睿网络技术有限公司 | 一种可持久化的Java堆外缓存系统及方法 |
CN113626431A (zh) * | 2021-07-28 | 2021-11-09 | 浪潮云信息技术股份公司 | 一种基于lsm树的延迟垃圾回收的键值分离存储方法及系统 |
CN114372064A (zh) * | 2022-03-22 | 2022-04-19 | 飞狐信息技术(天津)有限公司 | 数据处理装置、方法、计算机可读介质及处理器 |
CN114415966A (zh) * | 2022-01-25 | 2022-04-29 | 武汉麓谷科技有限公司 | 一种kv ssd存储引擎的构建方法 |
KR20220074685A (ko) * | 2020-11-27 | 2022-06-03 | 한양대학교 에리카산학협력단 | 데이터 저장 처리 장치 및 방법 |
WO2022267508A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 元数据压缩方法及装置 |
CN117312267A (zh) * | 2023-07-11 | 2023-12-29 | 华东师范大学 | 一种基于Peleton数据库的行级垃圾回收机制 |
WO2024012349A1 (zh) * | 2022-07-15 | 2024-01-18 | 中兴通讯股份有限公司 | 数据处理方法、ssd控制器、电子设备及可读存储介质 |
CN112416940B (zh) * | 2020-11-27 | 2024-05-28 | 深信服科技股份有限公司 | 键值对存储方法、装置、终端设备以及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN105094700A (zh) * | 2015-07-15 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 云存储系统中分层存储的数据热度计算方法和装置 |
CN105373347A (zh) * | 2015-10-23 | 2016-03-02 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的热点数据识别和调度方法及系统 |
US20160366226A1 (en) * | 2015-06-11 | 2016-12-15 | E8 Storage Systems Ltd. | Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect |
CN107943867A (zh) * | 2017-11-10 | 2018-04-20 | 中国电子科技集团公司第三十二研究所 | 支持异构存储的高性能层次化存储系统 |
CN108572796A (zh) * | 2017-03-07 | 2018-09-25 | 三星电子株式会社 | 具有异构nvm类型的ssd |
CN108829344A (zh) * | 2018-05-24 | 2018-11-16 | 北京百度网讯科技有限公司 | 数据存储方法、装置及存储介质 |
CN109325132A (zh) * | 2018-12-11 | 2019-02-12 | 平安科技(深圳)有限公司 | 专家知识推荐方法、装置、计算机设备及存储介质 |
CN110134514A (zh) * | 2019-04-18 | 2019-08-16 | 华中科技大学 | 基于异构内存的可扩展内存对象存储系统 |
CN110347336A (zh) * | 2019-06-10 | 2019-10-18 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储系统 |
CN110347852A (zh) * | 2019-06-06 | 2019-10-18 | 华中科技大学 | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 |
-
2020
- 2020-03-13 CN CN202010176536.4A patent/CN111309270B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
US20160366226A1 (en) * | 2015-06-11 | 2016-12-15 | E8 Storage Systems Ltd. | Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect |
CN105094700A (zh) * | 2015-07-15 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 云存储系统中分层存储的数据热度计算方法和装置 |
CN105373347A (zh) * | 2015-10-23 | 2016-03-02 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的热点数据识别和调度方法及系统 |
CN108572796A (zh) * | 2017-03-07 | 2018-09-25 | 三星电子株式会社 | 具有异构nvm类型的ssd |
CN107943867A (zh) * | 2017-11-10 | 2018-04-20 | 中国电子科技集团公司第三十二研究所 | 支持异构存储的高性能层次化存储系统 |
CN108829344A (zh) * | 2018-05-24 | 2018-11-16 | 北京百度网讯科技有限公司 | 数据存储方法、装置及存储介质 |
CN109325132A (zh) * | 2018-12-11 | 2019-02-12 | 平安科技(深圳)有限公司 | 专家知识推荐方法、装置、计算机设备及存储介质 |
CN110134514A (zh) * | 2019-04-18 | 2019-08-16 | 华中科技大学 | 基于异构内存的可扩展内存对象存储系统 |
CN110347852A (zh) * | 2019-06-06 | 2019-10-18 | 华中科技大学 | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 |
CN110347336A (zh) * | 2019-06-10 | 2019-10-18 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储系统 |
Non-Patent Citations (2)
Title |
---|
LANYUE LU, THANUMALAYAN SANKARANARAYANA PILLAI, ANDREA C. ARPACI: "WiscKey: Separating Keys from Values in SSD-conscious Storage", 《THE 14TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES》 * |
陈游旻,朱博弘,韩银俊,屠要峰,舒继武: "一种持久性内存文件系统数据页的混合管理机制", 《计算机研究与发展》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857582B (zh) * | 2020-07-08 | 2024-04-05 | 平凯星辰(北京)科技有限公司 | 一种键值存储系统 |
CN111857582A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种键值存储系统 |
CN112395212A (zh) * | 2020-11-05 | 2021-02-23 | 华中科技大学 | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 |
KR20220074685A (ko) * | 2020-11-27 | 2022-06-03 | 한양대학교 에리카산학협력단 | 데이터 저장 처리 장치 및 방법 |
CN112416940A (zh) * | 2020-11-27 | 2021-02-26 | 深信服科技股份有限公司 | 键值对存储方法、装置、终端设备以及存储介质 |
CN112416940B (zh) * | 2020-11-27 | 2024-05-28 | 深信服科技股份有限公司 | 键值对存储方法、装置、终端设备以及存储介质 |
KR102619300B1 (ko) | 2020-11-27 | 2023-12-29 | 한양대학교 에리카산학협력단 | 데이터 저장 처리 장치 및 방법 |
CN112540838A (zh) * | 2020-12-18 | 2021-03-23 | 南京中兴力维软件有限公司 | 系统资源调度方法及装置、计算机存储介质 |
CN112540838B (zh) * | 2020-12-18 | 2024-04-09 | 南京中兴力维软件有限公司 | 系统资源调度方法及装置、计算机存储介质 |
CN112699092A (zh) * | 2021-01-13 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种RocksDB存储大值数据的方法 |
CN112699092B (zh) * | 2021-01-13 | 2023-02-03 | 浪潮云信息技术股份公司 | 一种RocksDB存储大值数据的方法 |
CN112667644B (zh) * | 2021-01-20 | 2023-02-21 | 浪潮云信息技术股份公司 | 一种混合索引内存数据库存储引擎管理方法 |
CN112667644A (zh) * | 2021-01-20 | 2021-04-16 | 浪潮云信息技术股份公司 | 一种混合索引内存数据库存储引擎管理方法 |
CN112527804A (zh) * | 2021-01-27 | 2021-03-19 | 中智关爱通(南京)信息科技有限公司 | 文件存储方法、文件读取方法和数据存储系统 |
CN113051221A (zh) * | 2021-03-31 | 2021-06-29 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
CN113220693A (zh) * | 2021-06-02 | 2021-08-06 | 北京字节跳动网络技术有限公司 | 计算存储分离系统及其数据访问方法、介质和电子设备 |
WO2022252862A1 (zh) * | 2021-06-02 | 2022-12-08 | 北京字节跳动网络技术有限公司 | 计算存储分离系统及其数据访问方法、介质和电子设备 |
CN113220693B (zh) * | 2021-06-02 | 2023-10-20 | 北京火山引擎科技有限公司 | 计算存储分离系统及其数据访问方法、介质和电子设备 |
WO2022267508A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 元数据压缩方法及装置 |
CN113626431A (zh) * | 2021-07-28 | 2021-11-09 | 浪潮云信息技术股份公司 | 一种基于lsm树的延迟垃圾回收的键值分离存储方法及系统 |
CN113608804A (zh) * | 2021-10-11 | 2021-11-05 | 北京华品博睿网络技术有限公司 | 一种可持久化的Java堆外缓存系统及方法 |
CN114415966A (zh) * | 2022-01-25 | 2022-04-29 | 武汉麓谷科技有限公司 | 一种kv ssd存储引擎的构建方法 |
CN114415966B (zh) * | 2022-01-25 | 2022-08-12 | 武汉麓谷科技有限公司 | 一种kv ssd存储引擎的构建方法 |
CN114372064A (zh) * | 2022-03-22 | 2022-04-19 | 飞狐信息技术(天津)有限公司 | 数据处理装置、方法、计算机可读介质及处理器 |
WO2024012349A1 (zh) * | 2022-07-15 | 2024-01-18 | 中兴通讯股份有限公司 | 数据处理方法、ssd控制器、电子设备及可读存储介质 |
CN117312267A (zh) * | 2023-07-11 | 2023-12-29 | 华东师范大学 | 一种基于Peleton数据库的行级垃圾回收机制 |
CN117312267B (zh) * | 2023-07-11 | 2024-03-22 | 华东师范大学 | 一种基于peloton数据库的行级垃圾回收机制 |
Also Published As
Publication number | Publication date |
---|---|
CN111309270B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309270B (zh) | 一种持久性内存键值存储系统 | |
US10649910B2 (en) | Persistent memory for key-value storage | |
US10496283B2 (en) | Adaptive prefix tree based order partitioned data storage system | |
US9959279B2 (en) | Multi-tier caching | |
US6636879B1 (en) | Space allocation in a write anywhere file system | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US7035881B2 (en) | Organization of read-write snapshot copies in a data storage system | |
US9715519B2 (en) | Managing updates to multiple sets of metadata pertaining to a memory | |
EP2735978B1 (en) | Storage system and management method used for metadata of cluster file system | |
CN109407978B (zh) | 高并发索引b+链表数据结构的设计与实现方法 | |
US8880784B2 (en) | Random write optimization techniques for flash disks | |
CN111240588B (zh) | 一种持久性内存对象存储系统 | |
KR20120090965A (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
CN106844584B (zh) | 元数据结构和基于其的操作方法、定位方法、切分方法 | |
CN112597254B (zh) | 面向混合dram-nvm主存的联机事务型数据库系统 | |
CN115427941A (zh) | 数据管理系统和控制的方法 | |
CN116894041B (zh) | 数据存储方法、装置、计算机设备及介质 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
CN116226232A (zh) | 面向分布式数据库的持久内存数据存储方法及系统 | |
CN113656396A (zh) | 非统一内存访问架构下的持久性内存索引构建方法 | |
US11747998B1 (en) | Indexing technique for large scale distributed key-value systems | |
US20240086362A1 (en) | Key-value store and file system | |
CN116048408A (zh) | 一种基于持久性内存的跳表结构及其访问方法 | |
CN115329141A (zh) | 一种面向持久内存的数据管理方法及持久内存控制器 | |
CN117785027A (zh) | 一种面向zns ssd的减少元数据一致性开销的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Shu Jiwu Inventor after: Lu Youyou Inventor after: Xie Minhui Inventor after: Zhu Bohong Inventor before: Shu Jiwu Inventor before: Lu Youyou Inventor before: Xie Minhui Inventor before: Zhu Bohong |
|
GR01 | Patent grant | ||
GR01 | Patent grant |