CN111475508A - 一种优化叶子节点合并操作的高效索引方法 - Google Patents

一种优化叶子节点合并操作的高效索引方法 Download PDF

Info

Publication number
CN111475508A
CN111475508A CN202010244529.3A CN202010244529A CN111475508A CN 111475508 A CN111475508 A CN 111475508A CN 202010244529 A CN202010244529 A CN 202010244529A CN 111475508 A CN111475508 A CN 111475508A
Authority
CN
China
Prior art keywords
tree
leaf node
key
buffer
nvm
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
Application number
CN202010244529.3A
Other languages
English (en)
Other versions
CN111475508B (zh
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202010244529.3A priority Critical patent/CN111475508B/zh
Publication of CN111475508A publication Critical patent/CN111475508A/zh
Application granted granted Critical
Publication of CN111475508B publication Critical patent/CN111475508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/2246Trees, e.g. B+trees
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

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

Abstract

本发明公开了一种优化叶子节点合并操作的高效索引方法。该方法的特点是引入了新的一种适合NVM的叶子节点结构设计和高效原地合并操作。该方法首先将索引分成存储在DRAM中的缓冲B树和存储在NVM中的基础B树。在索引执行写操作的过程中,首先写入缓冲B树的日志文件里,再修改缓冲B树;当所述缓冲B树的容量超过阈值,借助基础B树叶子节点结构设计,将缓冲B树通过原地合并操作合入NVM上的基础B树,并通过WBINVD指令高效地将脏数据持久化到NVM。当原地合并操作完成后,清空缓存B树以及NVM上的日志文件,完成对所述写操作的索引过程。该索引方法能够有效地降低对于NVM的写入次数,降低NVM的损耗,提升写入性能。

Description

一种优化叶子节点合并操作的高效索引方法
技术领域
本发明属数据库系统技术领域,具体地涉及一种优化叶子节点合并操作的高效索引方法。
背景技术
非易失内存(Non-Volatile Memory,NVM)的普及,激发了一系列新的应用,其中具有代表性的是非易失内存上的数据结构。这种数据结构,由于存储在NVM上,当发生宕机重启时,可以以极快的速度恢复出来。但是,由于硬件介质的特性,非易失内存的写操作具有比较大的代价。首先,NVM写操作的写延迟要远高于读延迟,因此写的越多,性能越差。其次,NVM的耐久性相比于DRAM差了好几个数量级,因此写的越多,将越快造成设备损坏。更糟糕的是,为了使非易失索引数据结构能正确地从崩溃中恢复出来,索引更新操作往往需要引入许多额外的NVM写来保证数据结构的更新是原子的。
为了解决这个问题,研究者提出了一些新的非易失索引结构。例如B树类的工作有FPTree 和FASTFAIR,FPTree提出将B树的内部结点存储在DRAM中,并把叶子节点存储在NVM上,以此来减少B树分裂/合并时需要的NVM写;FASTFAIR则利用了现代CPU对指令流施加一定执行顺序的特性,做到了更新操作能够维持叶子节点的键值数据有序。但是FPTree 和FASTFAIR还是需要比较多的NVM写入次数,主要来自于每次索引更新操作都需要维护许多元数据。同时这类数据结构往往需要牺牲读操作的性能。比如FPTree,它虽然降低了 NVM写入次数,但是其范围查询每次需要执行排序,因此性能劣于内存B树索引。
发明内容
针对现有技术的不足,本发明提供了一种优化叶子节点合并操作的高效索引方法,该方法能有效降低索引的NVM写入次数,降低索引写操作延迟,同时索引读操作保持低延迟。
本发明的目的是通过以下技术方案实现的:一种优化叶子节点合并操作的高效索引方法,具体包括以下步骤:
(1)首先将索引分成缓冲B树和基础B树两个结构,所述基础B树存储在NVM上,所述缓冲B树存储在DRAM中,缓冲B树上设有一个存储在NVM上的日志文件,所述基础B树容量与缓冲B树容量的比值为R,且R>1。
(2)对于写操作,首先写入缓冲B树的日志文件里,再修改缓冲B树;当所述缓冲B树的容量超过阈值,则将缓冲B树通过原地合并操作合入NVM上的基础B树。所述原地合并操作依次执行下述操作:(2.1)Upsertion合并:处理插入或者更新操作的应用;(2.2)Deletion合并:处理删除操作的应用;(2.3)Consolidation:处理基础B树叶子节点的之间的合并;(2.4)Flush:采用WBINVD指令将基础B树叶子节点的修改刷入到NVM设备上; (2.5)Rebuild Internal Nodes:重建基础B树的叶子节点;(2.6)Flip Global Version:执行基础B树的版本转换;(2.7)Garbage Collection:释放步骤(2.1)-(2.6)过程中产生的无效叶子节点。
(3)原地合并操作完成后,清空缓存B树结构以及NVM上的日志文件,完成对所述写操作的索引过程。
所述步骤(2.1)Upsertion合并的具体操作过程为:从全局版本号布尔变量gv获得当前值,记为cv,对cv取反得到nv,然后按顺序遍历所述基础B树的叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,将curLeaf的cv版本的元数据赋值给nv版本的元数据。从缓冲B树中提取upsert操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后检查当前叶子节点curLeaf是否有足够的空间容纳EcurLeaf的键值数据,即确保 |EcurLeaf|的值小于等于键值数据数组N减去叶子节点的last_pos的值。如空间足够,将EcurLeaf的键值数据写入到当前叶子节点的last_pos位置,并更新curLeaf的nv版本对应的元数据的信息,修改其bitmap、order、cnt、fingerprints、last_pos等信息,实现原地更新叶子节点;若没有空间,创建多个叶子节点NewLeaves容纳EcurLeaf的数据,然后依次将前驱叶子节点 prevLeaf的nv版本元数据中的next指针指向NewLeaves的第一个叶子节点。
进一步地,所述写操作包括:upsert操作和delete操作,所述upsert操作为插入或更新操作。
进一步地,所述基础B树叶子节点包括两组元数据以及一个大小为N的键值数据数组;每组元数据包括:位图(bitmap)、next指针、max_key、cnt、order、fingerprints和last_pos;每个叶子节点中的有效元数据采用全局版本号布尔变量gv表示;所述fingerprints采用哈希表的形式来组织数据,并采用线性探测来处理哈希冲突。
进一步地,步骤(2.2)Deletion合并的具体操作过程为:再次按顺序遍历所述基础B树叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,从缓冲B树中提取出delete操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后删除curLeaf中提取出EcurLeaf的含有键,同时修改nv版本的元数据信息,包括bitmap、order、fingerprint、cnt、last_pos等。
进一步地,步骤(2.3)Consolidation的具体操作过程为:首先找出含有的键值数据数量小于N/3的叶子节点,将其键值数据分散到相邻叶子节点中。
进一步地,步骤(2.5)Rebuild Internal的具体操作过程为:通过nv版本的元数据遍历所有叶子节点,然后在所述遍历得到的叶子节点之上建立基础B树的内部节点。建立完毕后,执行clflush指令将基础B树的内部节点的信息刷入NVM。
进一步地,步骤(2.6)Flip Global Version的具体操作过程为:将局部变量nv赋值给全局变量gv,然后对gv执行clflush指令,完成合并操作。
进一步地,步骤(2.7)Garbage Collection的具体操作过程为:记Lcv为通过cv版本的元数据遍历得到的叶子节点集合,记Lnv为通过nv版本的元数据遍历得到的叶子节点集合,则 Lnv-Lcv,就为无效的节点,将无效的节点进行释放。
与现有技术相比,本发明具有的有益效果是:本发明提出了的索引方法,利用原地批量处理与合并技术以及NVM优异的随机读写能力,使得本发明具有以下优点:
1)本发明提出的索引方法相比于现有NVM索引方法具有更低的NVM写次数,因此降低了索引写操作的延迟同时提升了NVM设备的寿命。
2)本发明提出的索引方法有着优异的点读性能,同时范围读操作相比于FPTree也很高效。且大量实验证明本发明提出的索引方法能够有效降低NVM写次数并且提供高效读能力,是一种实际通用的NVM索引方法。
附图说明
图1是本发明提出的索引方法流程图;
图2是本发明中BaseTree的叶子节点存储格式图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1为本发明在优化叶子节点合并操作的高效索引方法的流程图,该方法具体包括以下步骤:
(1)首先将索引分成缓冲B树和基础B树两个结构,所述缓冲B树和基础B树均属于有序索引数据结构,所述基础B树存储在NVM上,所述缓冲B树存储在DRAM中,缓冲B 树上设有一个存储在NVM上的日志文件,用于保证缓冲B树的持久性。所述基础B树容量与缓冲B树容量的比值为R,且R>1。若R≤1,索引恢复速度较慢。
(2)对于写操作,首先写入缓冲B树的日志文件里,再修改缓冲B树;所述写操作包括:upsert操作和delete操作,所述upsert操作为插入或更新操作。在所有对索引的写入操作,首先通过Upsert(K,V)操作实现:对于插入操作,Upsert(K,V)将键值数据对<K,V>插入到缓冲B树中,这些插入的键值数据对将在合并时被批量插入到基础B树中;对于更新操作,Upsert(K,V)表示将已存在的键K的值改成V,类似的,这些更新操作是在合并的时候才对基础B树中已有的键的值进行修改;对于删除操作,同样由Upsert(K,V)实现,不同的是,这里V是一个特殊值,缓冲B树被合并入基础B树时,就可以发现这种特殊值,并在基础B树中进行真正的删除。由于缓冲B树存储在DRAM中,断电会造成数据丢失,因此加入了 WriteAhead日志机制。对缓冲B树执行Upsert(K,V)操作时,我们首先在日志文件中写入 <K,V,OP>三元组,其中OP表示这次修改操作的类型,包括Insert/Update/Delete操作类型。当出现故障恢复时,缓冲B树就可以通过回放这个日志文件重新构建出来,保证了持久性。
当所述缓冲B树的容量超过阈值,则将缓冲B树通过原地合并操作合入NVM上的基础 B树。这里记缓冲B树的当前容量为DBuf,并且记基础B树的当前容量为DBase。当
Figure BDA0002433642270000041
时,则认为缓冲B树的容量已经达到上限,需要将缓冲B树的数据合入到基础B树中,这里涉及到基础B树叶子节点,如图2,所述基础B树叶子节点包括两组元数据(Meta0和Meta1) 以及一个大小为N的键值数据数组(KV1,KV2,…,KVN);每个叶子节点中的有效元数据采用全局版本号布尔变量gv表示;所述键值数据数组采用哈希表的形式来组织数据,并采用线性探测来处理哈希冲突。每组元数据包括:
位图(bitmap):记录了键值数据数组的槽位分配情况;
next指针:指向下一个叶子节点指针;
max_key:当前叶子节点的最大键;
cnt:当前叶子节点键值数据数量;
order:一个数组,其中order[0]存放了键值数据数组中第1小的键所在的位置,其中order[1] 存放了键值数据数组中第2小的键所在的位置,以此类推。因此使用该数组可以快速按顺序遍历整个叶子节点的键值数据顺序;
fingerprints:一个线性探测哈希表结构,含有N个元素,每个元素存储 <key_one_byte_hash,key_pos>值数据数组一一对应。其中key_one_byte_hash表示键的一字节哈希值,用于减少无效的键比较,降低对NVM的读;key_pos则表示该键在键值数组中的位置。注意到fingerprints结构中可能有多个元素的key_one_byte_hash会相同,这种情况下,通过key_pos定位到键值数组中真实的键来区分。
last_pos:当前键值数组未被使用的第一个键值数据位置,即合并的时候从这个位置开始写入键值数据。
本发明利用了NVM的高效随机读写的能力,提出了一个原地(in-place)合并操作方法。在合并过程中,重用现有基础B树的大部分数据,由于合并是批量的,一次合并能把多次索引写操作需要元数据的修改均摊下来,因此大大降低了写放大。所述原地合并操作依次执行下述操作:
(2.1)Upsertion合并--处理插入或者更新操作的应用:从全局版本号布尔变量gv获得当前值,记为cv,对cv取反得到nv,然后按顺序遍历所述基础B树的叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,将curLeaf的cv版本的元数据赋值给nv 版本的元数据。从缓冲B树中提取upsert操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后检查当前叶子节点curLeaf是否有足够的空间容纳EcurLeaf的键值数据,即确保 |EcurLeaf|的值小于等于键值数据数组N减去叶子节点的last_pos的值。如空间足够,将 EcurLeaf的键值数据写入到当前叶子节点的last_pos位置,并更新curLeaf的nv版本对应的元数据的信息,修改其bitmap、order、cnt、fingerprints、last_pos等信息,实现原地更新叶子节点;若没有空间,创建多个叶子节点NewLeaves容纳EcurLeaf的数据,然后依次将前驱叶子节点prevLeaf的nv版本元数据中的next指针指向NewLeaves的第一个叶子节点。这里对叶子节点键值数据的更新大部分情况下都是原地的,减少了创建新叶子节点所带来的NVM写操作,因此降低了对NVM的写次数。
(2.2)Deletion合并--处理删除操作的应用:再次按顺序遍历所述基础B树叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,从缓冲B树中提取出delete 操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后删除curLeaf中提取出EcurLeaf的含有键,同时修改 nv版本的元数据信息,包括bitmap、order、fingerprints、cnt、last_pos等。这里对叶子节点键值数据的删除是原地的,不需要创建新的叶子节点,进而降低了对NVM的写次数。
(2.3)Consolidation--处理基础B树叶子节点的之间的合并:首先找出含有的键值数据数量小于N/3的叶子节点,这些叶子节点含有过多的空闲键值数据槽位,浪费空间,将这些叶子节点的键值数据分散到相邻叶子节点中。
(2.4)Flush--采用WBINVD指令将基础B树叶子节点的修改刷入到NVM设备上:由于对基础B树的修改是批量的,将会有很多的缓冲行是脏的,需要被刷入到NVM上。这里直接执行一条WBINVD来完成,该指令一次性将CPU缓存数据全部写入到NVM上,这样就可以避免逐一寻找需要刷入NVM的缓冲行,降低了CPU的执行的指令数量。
(2.5)Rebuild Internal Nodes--重建基础B树的叶子节点:通过nv版本的元数据遍历所有叶子节点,然后在所述遍历得到的叶子节点之上建立基础B树的内部节点。建立完毕后,执行clflush指令将基础B树的内部节点的信息刷入NVM。基础B树的内部节点建立完毕之后,就能使得后续的读操作顺利进行了。
(2.6)Flip Global Version--执行基础B树的版本转换:将局部变量nv赋值给全局变量 gv,然后对gv执行clflush指令,确保其落盘,完成合并操作。
(2.7)Garbage Collection--释放步骤(2.1)-(2.6)过程中产生的无效叶子节点:记Lcv为通过cv版本的元数据遍历得到的叶子节点集合,记Lnv为通过nv版本的元数据遍历得到的叶子节点集合,则Lnv-Lcv,就为无效的节点,将无效的节点进行释放,重新获得空闲的NVM 空间。
(3)原地合并操作完成后,清空缓冲结构B树以及NVM上的日志文件,完成对所述写操作的索引过程。
将本发明的索引方法用在NVM数据库上,与FPTree和FASTFAIR相比较,本发明的索引方法完成相同的操作所需要NVM写次数最高降低了1倍。
本发明的一个实施例中,还包括了读操作,所述读操作分为点读操作和范围读操作。对于点读操作,首先查询缓冲B树,找到即返回结果,如果没有找到,则查询基础B树。首先从全局版本变量gv中得到当前有效版本cv,再定位到基础B树的一个叶子节点,接着在叶子节点的cv版本的fingerprints结构里执行线性探测的哈希查询,快速找到一系列满足条件的 <key_one_byte_hash,key_pos>的元素,并最后通过key_pos来定位到真正的键值数据,完成点读操作。为了优化点读操作,本发明还在为缓冲B树配备了一个动态布隆过滤器,执行点读之前,先查询该布隆过滤器,判断缓冲B树是否有可能包含查询键,以很低的代价免去了无效的缓冲B树查询。对于范围读操作,同时查询缓冲B树与基础B树,合并结果,即完成范围读操作。

