CN116186032A - 一种索引存储方法、系统和存储介质 - Google Patents

一种索引存储方法、系统和存储介质 Download PDF

Info

Publication number
CN116186032A
CN116186032A CN202211664452.0A CN202211664452A CN116186032A CN 116186032 A CN116186032 A CN 116186032A CN 202211664452 A CN202211664452 A CN 202211664452A CN 116186032 A CN116186032 A CN 116186032A
Authority
CN
China
Prior art keywords
data
sprt
node
index
key
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.)
Pending
Application number
CN202211664452.0A
Other languages
English (en)
Inventor
陈康
武永卫
姜进磊
马少楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202211664452.0A priority Critical patent/CN116186032A/zh
Publication of CN116186032A publication Critical patent/CN116186032A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种索引存储方法、系统和存储介质。包括:确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。能够优化基数树原本不擅长的范围查询,可以有效的降低树的深度,从而全方面的提升索引操作的性能。还提出了一种运行时恢复的设置,使得SPRT在运行时,只需要持久化数据以及一部分很少被修改的元数据,有效减少了持久化开销。

Description

一种索引存储方法、系统和存储介质
技术领域
本发明涉及存储技术领域,特别涉及一种索引存储方法、系统和存储介质。
背景技术
PM(Persistent Memory)持久化内存和DRAM(Dynamic Random Access Memory)之间最显著的区别是数据的持久化特性。持久化,是指写入PM的数据将被持久化在存储介质中,并且在断电后仍然存在。目前,在存储体系结构中PM位于多级CPU缓存后面,数据可以直接从CPU缓存达到PM中。但是往PM写数据时,数据并不能直接保证已经存在于PM中,有可能还留存在CPU缓存中,因此需要执行缓存行刷写指令或等待缓存行被隐式的刷写。由于PM的持久化特性、字节粒度寻址、纳秒级延迟、介于DRAM和块设备之间的存储容量,它非常适合用来存储一些索引结构,可以极大的提升系统的整体性能,因此它开始被业界的系统所使用。
常用的索引主要包括树形索引和哈希索引。树形索引天然支持范围查询。树形索引中常用的主要包括B+树索引和基数树。目前,在许多工业界系统中,都选择使用B+树作为索引。B+树支持高效的范围查询,因为多个键值对被存储在一个叶子节点中,而叶子节点的扫描不会引起指针跳转。范围查询是关系型数据库和键值存储系统的一个重要特征。与此同时,B+树的叶子节点之间还可以通过指针相连,进一步提升了范围查询的优势。在其他树形结构中,如基数树和二叉搜索树,一个节点只能存储一个键值对,数据可以存储在叶子节点中,也可以存储在非叶子节点中。对这些树的范围查询必须在树的不同层跳转,从而导致大量的指针跳转。由于PM的顺序读取和随机读取之间的性能差距比DRAM更大,更多的随机访问会恶化PM的范围查询性能。
支持变长数据存储的索引可以适用于更广泛的应用,因为业界的绝大部分的数据都是不固定长度的。然而,这种支持是有代价的。现有的许多持久化树形索引都只针对8字节长的键值对进行了深度优化。如果要使这些索引支持变长的键,一个直接的方法是分配额外的数据区域并在索引中存储键的地址。然而,这个修改会产生大量指针跳转的开销。持久化内存索引为了保证崩溃一致性,通常需要大量的持久化指令开销来保证持久化的内容是一致的。
发明内容
发明人发现,在现有的持久化B+树索引FAST&FAIR中,使用了支持变长数据存储的索引方案支持变长数据后,索引的查询/插入/更新/删除/范围查询这五种操作,分别出现了3.9/1.8/2.79/2.15/1.94倍的性能下降。主要的性能降低来自于遍历过程中的指针跳转和字符串比较。同时,为了存储额外的数据区域,插入/更新等操作引入了更多的持久化开销。当同时需要可变大小的键和范围查询时,B+树可能不是持久化内存索引的最佳选择,持久化内存树形索引无法在变长数据访问和范围查询这两项常用需求上同时获得高性能。
为了解决上述问题,发明人做出本发明,通过具体实施方式,提供一种索引存储方法、系统和存储介质。
第一方面,本发明实施例提供一种索引存储方法,包括:
确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。
在一些具体的实施例中,将每棵所述子树的数据分别存储到对应的一页中,包括以下步骤:
将对应子树中的数据对应的元数据,从对应的一个页的头部开始,按照从前往后的顺序存储;将对应子树中的数据,从所述页的尾部开始,按照从后往前的顺序存储。
在一些具体的实施例中,每个所述元数据的存储格式包括SPRT节点类型、SPRT节点深度、SPRT节点版本、SPRT节点前缀、SPRT节点的锁、下一次数据插入的位置、SPRT节点中数据的个数、SPRT节点中每个数据的位置、SPRT节点中每个数据键的长度、SPRT节点中每个数据键的哈希值和SPRT节点中每个数据排序后的位置。
在一些具体的实施例中,每个所述对应子树中的数据的存储格式包括值、键、有效位、键长度和值长度。
在一些具体的实施例中,当使用所述SPRT索引进行查询时,找到对应的SPRT节点后,从SPRT节点头部到所述下一次数据插入的位置,对比SPRT节点中每个数据键的哈希值,确定哈希值匹配的数据键。
在一些具体的实施例中,当使用所述SPRT索引进行查询时,确定哈希值匹配的数据键后,读取所述数据键对应的有效位;根据所述有效位,判断对应数据是否存在;当对应数据存在时,通过所述数据的值长度,找到所述数据的值的位置,读出所述数据的值。
在一些具体的实施例中,当使用所述SPRT索引进行数据插入时,在数据存储到所述下一次数据插入的位置后,更新对应的元数据。
在一些具体的实施例中,当使用所述SPRT索引进行数据更新时,不在原数据位置更新,将更新的数据存储到所述下一次数据插入的位置。
在一些具体的实施例中,仅对所述SPRT节点类型、SPRT节点深度、SPRT节点版本和SPRT节点前缀做持久化处理,且只在创建SPRT节点时被持久化一次。
在一些具体的实施例中,在重启系统后,在运行过程中每访问到一个SPRT节点,通过从后往前扫描键值对,来重建剩余的元数据。
在一些具体的实施例中,每个所述页的大小为4KB,并按256字节对齐。
第二方面,本发明实施例提供一种索引存储系统,包括:
SPRT索引生成模块,用于确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。
基于同一发明构思,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现前述的索引存储方法。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明公开了一种新的基于slot page的基数树(slot page radix tree,SPRT),优化了基数树原本不擅长的范围查询。同时本发明提出的SPRT的结构,可以有效的降低树的深度,从而全方面的提升索引操作(查询/插入/更新/删除)的性能。
本发明除了SPRT的结构之外,在一些具体的实施例中,还提出了一种运行时恢复设置,使得SPRT在运行时,只需要持久化数据以及一部分很少被修改的元数据,而其他所有频繁修改的元数据,都可以在第一次被访问的时候根据数据恢复,这个恢复的开销均摊后是常数,有效减少了持久化开销。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中由原索引生成SPRT索引示意图;
图2为本发明实施例中SPRT索引的页存储示意图;
图3为本发明实施例中SPRT索引的键值对格式示意图;
图4为本发明实施例中SPRT和现有技术中最新的持久化内存B+树以及基数树在索引基本操作上的性能对比图;
图5为本发明实施例中SPRT和现有技术中最新的索引在四种不同的工作负载下的性能对比图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中存在的问题,本发明实施例提供一种索引存储方法、系统和存储介质。
实施例一
本发明实施例一提供一种索引存储方法,其流程如图1所示,包括如下步骤:
确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。如图1所示,将原索引节点D、E、L3、L4和L5封装在SPRT节点SP3中,将原索引节点L2封装在SPRT节点SP2中,将原索引节点C、L0和L1封装在SPRT节点SP1中,得到原索引对应的SPRT索引。
在一些具体的实施例中,将每棵所述子树的数据分别存储到对应的一页中,包括以下步骤:
如图1所示,将对应子树中的数据对应的元数据,从对应的一个页的头部开始,按照从前往后的顺序存储;将对应子树中的数据,从所述页的尾部开始,按照从后往前的顺序存储。
在一些具体的实施例中,如图2所示,每个所述元数据的存储格式包括SPRT节点类型、SPRT节点深度、SPRT节点版本、SPRT节点前缀、SPRT节点的锁、下一次数据插入的位置、SPRT节点中数据的个数、SPRT节点中每个数据的位置、SPRT节点中每个数据键的长度、SPRT节点中每个数据键的哈希值和SPRT节点中每个数据排序后的位置。
在一些具体的实施例中,如图3所示,每个所述对应子树中的数据的存储格式包括值Val、键Key、有效位Valid、键长度KeyLen和值长度ValLen。
在一些具体的实施例中,当使用所述SPRT索引进行查询时,找到对应的SPRT节点后,从SPRT节点头部到所述下一次数据插入的位置,对比SPRT节点中每个数据键的哈希值,确定哈希值匹配的数据键。
在一些具体的实施例中,当使用所述SPRT索引进行查询时,确定哈希值匹配的数据键后,读取所述数据键对应的有效位;根据所述有效位,判断对应数据是否存在;当对应数据存在时,通过所述数据的值长度,找到所述数据的值的位置,读出所述数据的值。
在一些具体的实施例中,当使用所述SPRT索引进行数据插入时,在数据存储到所述下一次数据插入的位置后,更新对应的元数据。
在一些具体的实施例中,当使用所述SPRT索引进行数据更新时,不在原数据位置更新,将更新的数据存储到所述下一次数据插入的位置。
在一些具体的实施例中,仅对所述SPRT节点类型、SPRT节点深度、SPRT节点版本和SPRT节点前缀做持久化处理,且只在创建SPRT节点时被持久化一次。
在一些具体的实施例中,在重启系统后,在运行过程中每访问到一个SPRT节点,通过从后往前扫描键值对,来重建剩余的元数据。上述持久化内存索引的运行时恢复设置,可以有效减少运行时的持久化开销,将为了保证崩溃一致性而引入的持久化开销,均摊为运行过程中节点第一次被访问时恢复元数据的开销,对运行时的写操作有41%的性能提升。
在一些具体的实施例中,每个所述页的大小为4KB,并按256字节对齐。
在一些具体的实施例中,对于索引中的每一棵子树,如果子树中的键值对个数(叶节点数量)小于m(可用户自己设定),那么可以将整棵子树中的数据都存储到一个页中。其中,键值对就是每一个键会对应一个值。这个页有确定的大小,默认设置为4KB(以256字节对齐,有益于持久化内存的存储和访问)。在一个页中,从头部开始会维护一些元数据,而数据会从尾部往前存储。元数据主要包括节点类型(type)、节点深度(depth)、节点版本(generation)、节点前缀(prefix)、节点的锁(lock)、下一次插入的位置(next pos)、节点中数据的个数(count)、节点中每个数据的位置(offset array)、节点中每个数据键的长度(keylen array)、节点中每个数据键的哈希(fingerprint array)、节点中每个数据在排序后的位置(slot array)。对于数据,从页的尾部开始往前存储,格式为值、键、有效位、键长度、值长度五部分。有效位代表这个数据是否被删除,而键值的长度可以帮助算出键值的起始位置。
对于索引的五个基本操作(查询/插入/更新/删除/范围查询),首先都需要在索引的内部节点进行遍历。遍历的方法类似于传统的基数树,并发控制使用的是乐观锁。对于查询,在找到叶子节点后,从0遍历到next pos,比对fingerprint array,当匹配上之后,说明键的哈希相同,键可能相同,然后通过offset array,去找到键值的位置,接下来先读取其中的有效位,判断此数据是否被删除了。如果数据存在,则通过值长度去找到值的位置并读出。对于插入操作,插入到next pos位置后,更新对应的元数据。对于更新操作,类似查询操作,只在最后更新叶子时,使用不同的锁,修改操作不在原地修改,类似插入操作在nextpos位置插入一个新的。这个操作不会导致重复数据,因为更新是从后往前,而查询是从前往后,查询读到了第一个匹配的键值就返回。
上述元数据,只有节点类型、深度、版本、前缀需要持久化,而且只会在创建节点时被持久化一次,此后不会修改。而其他元数据都不需要修改。在重启系统后,在运行过程中每访问到一个节点,通过从后往前扫描键值对,来重建剩余的元数据。
上述实施例中提出的新型的持久化内存基数树索引SPRT的操作方法包括:
S1、数据查询。从索引的根节点开始,往下遍历直到叶子节点,找到对应的数据后返回。具体过程为,(1)在遍历时,到达一个内部节点后,先获取该节点当前的版本号。(2)然后在节点内查询,找到是否有匹配的字符。(3)如果没有找到,说明不存在这个数据,返回空结果,操作结束。(4)如果找到了,检查此时节点的版本号。(5)如果版本号发生改变,说明有并发的写操作修改了此节点,可能会读到不一致的数据,因此放弃当前的操作,回到步骤(1)进行重试。(6)如果版本号没有发生改变,说明读到的结果一致,根据读到的节点指针,去找到下一个节点,直到找到叶子节点。
叶子节点如图2所示,是一个4KB的页。页的头部是元数据,包括节点类型(type)、节点深度(depth)、节点版本(generation)、节点前缀(prefix)、节点的锁(lock)、下一次插入的位置(next pos)、节点中数据的个数(count)、节点中每个数据的位置(offsetarray)、节点中每个数据键的长度(keylen array)、节点中每个数据键的哈希(fingerprint array)、节点中每个数据在排序后的位置(slot array)。
数据查询操作中,到达叶子节点后,(1)首先通过lock获取一个当前的版本号。(2)然后计算当前查询的键的哈希值h。(3)从0到next pos遍历,去查询fingerprint array,如果第i个fingerprint和h相同,说明i位置的键可能等于要查询的键。(4)因此去读取offsetarray中的第i个,获取第i个键值对的位置,(5)从而去读出第i个键值对。然后根据图3中的结构,(6)首先根据有效位valid判断这个键值对是否已经被删除了。如果已经删除,继续去(3)里面往下比较。如果没有删除,那么通过键长度和值长度去找到对应的键和值,(7)然后比较键是否相同,如果不相同,回到(3)继续查找,如果相同,说明已经查找到了数据,直接返回,操作完成。
S2、数据插入。和S1类似,先是遍历索引,直到找到对应的叶子节点。在叶子节点的操作和S1不同,具体步骤为:(1)首先给叶子节点加写锁。(2)然后根据next pos,去offsetarray中找到下一个插入的位置。(3)写入键值对到数据区域。(4)更新元数据(offsetarray,keylen array,fingerprint array,slot array)但不显式持久化。数据更新和删除的操作类似于查询和插入。插入操作等价于写入一个新的数据,而删除操作只需要把数据的有效位从1修改为0。
S3、范围查询。范围查询会提供一个范围[start,end]。(1)首先根据start和end去找到边缘的节点位置。(2)对于范围中间的节点,数据直接全部返回。(3)对于两个边缘节点,通过叶子节点内的slot array,按顺序比较键,找到在范围内的键值,然后返回。
图4测试了本实施例和现有技术中最新的持久化内存树形索引P-ART、Fast&Fair的基本操作性能对比,图中Mops是性能单位,表示每秒百万次运算。可以发现,SPRT在五项操作(查询Lookup、插入Insert、更新Update、删除Remove、范围查询Scan)全面超过当前的P-ART、Fast&Fair存储系统,其中范围查询性能超过B+树,表明了本发明提出的结构的有效性。
图5展示了本实施例和P-ART、Fast&Fair在四种不同的工作负载下的性能测试,发现SPRT在不同工作负载下的扩展性都非常好,远高于当前的P-ART、Fast&Fair系统。其中,图5中的(a)坐标系展示了50%的查询和50%的插入时各存储方式的性能,图5的(b)坐标系展示了95%的查询和5%的插入时各存储方式的性能,图5的(c)坐标系展示了只读取时各存储方式的性能,图5的(d)坐标系展示了只插入时各存储方式的性能。
上述实施例中,相比之前的持久化内存基数树,在单点查询方面可以提高20.3%,在范围查询方面可以提高65%。
本实施例的上述方法中,本发明公开了一种新的基于slot page的基数树SPRT,优化了基数树原本不擅长的范围查询,同时可以有效的降低树的深度,从而全方面的提升索引操作(查询/插入/更新/删除)的性能。
本发明除了SPRT的结构之外,在一些具体的实施例中,还提出了一种运行时恢复设置,使得SPRT在运行时,只需要持久化数据以及一部分很少被修改的元数据,而其他所有频繁修改的元数据,都可以在第一次被访问的时候根据数据恢复,这个恢复的开销均摊后是常数,有效减少了持久化开销。
本领域技术人员能够对上述顺序进行变换而并不离开本公开的保护范围。
实施例二
本发明实施例二提供一种索引存储系统,包括:
SPRT索引生成模块,用于确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。
上述系统中,优化了基数树原本不擅长的范围查询,同时可以有效的降低树的深度,从而全方面的提升索引操作(查询/插入/更新/删除)的性能。
关于上述实施例中的索引存储系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现前述的索引存储方法。
凡在本发明的原则范围内做的任何修改、补充和等同替换等,均应仍归属于本发明的专利涵盖范围内。

