CN107544756B - 基于SCM的Key-Value日志型本地存储方法 - Google Patents
基于SCM的Key-Value日志型本地存储方法 Download PDFInfo
- Publication number
- CN107544756B CN107544756B CN201710657877.1A CN201710657877A CN107544756B CN 107544756 B CN107544756 B CN 107544756B CN 201710657877 A CN201710657877 A CN 201710657877A CN 107544756 B CN107544756 B CN 107544756B
- Authority
- CN
- China
- Prior art keywords
- page
- scm
- memory
- log
- memory management
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims abstract description 144
- 238000007726 management method Methods 0.000 claims abstract description 97
- 238000005192 partition Methods 0.000 claims abstract description 27
- 230000003068 static effect Effects 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims abstract description 6
- 238000011084 recovery Methods 0.000 claims abstract description 6
- 238000010276 construction Methods 0.000 claims abstract description 3
- 230000008901 benefit Effects 0.000 claims description 5
- 238000003491 array Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于SCM的Key‑Value日志型本地存储方法,存储方法包括以下步骤:SCM内存划分步骤:对SCM内存进行按功能划分分区,即划分为超级块区、检查点区、页管理区、静态哈希表区、数据存储区这五个不同的逻辑分区;多层次内存管理步骤:构建三层内存管理模块,在不同层面上对内存进行管理,实现页面的动态分配和回收;高并发哈希表构建步骤:使用静态哈希表来索引key‑value对象,使用动态分配的数组存放哈希冲突的元素。本发明中的实现方法根据异构内存介质的硬件特性合理调度分配存储空间,提高存储介质的利用率,延长硬件的使用寿命,提高混合键值存储系统并发性和数据吞吐量。
Description
技术领域
本发明涉及本地数据存储管理系统领域,具体地,涉及一种基于SCM的Key-Value(键-值)日志型本地存储方法。
背景技术
新型存储技术的兴起和不同SCM(Storage Class Memory,存储类内存)器件的出现,引起了人们对混合内存系统架构和管理方式的关注和研究。SCM器件具有非易失性、读快写慢、静态功耗低而动态功耗高等特点,异于传统的内存。国内外众多的专家学者也基于SCM器件提出过多种内存组织方式和优化方法。然而众多的组织方式和优化方法都有各自的局限性和适用范围。
随着云计算、物联网等技术的发展,数据正以前所未有的速度不断增长和累积,如何管理和组织这些数据,对传统的数据存储管理系统来说是一个挑战。现存的Key-Value存储系统,具有代表性的产品有LevelDB、RockDB等。它们都是以磁盘、SSD等块设备作为存储介质,并针对这些物理设备的访问特性进行优化的。
LevelDB是以LSM-tree作为数据管理系统的索引结构,它把写请求累计到内存中,当内存的数据量到达一定阈值时,把内存中的数据连续写入磁盘中,以最大化磁盘的写入速度和吞吐量。LSM-tree通过分层实现数据的合并操作,这种分层操作引入了写放大的问题,即当合并一个表时需要同时读入多个表。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于SCM的Key-Value日志型本地存储方法。
根据本发明提供一种基于SCM的Key-Value日志型本地存储方法,其特征在于,包括如下步骤:
SCM内存划分步骤:将SCM内存以固定大小的页作为划分的基本单位,并对页面进行标号,对SCM内存进行按功能划分分区,划分为超级块区、检查点区、页管理区、静态哈希表区、数据存储区这五个不同的逻辑分区;在SCM内存的第一个页作为超级块区;将SCM内存的第二个页作为检查点区;页管理区可以看作是记录SCM每个内存页的统计信息的数组;将SCM内存的大小除以每个页面的大小,从而得出整个SCM内存的页面总数,即页管理区的记录总数;对于每个页面都有一个记录,记录的大小乘以记录的总数,可以得到页记录区的大小;最后,计算出页管理区所需要的页面数n1,得到整个页管理区的分布;根据整个SCM内存的大小和预估的每个Key-Value对象的平均大小,计算出SCM能够容纳的Key-Value对象的总数目;根据Key-Value对象的总数目,计算出哈希表的大小;将哈希表的大小向上取成2的N次幂,得到哈希表所需要的也页面总数n3;从而,最终确定哈希表的分区位置;
多层次内存管理步骤:构建三层内存管理模块,三层内存管理模块包括第一层内存管理模块、第二层内存管理模块、第三层内存管理模块,在不同层面上对内存进行管理,实现页面的动态分配和回收;第一层内存管理模块对整个SCM页面进行管理,所有工作线程共享第一层内存管理模块;第二次内存管理模块提供SCM日志语义,每个工作线程有自己的第二层内存管理模块;第三层内存管理模块提供Key-Value对象分配操作,每个工作线程有自己的第三层内存管理模块;
高并发哈希表构建步骤:使用静态哈希表来索引key-value对象,使用动态分配的数组存放哈希冲突的元素。
优选地,所述超级块区记录了这个内存区域的分区情况;检查点区记录Key-Value系统的一致性情况;页管理区记录每个内存页的使用情况;静态哈希表是预先分配的哈希表;数据存储区记录了整个系统的数据信息。通过这种对SCM空间的功能划分,能够在系统重启时,保证数据的一致性。通过静态哈希表能够提高系统运行时的效率。
优选地,所述多层次内存管理步骤中:第一层内存管理模块对整个SCM空间以页为单位进行内存管理,页的大小在内存划分步骤中确定,对上层提供分配或释放页的接口;第二层内存管理模块以日志为管理单元,为每个日志分配页空间,对上层提供新建或释放日志的接口;第三层内存管理模块为对象空间分配器,为每个数据项分配空间。通过多层次内存管理,简化了每层次的功能,可以针对不同层次的目标对系统进行优化。
优选地,所述第一层内存管理模块对整个SCM空间以页为单位进行内存管理,把所有空闲页组成一个单向链表;分配页时,从链表头取得一个页面;释放页时,把页面插入到链表尾部;通过这种方式,能够使SCM的所有页面的分配次数大致相同;这一层的页面被所有线程共享,需要采用一种同步方法来保障数据的一致性;对于单向链表,采用Compare-And-Swap的原子指令来完成,以减少使用锁的开销。第一层内存管理模块通过由原子指令保障一致性的单链表来组织空闲页,能够在O(1)时间内分配和释放页空间,并尽量减少运行时的常数时间。
优选地,所述第二层内存管理模块的每个线程拥有独立的日志,这样就消除了读写日志时的同步;同时固定每个日志的大小为页面的大小。第二次内存管理模块对每个线程提供独立的日志,从而消除了写操作时的同步操作,减少运行时间。
优选地,所述第三层内存管理模块进行内存分配,内存分配通过移动日志尾部指针并记录相应页表项的有效数据大小来完成;当日志空间不足时,向第二层分配器请求新的日志,在新的日志空间中分配内存;释放内存更新日志中剩余有效数据的大小,不被立即重新使用被释放的空间;通过这种方式,实现了每个日志的均匀写。第三层内存管理模块直接提供对小内存对象的分配,由于其建立在第二层内存管理模块的基础上,不同的线程不可能同时对一个地址进行写操作,进而消除了写操作时的同步操作。通过垃圾回收算法,把释放空间的操作推迟并交给后台的垃圾回收线程,进一步提高读写操作的效率。
优选地,所述第三层内存管理模块采用垃圾回收算法使用benefit/cost来选择要清理的旧日志,使用最小堆记录有效数据的日志的顺序;当SCM剩余空间不足时,垃圾回收线程把前n个含有最少有效数据的日志合并到新的日志中,并释放原来的日志空间,n为自然数。第三层内存管理模块直接提供对小内存对象的分配,由于其建立在第二层内存管理模块的基础上,不同的线程不可能同时对一个地址进行写操作,进而消除了写操作时的同步操作。通过垃圾回收算法,把释放空间的操作推迟并交给后台的垃圾回收线程,进一步提高读写操作的效率。
优选地,所述静态哈希表的一个桶大小是64位,其中低48位记录的动态分配的数组或key-value对象在SCM上的物理地址,第47~56位记录这个桶中有多少个key-value对象,最高位记录是否有线程正在修改这个桶中的元素;哈希表能够允许单个线程修改某一个桶中元素的同时,允许多个线程进行读取这个能中的元素,并且对每个桶的操作可以独立进行;用来处理冲突的数组中的每个元素的大小是64位,其中低48位存放的key-value对象在SCM中的物理地下,高16位存放的key的第二个哈希值。所述静态哈希表允许单个线程进行写操作的同时有多个线程进行读操作,并且通过比较TAG值,能够查找Key-Value时,大幅度减少存在与同一个桶中不同Key的读取。
与现有技术相比,本发明具有如下的有益效果:
一、本发明提供的基于SCM的Key-Value日志型本地存储方法使存储系统能够根据异构内存介质的硬件特性合理调度分配存储空间,提高硬件的利用率,延长硬件的使用寿命。
二、本发明提供的基于SCM的Key-Value日志型本地存储方法在不同粒度对SCM空间进行管理;为延长SCM内存采取的均匀写策略,采用日志型结构,提高系统读写性能,延长器件使用寿命。
三、本发明提供的基于SCM的Key-Value日志型本地存储方法提供了高并发的哈希表索引结构,使每个bucket的更新能够同时进行。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为哈希表整体结构示意图;
图2为处理哈希冲突的数据元素布局示意图;
图3为SCM多级内存分配器示意图;
图4为SCM内存功能划分示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供的基于SCM的Key-Value日志型本地存储方法包括如下步骤:
SCM内存划分步骤:将SCM内存以固定大小的页作为划分的基本单位,并对页面进行标号1,2,3……。如图4所示,对SCM内存进行按功能划分分区,即划分为超级块区、检查点区、页管理区、静态哈希表区、数据存储区这五个不同的逻辑分区;其中,超级块区记录了这个内存区域的分区情况;检查点区记录Key-Value系统的一致性情况;页管理区记录每个内存页的使用情况;静态哈希表是预先分配的哈希表;数据存储区记录了整个系统的数据信息。系统启动时,首先读超级块区域,以了解SCM的分区情况,恢复哈希表和内存分配器。在SCM内存的第一个页作为超级块区;将SCM内存的第二个页作为检查点区;页管理区可以看作是记录SCM每个内存页的统计信息的数组;将SCM内存的大小除以每个页面的大小,从而得出整个SCM内存的页面总数,即页管理区的记录总数;对于每个页面都有一个记录,记录的大小乘以记录的总数,可以得到页记录区的大小;最后,计算出页管理区所需要的页面数n1,得到整个页管理区的分布(#3~#3+n1-1);根据整个SCM内存的大小和预估的每个Key-Value对象的平均大小,计算出SCM能够容纳的Key-Value对象的总数目;根据Key-Value对象的总数目,计算出哈希表的大小;将哈希表的大小向上取成2的N次幂,得到哈希表所需要的也页面总数n3;从而,最终确定哈希表的分区位置(#3+n1+n2~#3+n1+n2-1);
多层次内存管理步骤:构建三层内存管理模块,三层内存管理模块包括第一层内存管理模块、第二层内存管理模块、第三层内存管理模块,第一层内存管理模块对整个SCM页面进行管理,所有工作线程共享第一层内存管理模块;第二次内存管理模块提供SCM日志语义,每个工作线程有自己的第二层内存管理模块;第三层内存管理模块提供Key-Value对象分配操作,每个工作线程有自己的第三层内存管理模块;在不同层面上对内存进行管理,实现页面的动态分配和回收。具体地,第一层内存管理模块对整个SCM空间以页为单位进行内存管理,页的大小在内存划分步骤中确定,对上层提供分配或释放页的接口。本发明以2MB的页面大小为例,对以下具体实施步骤进行说明。把所有空闲页组成一个单向链表。分配页时,从链表头取得一个页面。释放页时,把页面插入到链表尾部。通过这种方式,能够使SCM的所有页面的分配次数大致相同。这一层的页面被所有线程共享,需要采用一种同步方法来保障数据的一致性。对于单向链表,可采用Compare-And-Swap(CAS,比较与交换)的原子指令来完成,以减少使用锁的开销。第二层内存管理模块以日志为管理单元,为每个日志分配页空间,对上层提供新建或释放日志的接口,每个线程拥有独立的日志,这样就消除了读写日志时的同步。通常情况下,每个key-value对象的大小比较小。以512字节为例,一个2MB大小的log能够容纳的key-value对象数目为如下式(1):
(2×1024×1024)B/512B=4096……(1)
Log的内部碎片最大大小为511字节,所以log的最小内存利用率为如下式(2):
(2×1024×1024-511)B/(2×1024×1024)B*100%=99.98%……(2)
所以,本发明固定一个页面为一个log。
如果不同线程对同一个log进行写操作,CPU cache的一致性机制,会引起cachemisses。本发明让不同的线程都拥有自己的log,以上述情况所带来的减少cache misses。
第三层内存管理模块为对象空间分配器,为每个数据项分配空间。所述第三层内存管理模块进行内存分配,内存分配通过移动日志尾部指针并记录相应页表项的有效数据大小来完成。当日志空间不足时,向第二层分配器请求新的日志,在新的日志空间中分配内存。释放内存更新日志中剩余有效数据的大小,不被立即重新使用被释放的空间。通过这种方式,实现了每个日志的均匀写,但每个日志中被释放的空间就会形成很多洞。
为了重新利用这些洞,第三层内存管理模块就需要垃圾回收线程。垃圾回收线程把多个日志中的有效数据移动到新的日志中,释放旧的日志,从而可以重新利用旧日志的空间。
垃圾回收算法使用benefit/cost(收益/成本)来选择要清理的旧日志,了得到最大收益,每个旧日志的有效数据要尽可能小,所以使用最小堆记录有效数据的日志的顺序;当SCM剩余空间不足时,垃圾回收线程把前n个含有最少有效数据的日志合并到新的日志中,并释放原来的日志空间,n为自然数。设要把n个日志的合并到一个新的日志中,每个旧日志的有效数据大小平均为m<L字节,每个日志大小为L字节,则进行一次垃圾回收的操作最终得到nL-nm字节,需要移动n×m<L字节的数据量,即如下式(3):
具体地,累计最小堆中前n个日志的有效数据的大小,每个日志的有效数据大小为mi,如下式(4):
具体地,所述高并发哈希表构建步骤,使用静态哈希表来索引key-value对象,使用动态分配的数组存放哈希冲突的元素。哈希表的一个桶大小是64位,其中低48位记录的动态分配的数组或key-value对象在SCM上的物理地址,第47~56位记录这个桶中有多少个key-value对象,最高位记录是否有线程正在修改这个桶中的元素;静态哈希表能够允许单个线程修改某一个桶中元素的同时,允许多个线程进行读取这个能中的元素,并且对每个桶的操作可以独立进行。用来处理冲突的数组中的每个元素的大小是64位,其中低48位存放的key-value对象在SCM中的物理地下,高16位存放的key的第二个哈希值。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (2)
1.一种基于SCM的Key-Value日志型本地存储方法,其特征在于,包括如下步骤:
SCM内存划分步骤:将SCM内存以固定大小的页作为划分的基本单位,并对页面进行标号,对SCM内存进行按功能划分分区,划分为超级块区、检查点区、页管理区、静态哈希表区、数据存储区这五个不同的逻辑分区;在SCM内存的第一个页作为超级块区;将SCM内存的第二个页作为检查点区;页管理区可以看作是记录SCM每个内存页的统计信息的数组;将SCM内存的大小除以每个页面的大小,从而得出整个SCM内存的页面总数,即页管理区的记录总数;对于每个页面都有一个记录,记录的大小乘以记录的总数,可以得到页记录区的大小;最后,计算出页管理区所需要的页面数n1,得到整个页管理区的分布;根据整个SCM内存的大小和预估的每个Key-Value对象的平均大小,计算出SCM能够容纳的Key-Value对象的总数目;根据Key-Value对象的总数目,计算出哈希表的大小;将哈希表的大小向上取成2的N次幂,得到哈希表所需要的页面总数n3;从而,最终确定哈希表的分区位置;
多层次内存管理步骤:构建三层内存管理模块,三层内存管理模块包括第一层内存管理模块、第二层内存管理模块、第三层内存管理模块,在不同层面上对内存进行管理,实现页面的动态分配和回收;第一层内存管理模块对整个SCM页面进行管理,所有工作线程共享第一层内存管理模块;第二次内存管理模块提供SCM日志语义,每个工作线程有自己的第二层内存管理模块;第三层内存管理模块提供Key-Value对象分配操作,每个工作线程有自己的第三层内存管理模块;
高并发哈希表构建步骤:使用静态哈希表来索引key-value对象,使用动态分配的数组存放哈希冲突的元素;
所述多层次内存管理步骤中:第一层内存管理模块对整个SCM空间以页为单位进行内存管理,页的大小在内存划分步骤中确定,对上层提供分配或释放页的接口;第二层内存管理模块以日志为管理单元,为每个日志分配页空间,对上层提供新建或释放日志的接口;第三层内存管理模块为对象空间分配器,为每个数据项分配空间;
所述第一层内存管理模块对整个SCM空间以页为单位进行内存管理,把所有空闲页组成一个单向链表;分配页时,从链表头取得一个页面;释放页时,把页面插入到链表尾部;通过这种方式,能够使SCM的所有页面的分配次数大致相同;这一层的页面被所有线程共享,需要采用一种同步方法来保障数据的一致性;对于单向链表,采用Compare-And-Swap的原子指令来完成,以减少使用锁的开销;
所述第二层内存管理模块的每个线程拥有独立的日志,这样就消除了读写日志时的同步;同时固定每个日志的大小为页面的大小;
所述第三层内存管理模块进行内存分配,内存分配通过移动日志尾部指针并记录相应页表项的有效数据大小来完成;当日志空间不足时,向第二层分配器请求新的日志,在新的日志空间中分配内存;释放内存更新日志中剩余有效数据的大小,不被立即重新使用被释放的空间;通过这种方式,实现了每个日志的均匀写;
所述第三层内存管理模块采用垃圾回收算法使用benefit/cost来选择要清理的旧日志,使用最小堆记录有效数据的日志的顺序;当SCM剩余空间不足时,垃圾回收线程把前n个含有最少有效数据的日志合并到新的日志中,并释放原来的日志空间,n为自然数;
所述静态哈希表的一个桶大小是64位,其中低48位记录的动态分配的数组或key-value对象在SCM上的物理地址,第47~56位记录这个桶中有多少个key-value对象,最高位记录是否有线程正在修改这个桶中的元素;哈希表能够允许单个线程修改某一个桶中元素的同时,允许多个线程进行读取这个能中的元素,并且对每个桶的操作可以独立进行;用来处理冲突的数组中的每个元素的大小是64位,其中低48位存放的key-value对象在SCM中的物理地址,高16位存放的key的第二个哈希值。
2.根据权利要求1所述的基于SCM的Key-Value日志型本地存储方法,其特征在于,所述超级块区记录了这个内存区域的分区情况;检查点区记录Key-Value系统的一致性情况;页管理区记录每个内存页的使用情况;静态哈希表是预先分配的哈希表;数据存储区记录了整个系统的数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710657877.1A CN107544756B (zh) | 2017-08-03 | 2017-08-03 | 基于SCM的Key-Value日志型本地存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710657877.1A CN107544756B (zh) | 2017-08-03 | 2017-08-03 | 基于SCM的Key-Value日志型本地存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544756A CN107544756A (zh) | 2018-01-05 |
CN107544756B true CN107544756B (zh) | 2020-11-06 |
Family
ID=60971409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710657877.1A Expired - Fee Related CN107544756B (zh) | 2017-08-03 | 2017-08-03 | 基于SCM的Key-Value日志型本地存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544756B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802992B (zh) * | 2018-12-10 | 2021-05-28 | 视联动力信息技术股份有限公司 | 一种资源变化日志读写的方法和装置 |
CN109614294A (zh) * | 2018-12-14 | 2019-04-12 | 河南飙风信息科技有限公司 | 企业日志分析接入系统 |
TWI695322B (zh) * | 2019-01-18 | 2020-06-01 | 旺宏電子股份有限公司 | 記憶體及記憶體操作方法 |
CN110674051A (zh) * | 2019-09-24 | 2020-01-10 | 中国科学院微电子研究所 | 一种数据存储方法及装置 |
CN110968269A (zh) * | 2019-11-18 | 2020-04-07 | 华中科技大学 | 基于scm与ssd的键值存储系统及读写请求处理方法 |
CN111221647B (zh) * | 2019-12-25 | 2023-07-07 | 天津中科曙光存储科技有限公司 | 一种分布式存储缓存回收的优化方法及装置 |
CN112486996B (zh) * | 2020-12-14 | 2022-08-05 | 上海交通大学 | 面向对象的内存数据存储系统 |
CN113448996B (zh) * | 2021-06-11 | 2022-09-09 | 成都三零嘉微电子有限公司 | 一种IPSec安全策略数据库高速查找方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引系统及处理方法 |
CN105302586A (zh) * | 2014-06-24 | 2016-02-03 | 中兴通讯股份有限公司 | 软件升级处理方法、装置、终端及服务器 |
CN105930356A (zh) * | 2016-04-08 | 2016-09-07 | 上海交通大学 | 日志型异构混合内存文件系统的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921764B2 (en) * | 2015-06-30 | 2018-03-20 | International Business Machines Corporation | Using inactive copy relationships to resynchronize data between storages |
-
2017
- 2017-08-03 CN CN201710657877.1A patent/CN107544756B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302586A (zh) * | 2014-06-24 | 2016-02-03 | 中兴通讯股份有限公司 | 软件升级处理方法、装置、终端及服务器 |
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引系统及处理方法 |
CN105930356A (zh) * | 2016-04-08 | 2016-09-07 | 上海交通大学 | 日志型异构混合内存文件系统的实现方法 |
Non-Patent Citations (2)
Title |
---|
Cache craftiness for fast multicore key-value storage;Mao, Y. et al;《Proceedings of the 7th ACM European Conference on Computer Systems》;20121231;第183-196页 * |
Nvmcached: An nvm-based key-value cache;Wu Xingbo,et al;《Proceedings of the 7th ACM SIGOPS Asia-Pacific Workshop on Systems》;20161231;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107544756A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544756B (zh) | 基于SCM的Key-Value日志型本地存储方法 | |
US9971681B2 (en) | Lazy real time garbage collection method | |
CN100498740C (zh) | 一种数据缓存处理方法、系统及数据缓存装置 | |
US6571261B1 (en) | Defragmentation utility for a shared disk parallel file system across a storage area network | |
US8832411B2 (en) | Working set swapping using a sequentially ordered swap file | |
US20110246742A1 (en) | Memory pooling in segmented memory architecture | |
CN109407979A (zh) | 多线程持久性b+树数据结构设计与实现方法 | |
CN107153707B (zh) | 一种针对非易失内存的哈希表构建方法及系统 | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN100517335C (zh) | 一种分布式文件系统的文件写入系统和方法 | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
US10929286B2 (en) | Arbitrated management of a shared non-volatile memory resource | |
US20100211753A1 (en) | Parallel garbage collection and serialization without per-object synchronization | |
CN107704194B (zh) | 无锁io处理方法及其装置 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN104133661A (zh) | 基于列存储的多核并行哈希分区优化方法 | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
KR102498668B1 (ko) | 플래시-인지 힙 메모리 관리 방법 및 호스트 장치 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN106445405A (zh) | 一种面向闪存存储的数据访问方法及其装置 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN106294189B (zh) | 内存碎片整理方法及装置 | |
Li et al. | Phast: Hierarchical concurrent log-free skip list for persistent memory | |
CN106168926B (zh) | 基于linux伙伴系统的内存分配方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201106 |
|
CF01 | Termination of patent right due to non-payment of annual fee |