Claims (8)

1.一种优化叶子节点合并操作的高效索引方法,其特征在于,具体包括以下步骤:
(1)首先将索引分成缓冲B树和基础B树两个结构,所述基础B树存储在NVM上,所述缓冲B树存储在DRAM中,缓冲B树上设有一个存储在NVM上的日志文件,所述基础B树容量与缓冲B树容量的比值为R,且R>1。
(2)对于写操作,首先写入缓冲B树的日志文件里,再修改缓冲B树;当所述缓冲B树的容量超过阈值,则将缓冲B树通过原地合并操作合入NVM上的基础B树。所述原地合并操作依次执行下述操作:(2.1)Upsertion合并:处理插入或者更新操作的应用;(2.2)Deletion合并:处理删除操作的应用;(2.3)Consolidation:处理基础B树叶子节点的之间的合并;(2.4)Flush:采用WBINVD指令将基础B树叶子节点的修改刷入到NVM设备上;(2.5)RebuildInternal Nodes:重建基础B树的叶子节点;(2.6)Flip Global Version:执行基础B树的版本转换;(2.7)Garbage Collection:释放步骤(2.1)-(2.6)过程中产生的无效叶子节点。
(3)原地合并操作完成后,清空缓存B树结构以及NVM上的日志文件,完成对所述写操作的索引过程。
所述步骤(2.1)Upsertion合并的具体操作过程为:从全局版本号布尔变量gv获得当前值,记为cv,对cv取反得到nv,然后按顺序遍历所述基础B树的叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,将curLeaf的cv版本的元数据赋值给nv版本的元数据。从缓冲B树中提取upsert操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后检查当前叶子节点curLeaf是否有足够的空间容纳EcurLeaf的键值数据,即确保|EcurLeaf|的值小于等于键值数据数组N减去叶子节点的last_pos的值。如空间足够,将EcurLeaf的键值数据写入到当前叶子节点的last_pos位置,并更新curLeaf的nv版本对应的元数据的信息,修改其bitmap、order、cnt、fingerprints、last_pos等信息,实现原地更新叶子节点;若没有空间,创建多个叶子节点NewLeaves容纳EcurLeaf的数据,然后依次将前驱叶子节点prevLeaf的nv版本元数据中的next指针指向NewLeaves的第一个叶子节点。
2.根据权利要求1所述高效索引方法,其特征在于,所述写操作包括:upsert操作和delete操作,所述upsert操作为插入或更新操作。
3.根据权利要求1所述高效索引方法,其特征在于,所述基础B树叶子节点包括两组元数据以及一个大小为N的键值数据数组;每组元数据包括:位图(bitmap)、next指针、max_key、cnt、order、fingerprints和last_pos;每个叶子节点中的有效元数据采用全局版本号布尔变量gv表示;所述fingerprints采用哈希表的形式来组织数据,并采用线性探测来处理哈希冲突。
4.根据权利要求1所述高效索引方法,其特征在于,步骤(2.2)Deletion合并的具体操作过程为:再次按顺序遍历所述基础B树叶子节点,对于每个叶子节点curLeaf和该叶子节点的前驱节点prevLeaf,从缓冲B树中提取出delete操作的键值数据EcurLeaf,使得EcurLeaf的所有键值数据的键小于等于当前叶子节点的max_key,并且大于上一个叶子节点max_key。然后删除curLeaf中提取出EcurLeaf的含有键,同时修改nv版本的元数据信息,包括bitmap、order、fingerprint、cnt、last_pos等。
5.根据权利要求1所述高效索引方法,其特征在于,步骤(2.3)Consolidation的具体操作过程为:首先找出含有的键值数据数量小于N/3的叶子节点,将其键值数据分散到相邻叶子节点中。
6.根据权利要求1所述高效索引方法,其特征在于,步骤(2.5)Rebuild Internal的具体操作过程为:通过nv版本的元数据遍历所有叶子节点,然后在所述遍历得到的叶子节点之上建立基础B树的内部节点。建立完毕后,执行clflush指令将基础B树的内部节点的信息刷入NVM。
7.根据权利要求1所述高效索引方法,其特征在于,步骤(2.6)Flip Global Version的具体操作过程为:将局部变量nv赋值给全局变量gv,然后对gv执行clflush指令,完成合并操作。
8.根据权利要求1所述高效索引方法,其特征在于,步骤(2.7)Garbage Collection的具体操作过程为:记Lcv为通过cv版本的元数据遍历得到的叶子节点集合,记Lnv为通过nv版本的元数据遍历得到的叶子节点集合,则Lnv-Lcv,就为无效的节点,将无效的节点进行释放。
CN202010244529.3A 2020-03-31 2020-03-31 一种优化叶子节点合并操作的高效索引方法 Active CN111475508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010244529.3A CN111475508B (zh) 2020-03-31 2020-03-31 一种优化叶子节点合并操作的高效索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010244529.3A CN111475508B (zh) 2020-03-31 2020-03-31 一种优化叶子节点合并操作的高效索引方法