Claims (13)

1.一种索引存储方法,其特征在于,包括以下步骤:
确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。
2.如权利要求1所述的方法,其特征在于,所述将每棵所述子树的数据分别存储到对应的一页中,包括以下步骤:
将对应子树中的数据对应的元数据,从对应的一个页的头部开始,按照从前往后的顺序存储;
将对应子树中的数据,从所述页的尾部开始,按照从后往前的顺序存储。
3.如权利要求2所述的方法,其特征在于,每个所述元数据的存储格式包括SPRT节点类型、SPRT节点深度、SPRT节点版本、SPRT节点前缀、SPRT节点的锁、下一次数据插入的位置、SPRT节点中数据的个数、SPRT节点中每个数据的位置、SPRT节点中每个数据键的长度、SPRT节点中每个数据键的哈希值和SPRT节点中每个数据排序后的位置。
4.如权利要求2所述的方法,其特征在于,每个所述对应子树中的数据的存储格式包括值、键、有效位、键长度和值长度。
5.如权利要求3所述的方法,其特征在于,当使用所述SPRT索引进行查询时,找到对应的SPRT节点后,从SPRT节点头部到所述下一次数据插入的位置,对比SPRT节点中每个数据键的哈希值,确定哈希值匹配的数据键。
6.如权利要求4所述的方法,其特征在于,当使用所述SPRT索引进行查询时,确定哈希值匹配的数据键后,读取所述数据键对应的有效位;根据所述有效位,判断对应数据是否存在;当对应数据存在时,通过所述数据的值长度,找到所述数据的值的位置,读出所述数据的值。
7.如权利要求3所述的方法,其特征在于,当使用所述SPRT索引进行数据插入时,在数据存储到所述下一次数据插入的位置后,更新对应的元数据。
8.如权利要求3所述的方法,其特征在于,当使用所述SPRT索引进行数据更新时,不在原数据位置更新,将更新的数据存储到所述下一次数据插入的位置。
9.如权利要求3所述的方法,其特征在于,仅对所述SPRT节点类型、SPRT节点深度、SPRT节点版本和SPRT节点前缀做持久化处理,且只在创建SPRT节点时被持久化一次。
10.如权利要求2所述的方法,其特征在于,在重启系统后,在运行过程中每访问到一个SPRT节点,通过从后往前扫描键值对,来重建剩余的元数据。
11.如权利要求1至10任一所述的方法,其特征在于,每个所述页的大小为4KB,并按256字节对齐。
12.一种索引存储系统,其特征在于,包括:
SPRT索引生成模块,用于确定原索引中键值对数量小于设定数量的子树,将每棵所述子树的数据分别存储到对应的一页中,得到对应的SPRT索引。
13.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现权利要求1-11任一所述的索引存储方法。
CN202211664452.0A 2022-12-23 2022-12-23 一种索引存储方法、系统和存储介质 Pending CN116186032A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211664452.0A CN116186032A (zh) 2022-12-23 2022-12-23 一种索引存储方法、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211664452.0A CN116186032A (zh) 2022-12-23 2022-12-23 一种索引存储方法、系统和存储介质

