CN112947856B - 一种内存数据的管理方法、装置、计算机设备及存储介质 - Google Patents
一种内存数据的管理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112947856B CN112947856B CN202110164412.9A CN202110164412A CN112947856B CN 112947856 B CN112947856 B CN 112947856B CN 202110164412 A CN202110164412 A CN 202110164412A CN 112947856 B CN112947856 B CN 112947856B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- memory
- linked list
- hard disk
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013523 data management Methods 0.000 title claims abstract description 24
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 8
- 230000002457 bidirectional effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002688 persistence Effects 0.000 abstract description 8
- 230000002159 abnormal effect Effects 0.000 abstract description 7
- 230000004044 response Effects 0.000 abstract description 5
- 239000002609 medium Substances 0.000 description 20
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种内存数据的管理方法、装置、计算机设备及存储介质。该方法包括:构建内存数据库,内存数据库包括哈希表,哈希表的每个结点为一个双向链表,双向链表的每个结点用于指向对应存储的内存数据;将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。本发明实施例所提供的技术方案,通过哈希表和双向链表的结合使用,实现了毫秒级的高速大并发的数据请求,增强了实时业务系统中用户请求的响应速度,提高了用户的体验,同时通过与对应的硬盘文件的内容同步,在满足对内存高速访问的基础上,又能保证数据的持久化,从而可以在遇到异常情况时及时恢复,避免了数据丢失。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种内存数据的管理方法、装置、计算机设备及存储介质。
背景技术
目前,随着信息数据处理需求的日益增长以及不同领域的业务种类的日益丰富,使得基于内存的数据管理变得越来越重要。通过计算机内存作为数据载体,由于不使用硬盘,故节省了针对硬盘的I/O时间开销,从而可以显著提高数据存储和查询效率。但是由于内存的易失性,在系统遇到重启等异常故障时,内存中的数据便会消失,无法恢复,从而造成损失。
发明内容
本发明实施例提供一种内存数据的管理方法、装置、计算机设备及存储介质,以在满足对内存高速访问的基础上,将内存数据与对应的硬盘文件进行同步持久化,从而避免数据丢失。
第一方面,本发明实施例提供了一种内存数据的管理方法,该方法包括:
构建内存数据库,所述内存数据库包括哈希表,所述哈希表的每个结点为一个双向链表,所述双向链表的每个结点用于指向对应存储的内存数据;
将所述内存数据在硬盘文件中进行关联存储,以使所述内存数据持久化。
第二方面,本发明实施例还提供了一种内存数据的管理装置,该装置包括:
数据库构建模块,用于构建内存数据库,所述内存数据库包括哈希表,所述哈希表的每个结点为一个双向链表,所述双向链表的每个结点用于指向对应存储的内存数据;
文件同步模块,用于将所述内存数据在硬盘文件中进行关联存储,以使所述内存数据持久化。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的内存数据的管理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的内存数据的管理方法。
本发明实施例提供了一种内存数据的管理方法,首先构建内存数据库,该内存数据库主要通过哈希表和双向链表结合使用来实现,其中哈希表的每个结点为一个双向链表,而双向链表的每个结点用于指向对应存储的内存数据,然后将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。通过哈希表和双向链表的结合使用,实现了毫秒级的高速大并发的数据请求,增强了实时业务系统中用户请求的响应速度,提高了用户的体验,同时通过与对应的硬盘文件的内容同步,在满足对内存高速访问的基础上,又能保证数据的持久化,从而可以在遇到异常情况时及时恢复,避免了数据丢失。
附图说明
图1为本发明实施例一提供的内存数据的管理方法的流程图;
图2为本发明实施例一提供的执行数据记录增加请求过程的流程图;
图3为本发明实施例一提供的执行数据记录删除请求过程的流程图;
图4为本发明实施例一提供的执行内存数据重启恢复请求过程的流程图;
图5为本发明实施例二提供的内存数据的管理装置的结构示意图;
图6为本发明实施例三提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的内存数据的管理方法的流程图。本实施例可适用于大用户量高并发场景的实时业务系统中对内存数据进行管理的情况,该方法可以由本发明实施例提供的内存数据的管理装置来执行,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中。如图1所示,具体包括如下步骤:
S11、构建内存数据库,内存数据库包括哈希表,哈希表的每个结点为一个双向链表,双向链表的每个结点用于指向对应存储的内存数据。
其中,内存数据库为将数据放在内存中直接操作的数据库,可以将经常需要查询和修改的活跃数据存储在内存,同时可以该活跃数据的数据结构作为内存数据的表结构,以提高对用户请求的响应速度。在构建内存数据库时,结合使用哈希表和双向链表,还可以辅助以二叉树和/或红黑树等等,从而实现不超过1毫秒级别的高速大并发的数据请求。其中,哈希表是由一个表头加上若干结点组成,每个结点都是一个双向链表,数据对象可以存储在哈希表结点下双向链表的结点中,通过使用双向链表可以很方便的实现结点的插入和删除等。可选的,本实施例中的双向链表具体可以是双向循环链表。由于每个结点都是一个双向链表,而由双向链表的每个结点存储数据,在这种情况下,如果随机产生的哈希值相同,也无需重新产生,可以直接将数据存入对应的双向链表中,通过较好的散列化哈希函数,可以将数据对象均匀分布到结点的链表中。具体的,双向链表的每个结点用于指向对应存储的内存数据,结点中可以具体存储指向真实存储内存数据的地址,从而通过地址操作对应的内存数据,其中的内存数据可以是结构化数据。
可选的,构建内存数据库,包括:根据预设容量上限创建内存区域;将内存区域划分为多个结构单元,每个结构单元对应一个数据结点;创建空闲链表,空闲链表用于存储当前未被使用的结构单元对应的数据结点;将所有结构单元对应的数据结点均插入到空闲链表中;创建哈希表,哈希表的每个结点的值为结构指针,以指向双向链表结构。
具体的,首先可以在系统启动时对内存进行初始化。根据提前规划好的预设容量上限创建一大批内存区域,可提供用于存储内存数据的最大容量,再将这片内存区域划分为多个结构单元,同时每个结构单元对应一个数据结点,数据结点中可以存储指向对应结构单元的地址,每个结构单元的大小可以包括存储的内存数据、对应数据结点的前结点地址、后结点地址以及后续在硬盘文件中对应的文件编号和文件偏移地址等所占用的字节大小。在后续的请求处理过程中,可以将要处理和查询的内存数据的所有关键信息封装抽象成一个结构体的数据结构,每个结构体元素就是一个数据结点所要指向的内存数据。然后可以创建一个空闲链表,可用于存储当前未被使用的结构单元对应的数据结点,包括从未被使用的结构单元以及使用后被回收的结构单元。在创建内存数据库的过程中,可以先将上述得到的所有结构单元对应的数据结点均插入到所创建的空闲链表中,具体可以形成首尾相连的双向链表,然后在需要用到数据结点时,只需要从空闲链表中取出即可。同时,可以创建哈希表,哈希表的每个结点的值为结构指针,以用于指向双向链表结构。可选的,哈希表的桶等于空闲链表的当前结点数,在创建哈希表时,每个结点的初始值设置为空,从而不占用内存,然后哈希表的桶可以尽可能大的设置,具体可以等于空闲链表存储所有数据结点之后的当前结点数,即等于一开始申请的内存区域所划分得到的结构单元的数量,在这种情况下,可以实现在哈希表中一次性找出查询对象,而不需要寻找下一个结点,从而降低了查找所需要的计算复杂度。在完成内存数据库的构建之后,可以实现内存数据的查询、增加、修改和删除等操作,当在内存数据库中存储内存数据时,即可在哈希表的结点中形成双向链表,从而通过双向链表的结点指向存储的内存数据。
S12、将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。
具体的,在使用内存数据库的同时,可以将内存数据与硬盘文件按照数据结构进行实时同步,即将硬盘文件中的数据块与内存中的数据块进行一一对应,可以但不要求是完全映像,只需要数据在内存和硬盘文件中都存在并建立联系即可。可以在内存中记录在硬盘文件中对应存储的文件信息,如文件编号和文件偏移地址等等,从而实现内存数据与硬盘文件之间的关联存储,以便于确定硬盘文件中存储的对应的数据记录,从而方便对其进行相关的操作。其中,硬盘文件的结构可以包括数据内容、数据记录的键值以及标明是否删除的标志位。可选的,为了处理速度和并发性的需要,可以创建多个分区文件来存储内存中的数据信息,首先具体可以创建四个分区文件,后面可以根据存储的内容大小和系统的并发度等等对分区文件进行增加。
在内存数据库的使用过程中,可以随时评估内存表的记录大小来配置内存区域的大小,当内存区域不充足时可以自动的按照特定的算法进行申请,同时配置用于持久化的硬盘文件中存储分区文件的位置,或者可以自动按照默认位置进行分配。在内存数据持久化的过程中,还可以根据内存数据的重要性选择同步或者异步的方式,以在满足持久化的基础上,减轻处理器的负担。
本发明实施例所提供的技术方案,首先构建内存数据库,该内存数据库主要通过哈希表和双向链表结合使用来实现,其中哈希表的每个结点为一个双向链表,而双向链表的每个结点用于指向对应存储的内存数据,然后将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。通过哈希表和双向链表的结合使用,实现了毫秒级的高速大并发的数据请求,增强了实时业务系统中用户请求的响应速度,提高了用户的体验,同时通过与对应的硬盘文件的内容同步,在满足对内存高速访问的基础上,又能保证数据的持久化,从而可以在遇到异常情况时及时恢复,避免了数据丢失。
在上述技术方案的基础上,可选的,如图2所示,方法还包括:
S21、接收第一数据记录的增加请求。
S22、根据第一数据记录的键值计算散列的哈希值,从而在哈希表中确定对应的第一目标结点。
S23、在第一目标结点对应的双向链表中查询是否存在与第一数据记录的键值相同的键值记录。
S24、若不存在,则在空闲链表的最前端取出第一目标数据结点,并将第一数据记录的内容存储在第一目标数据结点指向的结构单元中,同时将第一目标数据结点插入到第一目标结点对应的双向链表中。
S25、在第一目标数据结点中记录第一硬盘文件信息,第一硬盘文件信息包括为第一数据记录分配的硬盘文件编号以及硬盘文件偏移地址。
S26、根据第一硬盘文件信息,将第一数据记录写入硬盘文件。
具体的,在使用内存数据库的过程中,可能接收到数据记录的增加请求,可以将这类数据记录作为第一数据记录。首先对内存数据库进行操作,对第一数据记录的由一个或多个字段组成的键值进行各种位操作和算术计算,再将得到的值与哈希表的桶进行取余操作,从而得到散列的哈希值,并在哈希表中按照该哈希值查找对应的第一目标结点。然后可以在第一目标结点对应的双向链表中查询是否存在与第一数据记录的键值相同的键值记录,若存在,则说明第一数据记录在内存中已经存储,不需要再进行插入,若不存在,则可以从空闲链表的最前端取出第一目标数据结点,并将第一数据记录的内容存储在第一目标数据结点指向的结构单元中,同时将第一目标数据结点插入到第一目标结点对应的双向链表中。在对内存操作的同时,可以按照公平算法和最小存储算法为第一数据记录分配在硬盘文件中存储的硬盘文件编号以及硬盘文件偏移地址,然后将该硬盘文件编号和硬盘文件偏移地址记录在第一目标数据结点中,同时可以并发的在硬盘文件编号以及硬盘文件偏移地址对应的位置将第一数据记录写入硬盘文件中。可选的,第一目标数据结点中还可以存储标明是否删除的标志位,对应的在将第一数据记录写入硬盘文件中时,还可以检查该标志位,以将该标志位设置为有效。
可选的,将第一目标数据结点插入到第一目标结点对应的双向链表中,包括:若第一目标结点为空,则将第一目标数据结点的指针赋给第一目标结点,并使第一目标数据结点的前向指针指向自己;若第一目标结点不为空,则将第一目标数据结点的指针赋给第一目标结点对应的双向链表的头结点的后向指针,并将第一目标数据结点的后向指针指向头结点的后向指针原所指向的原结点;或者,将第一目标数据结点的指针赋给头结点的前向指针,并将第一目标数据结点的前向指针指向头结点的前向指针原所指向的原结点。
具体的,在将第一目标数据结点插入对应的双向链表时,可以根据哈希表中第一目标结点的情况具体执行。若第一目标结点为空,即尚未插入任何数据结点,则可以将第一目标数据结点的指针值直接赋给第一目标结点,同时将第一目标数据结点的前向指针指向自己,以形成双向循环链表。若第一目标结点不为空,则可以将第一目标数据结点的指针值赋给第一目标结点对应的双向链表的头结点的后向指针,并将第一目标数据结点的后向指针指向该头结点的后向指针原来所指向的原结点,同时再通过修改该原结点以指向第一目标数据结点,即可重新形成双向链表。同理,也可以将第一目标数据结点的指针值赋给该头结点的前向指针,并将第一目标数据结点的前向指针指向该头结点的前向指针原来所指向的原结点,以重新形成双向链表。
在上述技术方案的基础上,可选的,如图3所示,方法还包括:
S31、接收第二数据记录的删除请求。
S32、根据第二数据记录的键值计算散列的哈希值,从而在哈希表中确定对应的第二目标结点。
S33、根据第二数据记录的键值在第二目标结点对应的双向链表中确定第二目标数据结点。
S34、将第二目标数据结点从第二目标结点对应的双向链表中删除,并插入到空闲链表的最前端。
S35、将第二目标数据结点指向的结构单元的标志位修改为删除。
S36、根据第二目标数据结点的内容确定第二硬盘文件信息,第二硬盘文件信息包括为第二数据记录分配的硬盘文件编号、硬盘文件偏移地址以及硬盘文件标志位,并将硬盘文件标志位修改为删除。
具体的,在使用内存数据库的过程中,可能接收到数据记录的删除请求,可以将这类数据记录作为第二数据记录。首先需要在哈希表中找到对应的数据结点,具体可以根据第二数据记录的键值计算散列的哈希值,以在哈希表中确定对应的第二目标结点,再在第二目标结点对应的双向链表中查找第二数据记录的键值,以确定第二目标数据结点。然后可以将第二目标数据结点从对应的双向链表中删除,并插入到空闲链表的最前端,从而可以在下一次优先被利用,通过对被删除的区域优先利用,可以重复使用之前使用过的位置,进而在增加数据记录的时候,不会导致文件的存储容量发生变化,以节约使用空间。在对内存操作的同时,可以根据第二目标数据结点的内容获取到对应存储在硬盘文件中的硬盘文件编号、硬盘文件偏移地址以及硬盘文件标志位,对于硬盘文件的处理,只需将该硬盘文件标志位修改为删除即可,而无需执行实际的删除操作,从而节约处理器的运行能力。同样的,在将第二目标数据结点从对应的双向链表中删除时,可以根据哈希表中第二目标结点的情况具体执行。若第二目标结点中只包括第二目标数据结点,则删除时可以直接将对应的双向链表的头结点置为空,若并非只包括第二目标数据结点,则可以修改第二目标数据结点原来的前结点的后向指针和后结点的前向指针,以使在删除第二目标数据结点之后,仍然保持为双向循环链表。
在上述技术方案的基础上,可选的,如图4所示,方法还包括:
S41、接收内存数据的重启恢复请求。
S42、确定与内存数据库对应的目标硬盘文件。
S43、打开目标硬盘文件,每次首先读取文件标志位,若文件标志位不为删除,则按照预设数据结构读取对应的文件数据,并从空闲链表的最后端取出第三目标数据结点,将文件数据以及文件数据的硬盘文件编号和硬盘文件偏移地址存储在第三目标数据结点指向的结构单元中,同时将第三目标数据结点插入到哈希表中;若文件标志位为删除,则从空闲链表的最后端取出第四目标数据结点,并将当前硬盘文件编号和当前硬盘文件偏移地址存储在第四目标数据结点中,再将第四目标数据结点插入到空闲链表的最前端。
具体的,在使用内存数据库的过程中,可能遇到异常断电的情况,则可能生成内存数据的重启恢复请求。在接收到重启恢复请求之后,可以首先确定用于存储与当前使用的内存数据库的表内容相同的目标硬盘文件。然后打开目标硬盘文件,将读指针进行向下偏移,从指定的字节位置开始,每次首先读取一个字节的文件标志位,若该文件标志位不为删除,则可以指定的预设数据结构为单元读取一次文件数据,并从空闲链表的最后端取出第三目标数据结点根据文件数据的键值插入到哈希表中,在取出的过程中,可以修改第三目标数据结点原在空闲链表中的前后结点的指针,以保持双向循环链表的结构。同时,将文件数据以及文件数据的硬盘文件编号和硬盘文件偏移地址存储在第三目标数据结点指向的结构单元中。若该文件标志位为删除,则从空闲链表的最后端取出第四目标数据结点,仅将在目标硬盘文件中当前读取到的当前硬盘文件编号和当前硬盘文件偏移地址存储在第四目标数据结点中即可,无需读取对应的文件内容,然后再将第四目标数据结点插入到空闲链表的最前端,以使其在后续过程中优先被利用。然后将读指针继续向下偏移,逐个读取以指定的预设数据结构为单元的文件数据,并重复上述的过程,直至完成内存数据的恢复。
在上述技术方案的基础上,可选的,在使用内存数据库的过程中,还可能接收到数据记录的修改请求和查询请求。若为修改请求,则可以通过哈希表找到内存中对应的记录,并对相应的内存数据进行修改,同时同步修改硬盘文件中存储的对应内容。若为查询请求,则可以仅根据数据记录的键值在内存中进行查询即可,无需对硬盘文件进行操作。
通过上述技术方案,实现了利用内存数据库进行增删改查等操作,并在执行操作的同时,时刻保证在硬盘文件中的同步持久化,从而完善了内存数据库的功能,并进一步保证了内存数据不会因异常情况丢失。
实施例二
图5为本发明实施例二提供的内存数据的管理装置的结构示意图,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中。如图5所示,该装置包括:
数据库构建模块51,用于构建内存数据库,内存数据库包括哈希表,哈希表的每个结点为一个双向链表,双向链表的每个结点用于指向对应存储的内存数据;
文件同步模块52,用于将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。
本发明实施例所提供的技术方案,首先构建内存数据库,该内存数据库主要通过哈希表和双向链表结合使用来实现,其中哈希表的每个结点为一个双向链表,而双向链表的每个结点用于指向对应存储的内存数据,然后将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。通过哈希表和双向链表的结合使用,实现了毫秒级的高速大并发的数据请求,增强了实时业务系统中用户请求的响应速度,提高了用户的体验,同时通过与对应的硬盘文件的内容同步,在满足对内存高速访问的基础上,又能保证数据的持久化,从而可以在遇到异常情况时及时恢复,避免了数据丢失。
在上述技术方案的基础上,可选的,数据库构建模块51,包括:
内存区域创建单元,用于根据预设容量上限创建内存区域;
结构单元划分单元,用于将内存区域划分为多个结构单元,每个结构单元对应一个数据结点;
空闲链表创建单元,用于创建空闲链表,空闲链表用于存储当前未被使用的结构单元对应的数据结点;
结点插入单元,用于将所有结构单元对应的数据结点均插入到空闲链表中;
哈希表创建单元,用于创建哈希表,哈希表的每个结点的值为结构指针,以指向双向链表结构。
在上述技术方案的基础上,可选的,哈希表的桶等于空闲链表的当前结点数。
在上述技术方案的基础上,可选的,该内存数据的管理装置,还包括:
增加请求接收模块,用于接收第一数据记录的增加请求;
第一目标结点确定模块,用于根据第一数据记录的键值计算散列的哈希值,从而在哈希表中确定对应的第一目标结点;
第一数据记录查询模块,用于在第一目标结点对应的双向链表中查询是否存在与第一数据记录的键值相同的键值记录;
第一数据记录存储模块,用于若不存在,则在空闲链表的最前端取出第一目标数据结点,并将第一数据记录的内容存储在第一目标数据结点指向的结构单元中,同时将第一目标数据结点插入到第一目标结点对应的双向链表中;
第一硬盘文件信息记录模块,用于在第一目标数据结点中记录第一硬盘文件信息,第一硬盘文件信息包括为第一数据记录分配的硬盘文件编号以及硬盘文件偏移地址;
第一数据记录写入模块,用于根据第一硬盘文件信息,将第一数据记录写入硬盘文件。
在上述技术方案的基础上,可选的,第一数据记录存储模块具体用于:
若第一目标结点为空,则将第一目标数据结点的指针赋给第一目标结点,并使第一目标数据结点的前向指针指向自己;若第一目标结点不为空,则将第一目标数据结点的指针赋给第一目标结点对应的双向链表的头结点的后向指针,并将第一目标数据结点的后向指针指向头结点的后向指针原所指向的原结点;或者,将第一目标数据结点的指针赋给头结点的前向指针,并将第一目标数据结点的前向指针指向头结点的前向指针原所指向的原结点。
在上述技术方案的基础上,可选的,该内存数据的管理装置,还包括:
删除请求接收模块,用于接收第二数据记录的删除请求;
第二目标结点确定模块,用于根据第二数据记录的键值计算散列的哈希值,从而在哈希表中确定对应的第二目标结点;
第二目标数据结点确定模块,用于根据第二数据记录的键值在第二目标结点对应的双向链表中确定第二目标数据结点;
第二目标数据结点删除模块,用于将第二目标数据结点从第二目标结点对应的双向链表中删除,并插入到空闲链表的最前端;
第一标志位修改模块,用于将第二目标数据结点指向的结构单元的标志位修改为删除;
第二标志位修改模块,用于根据第二目标数据结点的内容确定第二硬盘文件信息,第二硬盘文件信息包括为第二数据记录分配的硬盘文件编号、硬盘文件偏移地址以及硬盘文件标志位,并将硬盘文件标志位修改为删除。
在上述技术方案的基础上,可选的,该内存数据的管理装置,还包括:
重启恢复请求接收模块,用于接收内存数据的重启恢复请求;
目标硬盘文件确定模块,用于确定与内存数据库对应的目标硬盘文件;
文件数据读取模块,用于打开目标硬盘文件,每次首先读取文件标志位,若文件标志位不为删除,则按照预设数据结构读取对应的文件数据,并从空闲链表的最后端取出第三目标数据结点,将文件数据以及文件数据的硬盘文件编号和硬盘文件偏移地址存储在第三目标数据结点指向的结构单元中,同时将第三目标数据结点插入到哈希表中;若文件标志位为删除,则从空闲链表的最后端取出第四目标数据结点,并将当前硬盘文件编号和当前硬盘文件偏移地址存储在第四目标数据结点中,再将第四目标数据结点插入到空闲链表的最前端。
本发明实施例所提供的内存数据的管理装置可执行本发明任意实施例所提供的内存数据的管理方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,在上述内存数据的管理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例三
图6为本发明实施例三提供的计算机设备的结构示意图,示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图6显示的计算机设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图6所示,该计算机设备包括处理器61、存储器62、输入装置63及输出装置64;计算机设备中处理器61的数量可以是一个或多个,图6中以一个处理器61为例,计算机设备中的处理器61、存储器62、输入装置63及输出装置64可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器62作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的内存数据的管理方法对应的程序指令/模块(例如,内存数据的管理装置中的数据库构建模块51及文件同步模块52)。处理器61通过运行存储在存储器62中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的内存数据的管理方法。
存储器62可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器62可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器62可进一步包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置63可用于接收对内存数据的各种请求,以及产生与计算机设备的用户设置和功能控制有关的键信号输入等。输出装置64可包括显示屏等设备,可用于向用户提供交互功能等。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行一种内存数据的管理方法,该方法包括:
构建内存数据库,内存数据库包括哈希表,哈希表的每个结点为一个双向链表,双向链表的每个结点用于指向对应存储的内存数据;
将内存数据在硬盘文件中进行关联存储,以使内存数据持久化。
存储介质可以是任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的内存数据的管理方法中的相关操作。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种内存数据的管理方法,其特征在于,包括:
构建内存数据库,所述内存数据库包括哈希表,所述哈希表的每个结点为一个双向链表,所述双向链表的每个结点用于指向对应存储的内存数据;
将所述内存数据在硬盘文件中进行关联存储,以使所述内存数据持久化;
所述构建内存数据库,包括:
根据预设容量上限创建内存区域;
将所述内存区域划分为多个结构单元,每个所述结构单元对应一个数据结点;
创建空闲链表,所述空闲链表用于存储当前未被使用的所述结构单元对应的数据结点;
将所有所述结构单元对应的数据结点均插入到所述空闲链表中;
创建所述哈希表,所述哈希表的每个结点的值为结构指针,以指向双向链表结构;
所述方法还包括:
接收内存数据的重启恢复请求;
确定与所述内存数据库对应的目标硬盘文件;
打开所述目标硬盘文件,每次首先读取文件标志位,若所述文件标志位不为删除,则按照预设数据结构读取对应的文件数据,并从所述空闲链表的最后端取出第三目标数据结点,将所述文件数据以及所述文件数据的硬盘文件编号和硬盘文件偏移地址存储在所述第三目标数据结点指向的所述结构单元中,同时将所述第三目标数据结点插入到所述哈希表中;若所述文件标志位为删除,则从所述空闲链表的最后端取出第四目标数据结点,并将当前硬盘文件编号和当前硬盘文件偏移地址存储在所述第四目标数据结点中,再将所述第四目标数据结点插入到所述空闲链表的最前端。
2.根据权利要求1所述的内存数据的管理方法,其特征在于,所述哈希表的桶等于所述空闲链表的当前结点数。
3.根据权利要求1所述的内存数据的管理方法,其特征在于,所述方法还包括:
接收第一数据记录的增加请求;
根据所述第一数据记录的键值计算散列的哈希值,从而在所述哈希表中确定对应的第一目标结点;
在所述第一目标结点对应的双向链表中查询是否存在与所述第一数据记录的键值相同的键值记录;
若不存在,则在所述空闲链表的最前端取出第一目标数据结点,并将所述第一数据记录的内容存储在所述第一目标数据结点指向的所述结构单元中,同时将所述第一目标数据结点插入到所述第一目标结点对应的双向链表中;
在所述第一目标数据结点中记录第一硬盘文件信息,所述第一硬盘文件信息包括为所述第一数据记录分配的硬盘文件编号以及硬盘文件偏移地址;
根据所述第一硬盘文件信息,将所述第一数据记录写入硬盘文件。
4.根据权利要求3所述的内存数据的管理方法,其特征在于,所述将所述第一目标数据结点插入到所述第一目标结点对应的双向链表中,包括:
若所述第一目标结点为空,则将所述第一目标数据结点的指针赋给所述第一目标结点,并使所述第一目标数据结点的前向指针指向自己;
若所述第一目标结点不为空,则将所述第一目标数据结点的指针赋给所述第一目标结点对应的双向链表的头结点的后向指针,并将所述第一目标数据结点的后向指针指向所述头结点的后向指针原所指向的原结点;或者,将所述第一目标数据结点的指针赋给所述头结点的前向指针,并将所述第一目标数据结点的前向指针指向所述头结点的前向指针原所指向的原结点。
5.根据权利要求1所述的内存数据的管理方法,其特征在于,所述方法还包括:
接收第二数据记录的删除请求;
根据所述第二数据记录的键值计算散列的哈希值,从而在所述哈希表中确定对应的第二目标结点;
根据所述第二数据记录的键值在所述第二目标结点对应的双向链表中确定第二目标数据结点;
将所述第二目标数据结点从所述第二目标结点对应的双向链表中删除,并插入到所述空闲链表的最前端;
将所述第二目标数据结点指向的所述结构单元的标志位修改为删除;
根据所述第二目标数据结点的内容确定第二硬盘文件信息,所述第二硬盘文件信息包括为所述第二数据记录分配的硬盘文件编号、硬盘文件偏移地址以及硬盘文件标志位,并将所述硬盘文件标志位修改为删除。
6.一种内存数据的管理装置,其特征在于,包括:
数据库构建模块,用于构建内存数据库,所述内存数据库包括哈希表,所述哈希表的每个结点为一个双向链表,所述双向链表的每个结点用于指向对应存储的内存数据;
文件同步模块,用于将所述内存数据在硬盘文件中进行关联存储,以使所述内存数据持久化;
所述数据库构建模块,包括:
内存区域创建单元,用于根据预设容量上限创建内存区域;
结构单元划分单元,用于将所述内存区域划分为多个结构单元,每个所述结构单元对应一个数据结点;
空闲链表创建单元,用于创建空闲链表,所述空闲链表用于存储当前未被使用的所述结构单元对应的数据结点;
结点插入单元,用于将所有所述结构单元对应的数据结点均插入到所述空闲链表中;
哈希表创建单元,用于创建所述哈希表,所述哈希表的每个结点的值为结构指针,以指向双向链表结构;
所述装置还包括:
重启恢复请求接收模块,用于接收内存数据的重启恢复请求;
目标硬盘文件确定模块,用于确定与所述内存数据库对应的目标硬盘文件;
文件数据读取模块,用于打开所述目标硬盘文件,每次首先读取文件标志位,若所述文件标志位不为删除,则按照预设数据结构读取对应的文件数据,并从所述空闲链表的最后端取出第三目标数据结点,将所述文件数据以及所述文件数据的硬盘文件编号和硬盘文件偏移地址存储在所述第三目标数据结点指向的所述结构单元中,同时将所述第三目标数据结点插入到所述哈希表中;若所述文件标志位为删除,则从所述空闲链表的最后端取出第四目标数据结点,并将当前硬盘文件编号和当前硬盘文件偏移地址存储在所述第四目标数据结点中,再将所述第四目标数据结点插入到所述空闲链表的最前端。
7.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的内存数据的管理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的内存数据的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164412.9A CN112947856B (zh) | 2021-02-05 | 2021-02-05 | 一种内存数据的管理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164412.9A CN112947856B (zh) | 2021-02-05 | 2021-02-05 | 一种内存数据的管理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112947856A CN112947856A (zh) | 2021-06-11 |
CN112947856B true CN112947856B (zh) | 2024-05-03 |
Family
ID=76242856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110164412.9A Active CN112947856B (zh) | 2021-02-05 | 2021-02-05 | 一种内存数据的管理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947856B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590212A (zh) * | 2021-06-24 | 2021-11-02 | 阿里巴巴新加坡控股有限公司 | 数据库实例的启动方法、装置及设备 |
CN113535788B (zh) * | 2021-07-12 | 2024-03-05 | 中国海洋大学 | 一种面向海洋环境数据的检索方法、系统、设备及介质 |
CN113641689A (zh) * | 2021-07-22 | 2021-11-12 | 上海云轴信息科技有限公司 | 基于轻量级数据库的数据处理方法及设备 |
CN113608804B (zh) * | 2021-10-11 | 2022-01-04 | 北京华品博睿网络技术有限公司 | 一种可持久化的Java堆外缓存系统及方法 |
CN114090568B (zh) * | 2022-01-24 | 2022-04-19 | 深圳市慧为智能科技股份有限公司 | 脏数据清除方法、装置、终端设备和可读存储介质 |
CN114584482B (zh) * | 2022-02-14 | 2023-09-08 | 阿里巴巴(中国)有限公司 | 基于内存存储检测数据的方法、装置以及网卡 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1940922A (zh) * | 2005-09-30 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种提高搜索信息速度的方法及系统 |
CN101122885A (zh) * | 2007-09-11 | 2008-02-13 | 腾讯科技(深圳)有限公司 | 一种数据缓存处理方法、系统及数据缓存装置 |
US7966293B1 (en) * | 2004-03-09 | 2011-06-21 | Netapp, Inc. | System and method for indexing a backup using persistent consistency point images |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
US9003139B1 (en) * | 2011-09-15 | 2015-04-07 | Symantec Corporation | Systems and methods for recovering virtual machines after disaster scenarios |
WO2016086819A1 (zh) * | 2014-12-05 | 2016-06-09 | 华为技术有限公司 | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
CN106844233A (zh) * | 2016-12-07 | 2017-06-13 | 深圳市德传技术有限公司 | 一种基于哈希表的路由器运行数据缓存方法及系统 |
CN107862064A (zh) * | 2017-11-16 | 2018-03-30 | 北京航空航天大学 | 一个基于nvm的高性能、可扩展的轻量级文件系统 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
CN109407979A (zh) * | 2018-09-27 | 2019-03-01 | 清华大学 | 多线程持久性b+树数据结构设计与实现方法 |
CN110109763A (zh) * | 2019-04-12 | 2019-08-09 | 厦门亿联网络技术股份有限公司 | 一种共享内存管理方法及装置 |
CN110287044A (zh) * | 2019-07-02 | 2019-09-27 | 广州虎牙科技有限公司 | 无锁共享内存处理方法、装置、电子设备及可读存储介质 |
US10635637B1 (en) * | 2017-03-31 | 2020-04-28 | Veritas Technologies Llc | Method to use previously-occupied inodes and associated data structures to improve file creation performance |
CN111177143A (zh) * | 2019-06-12 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 键值数据存储方法、装置、存储介质与电子设备 |
CN111240588A (zh) * | 2019-12-31 | 2020-06-05 | 清华大学 | 一种持久性内存对象存储系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141539B2 (en) * | 2002-05-24 | 2015-09-22 | Oracle International Corporation | System and method for object deletion in persistent memory using bitmap windows |
US8868933B2 (en) * | 2004-03-26 | 2014-10-21 | Absolute Software Corporation | Persistent servicing agent |
US20070294310A1 (en) * | 2006-06-06 | 2007-12-20 | Hitachi, Ltd. | Method and apparatus for storing and recovering fixed content |
US7840752B2 (en) * | 2006-10-30 | 2010-11-23 | Microsoft Corporation | Dynamic database memory management policies |
US9811532B2 (en) * | 2010-05-03 | 2017-11-07 | Panzura, Inc. | Executing a cloud command for a distributed filesystem |
US10691696B2 (en) * | 2017-01-31 | 2020-06-23 | Salesforce.Com, Inc. | Key-value storage using a skip list |
-
2021
- 2021-02-05 CN CN202110164412.9A patent/CN112947856B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966293B1 (en) * | 2004-03-09 | 2011-06-21 | Netapp, Inc. | System and method for indexing a backup using persistent consistency point images |
CN1940922A (zh) * | 2005-09-30 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种提高搜索信息速度的方法及系统 |
CN101122885A (zh) * | 2007-09-11 | 2008-02-13 | 腾讯科技(深圳)有限公司 | 一种数据缓存处理方法、系统及数据缓存装置 |
US9003139B1 (en) * | 2011-09-15 | 2015-04-07 | Symantec Corporation | Systems and methods for recovering virtual machines after disaster scenarios |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
WO2016086819A1 (zh) * | 2014-12-05 | 2016-06-09 | 华为技术有限公司 | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 |
CN106096023A (zh) * | 2016-06-24 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 数据读取方法、数据写入方法及数据服务器 |
CN106844233A (zh) * | 2016-12-07 | 2017-06-13 | 深圳市德传技术有限公司 | 一种基于哈希表的路由器运行数据缓存方法及系统 |
US10635637B1 (en) * | 2017-03-31 | 2020-04-28 | Veritas Technologies Llc | Method to use previously-occupied inodes and associated data structures to improve file creation performance |
CN107862064A (zh) * | 2017-11-16 | 2018-03-30 | 北京航空航天大学 | 一个基于nvm的高性能、可扩展的轻量级文件系统 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
CN109407979A (zh) * | 2018-09-27 | 2019-03-01 | 清华大学 | 多线程持久性b+树数据结构设计与实现方法 |
CN110109763A (zh) * | 2019-04-12 | 2019-08-09 | 厦门亿联网络技术股份有限公司 | 一种共享内存管理方法及装置 |
CN111177143A (zh) * | 2019-06-12 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 键值数据存储方法、装置、存储介质与电子设备 |
CN110287044A (zh) * | 2019-07-02 | 2019-09-27 | 广州虎牙科技有限公司 | 无锁共享内存处理方法、装置、电子设备及可读存储介质 |
CN111240588A (zh) * | 2019-12-31 | 2020-06-05 | 清华大学 | 一种持久性内存对象存储系统 |
Non-Patent Citations (1)
Title |
---|
面向OpenStack/Ceph的虚拟机备份系统研究;杨皓森;胡晓勤;黄传波;;计算机系统应用(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112947856A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112947856B (zh) | 一种内存数据的管理方法、装置、计算机设备及存储介质 | |
KR20210002574A (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
CN107066498B (zh) | 键值kv存储方法和装置 | |
CN111078147A (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN110647514B (zh) | 一种元数据更新方法、装置及元数据服务器 | |
CN107203331B (zh) | 写数据的方法及装置 | |
CN112612799B (zh) | 一种数据同步方法及终端 | |
CN105051708A (zh) | 用于包含存储器节点的分布式存储器系统的设备及方法 | |
CN110597912B (zh) | 一种区块存储方法及装置 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN115576501A (zh) | 一种raid卡的节点更新方法、系统及相关装置 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN113609091B (zh) | 日志管理方法、装置、设备及存储介质 | |
CN110781137A (zh) | 分布式系统的目录读取方法、装置、服务器和存储介质 | |
CN108271420A (zh) | 管理文件的方法、文件系统和服务器系统 | |
CN111061652B (zh) | 一种基于mpi-io中间件的非易失内存管理方法与系统 | |
CN113190384A (zh) | 基于纠删码的数据恢复控制方法、装置、设备及介质 | |
CN112685417A (zh) | 数据库操作方法、系统、装置、服务器及存储介质 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN103714059A (zh) | 一种更新数据的方法及装置 | |
CN114490881A (zh) | 同步数据处理方法、装置、设备及存储介质 | |
CN115129779A (zh) | 数据库的同步方法、装置及可读介质 | |
CN111638980A (zh) | 基于内存映射的消息处理方法、装置、系统和存储介质 | |
CN110716923A (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 |