Publications (2)

Publication Number Publication Date
CN111475508A true CN111475508A (zh) 2020-07-31
CN111475508B CN111475508B (zh) 2022-05-03

Family

ID=71750233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010244529.3A Active CN111475508B (zh) 2020-03-31 2020-03-31 一种优化叶子节点合并操作的高效索引方法

Country Status (1)

Country Link
CN (1) CN111475508B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367916A (zh) * 2020-03-04 2020-07-03 浙江大华技术股份有限公司 一种数据存储方法及装置
CN112163126A (zh) * 2020-09-15 2021-01-01 北京睿芯高通量科技有限公司 一种将低度数点与核心子图分开处理的图数据处理方法
CN112579602A (zh) * 2020-12-22 2021-03-30 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN113505086A (zh) * 2021-09-10 2021-10-15 苏州浪潮智能科技有限公司 一种存储系统容量统计方法、装置、存储介质及设备
CN114221818A (zh) * 2021-12-21 2022-03-22 深圳铸泰科技有限公司 基于交换树上报五元组的方法、系统、终端及存储介质
CN118503015A (zh) * 2024-07-16 2024-08-16 吉林大学 一种维护异构存储系统数据一致性的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319625A (zh) * 2017-01-17 2018-07-24 广州市动景计算机科技有限公司 文件合并方法和装置
CN109690522A (zh) * 2018-08-27 2019-04-26 袁振南 一种基于b+树索引的数据更新方法、装置及存储装置
CN110597805A (zh) * 2019-07-24 2019-12-20 浙江大学 一种高效的新型内存索引结构处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319625A (zh) * 2017-01-17 2018-07-24 广州市动景计算机科技有限公司 文件合并方法和装置
CN109690522A (zh) * 2018-08-27 2019-04-26 袁振南 一种基于b+树索引的数据更新方法、装置及存储装置
CN110597805A (zh) * 2019-07-24 2019-12-20 浙江大学 一种高效的新型内存索引结构处理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367916A (zh) * 2020-03-04 2020-07-03 浙江大华技术股份有限公司 一种数据存储方法及装置
CN112163126A (zh) * 2020-09-15 2021-01-01 北京睿芯高通量科技有限公司 一种将低度数点与核心子图分开处理的图数据处理方法
CN112163126B (zh) * 2020-09-15 2023-11-17 北京睿芯高通量科技有限公司 一种将低度数点与核心子图分开处理的图数据处理方法
CN112579602A (zh) * 2020-12-22 2021-03-30 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN112579602B (zh) * 2020-12-22 2023-06-09 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN113505086A (zh) * 2021-09-10 2021-10-15 苏州浪潮智能科技有限公司 一种存储系统容量统计方法、装置、存储介质及设备
CN113505086B (zh) * 2021-09-10 2021-12-07 苏州浪潮智能科技有限公司 一种存储系统容量统计方法、装置、存储介质及设备
CN114221818A (zh) * 2021-12-21 2022-03-22 深圳铸泰科技有限公司 基于交换树上报五元组的方法、系统、终端及存储介质
CN118503015A (zh) * 2024-07-16 2024-08-16 吉林大学 一种维护异构存储系统数据一致性的方法