Publications (1)

Publication Number Publication Date
CN116186032A true CN116186032A (zh) 2023-05-30

Family

ID=86449911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211664452.0A Pending CN116186032A (zh) 2022-12-23 2022-12-23 一种索引存储方法、系统和存储介质

Country Status (1)

Country Link
CN (1) CN116186032A (zh)

Similar Documents

Publication Publication Date Title
Lee et al. {WORT}: Write optimal radix tree for persistent memory storage systems
US6865577B1 (en) Method and system for efficiently retrieving information from a database
US10282122B2 (en) Methods and systems of a memory controller for hierarchical immutable content-addressable memory processor
US4611272A (en) Key-accessed file organization
US5479656A (en) Method and system for maximizing data files stored in a random access memory of a computer file system and optimization therefor
US8868926B2 (en) Cryptographic hash database
JP4267046B2 (ja) データベース
CN112000846B (zh) 基于gpu分组lsm树索引的方法
CN111832065A (zh) 使用电路实现的软件和用于密钥-值存储的方法
US11449430B2 (en) Key-value store architecture for key-value devices
KR100443320B1 (ko) 메모리 저장 장치를 관리하기 위한 시스템 및 방법과, 컴퓨터 판독가능한 기록 매체
CN111400306A (zh) 基于rdma与非易失性内存的基数树访问系统
KR20230026946A (ko) 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법
KR102321346B1 (ko) 대용량 ssd 장치를 위한 데이터 저널링 방법
CN116186032A (zh) 一种索引存储方法、系统和存储介质
Liu et al. Pea hash: a performant extendible adaptive hashing index
CN115203211A (zh) 一种唯一哈希序号生成方法和系统
KR20240011738A (ko) 트리 기반 데이터 구조
US20200272424A1 (en) Methods and apparatuses for cacheline conscious extendible hashing
Li et al. Reh: redesigning extendible hashing for commercial non-volatile memory
EP0117906B1 (en) Key-accessed file organization
Hu et al. RWORT: A Read and Write Optimized Radix Tree for Persistent Memory
Zhang Towards Space-Efficient High-Performance In-Memory Search Structures
Wang et al. When Tree Meets Hash: Reducing Random Reads for Index Structures on Persistent Memories
CN116301636B (zh) 一种管理数据结构的方法以及基于哈希算法的硬件加速器

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