CN111475508A - 一种优化叶子节点合并操作的高效索引方法 - Google Patents
一种优化叶子节点合并操作的高效索引方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database 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。当时,则认为缓冲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,就为无效的节点,将无效的节点进行释放。
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)
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)
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 | 浙江大学 | 一种高效的新型内存索引结构处理方法 |
-
2020
- 2020-03-31 CN CN202010244529.3A patent/CN111475508B/zh active Active
Patent Citations (3)
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)
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 |