Also Published As

Publication number Publication date
CN111475508B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
CN111475508B (zh) 一种优化叶子节点合并操作的高效索引方法
CN109213772B (zh) 数据存储方法及NVMe存储系统
CN111309270B (zh) 一种持久性内存键值存储系统
EP2735978B1 (en) Storage system and management method used for metadata of cluster file system
US8225029B2 (en) Data storage processing method, data searching method and devices thereof
US9990276B2 (en) Read-write control method for memory, and corresponding memory and server
US8271462B2 (en) Method for creating a index of the data blocks
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
CN111399777A (zh) 一种基于数据值分类的差异化键值数据存储方法
CN108009098B (zh) 具有经压缩的正向映射的存储分层
US20130151756A1 (en) Data de-duplication and solid state memory device
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
WO2013075306A1 (zh) 数据访问方法和装置
CN113590612A (zh) Dram-nvm混合索引结构的构建方法及操作方法
CN111125002B (zh) 一种基于分布式存储的数据备份归档方法和系统
CN116257523A (zh) 一种基于非易失存储器的列式存储索引方法及装置
CN103383666A (zh) 改善缓存预取数据局部性的方法和系统及缓存访问方法
CN114416646A (zh) 一种层级存储系统的数据处理方法及装置
KR20140021793A (ko) 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
JP4825719B2 (ja) 高速ファイル属性検索
CN111444114B (zh) 一种非易失性内存中数据的处理方法、装置及系统
US20110153674A1 (en) Data storage including storing of page identity and logical relationships between pages
CN113253932A (zh) 一种分布式存储系统的读写控制方法和系统
CN110515897B (zh) Lsm存储系统读性能的优化方法及系统
CN116226232A (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
GR01 Patent grant
GR01 Patent grant