CN114063883A - 存储数据方法、电子设备和计算机程序产品 - Google Patents
存储数据方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114063883A CN114063883A CN202010758278.0A CN202010758278A CN114063883A CN 114063883 A CN114063883 A CN 114063883A CN 202010758278 A CN202010758278 A CN 202010758278A CN 114063883 A CN114063883 A CN 114063883A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- stored
- storage device
- log
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 claims abstract description 310
- 230000002085 persistent effect Effects 0.000 claims abstract description 62
- 230000015654 memory Effects 0.000 claims description 65
- 238000007726 management method Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/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
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- 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
- 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/0647—Migration mechanisms
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
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)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了一种存储数据的方法、电子设备和计算机程序产品,该方法包括:确定存储系统的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,日志包括待存储数据的记录条目;以及如果确定数目大于阈值数目,使待存储数据从待存储数据所在的日志写入到对应的存储表中,存储表中的数据将被写入存储系统的第二存储装置。以此方式,可以提高存储系统的存储效率。
Description
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及存储数据的方法、电子设备和计算机程序产品。
背景技术
在存储系统中,可以基于树结构来对数据进行存储。常规的存储系统通常包括一个或多个易失性存储器和/或一个或多个非易失性存储设备。易失性存储器例如可以包括随机存取存储器,而非易失性存储设备例如可以包括诸如固态硬盘的存储盘。在存储数据过程中,涉及易失性存储器与非易失性存储设备之间的IO(输入/输出)操作。然而,目前的存储系统中,对于待处理数据,通常采用易失性存储器来处理,这种方式容易在存储系统发生掉电或故障时丢失数据,导致系统存储效率降低。
发明内容
本公开的实施例提供了管理数据存储的方案。
在本公开的第一方面中,提供了一种存储数据的方法。在该方法中,确定存储系统的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,日志包括待存储数据的记录条目。如果确定数目大于阈值数目,使待存储数据从待存储数据所在的日志写入到对应的存储表中,存储表中的数据将被写入存储系统的第二存储装置。
在本公开的第二方面中,提供了一种电子设备,包括:处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行动作。该动作包括:确定存储系统的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,所述日志包括待存储数据的记录条目;以及如果确定所述数目大于阈值数目,使所述待存储数据从所述待存储数据所在的日志写入到对应的存储表中,所述存储表中的数据将被写入所述存储系统的第二存储装置。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法的任意步骤。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示意性地示出了根据本公开的实施例的示例性环境的示意图;
图2示意性地示出了根据本公开的实施例的存储数据的过程的框图;
图3示意性地示出了根据本公开的实施例的分布式存储系统的框图。
图4示意性地示出了根据本公开的实施例的向第二存储装置存储数据的过程的框图;以及
图5示意性地示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“一组示例实施例”。术语“另一实施例”表示“一组另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在存储系统中,可以采用诸如日志结构合并(log structured merge,LSM)树的树结构来存储数据,例如,以键值对的形式来存储相关联的元数据。在诸如LSM的树结构中,待存储数据一般首先被存储在存储表(memtable)中,该存储表通常被包括在易失性存储器(in-volatile-memory)中,其被配置为在存储表中所存储的数据被写入诸如固态硬盘(SSD)的(多个)非易失性存储设备之前存储数据。
由于易失性存储器中的数据是易失的,因此在诸如断电、或系统崩溃等存储表中的数据丢失的情况下,存储表中的数据会丢失。而且,在存储系统中,数据库事务(transaction,即对数据的操作或操作序列)应当满足ACID原则,即,原子性(Atomicity)、一致性(Consistency)、独立性(Isolation)及耐久性(Durability)。至少为了保证原子性和耐久性,一般需要在非易失性存储设备上设置日志存储空间、或者日志块、或者日志盘,来存储与存储表相关联的日志。在下文中,日志有时也被称为日志文件或写前日志(writeahead log)。
例如,可以在存储表中的数据丢失情况下,利用该日志来进行数据恢复(有时也被称为重放,replay)以保证耐久性。因此,待存储数据在写入到存储表之前,一般需要先作为记录条目而存储在日志文件中。为了恢复存储表中的丢失的数据,需要从日志文件中获取所需的记录条目,以恢复易失性存储器中的存储表。这会引起一定的延迟,并且需要将日志中的数据再次写入易失性存储器,从而占用系统资源并且影响存储系统的IO性能。
本公开的实施例提供了一种利用持久性内存来进行数据存储的方法。在该方法中,待写入数据首先被缓存在存储系统的持久性内存中的日志文件,接着,在预定条件满足的情况下,待写入数据从日志文件写入同一持久性内存中的存储表,该存储表将被合并到存储系统的大容量存储装置中。以此方式,可以有效提高存储系统的存储效率。
图1示出了根据本公开实施例的示例性环境100的示意图,在该示例环境中,根据本公开实施例的设备和/或方法可以被实施。如图1所示,存储系统104可以接收来自用户设备的用于存储待存储数据的请求。根据该请求,存储系统104可以将待存储数据存储在适当的位置处,例如,存储在第一存储装置106中或存储在第二存储装置108中。在一些实施例中,存储系统的管理设备110可以使待存储数据首先存储在第一存储装置106中,例如存储在第一存储装置106中的存储表(未示出)中。然后,随着存储系统104的运行以从用户设备接收更多的数据,在满足预定条件的情况下,管理设备110可以使待存储数据从第一存储装置106存储到第二存储装置108中。
可以理解的是,虽然图1仅示出了一个第一存储装置106和一个第二存储装置108,然而本申请对其数目并不限定。在一些实施例中,如将在下面详细讨论的,可以存在多个存储系统节点处的多个第一存储装置,以例如使存储系统具有更高的容错能力。该存储系统节点可以位于不同的地理位置处,并且经由网络进行通信。
在一些实施例中,管理设备110的功能性可以由存储系统中的多个存储节点中的一个存储节点来实现。在一些实施例中,管理设备110可以是存储系统中的部件,例如存储系统内的控制器。在一些其他实施例中,管理设备110也可以与存储系统104通信地耦合在一起。应当理解,上述结构仅仅是示例性的,本公开的实施例对此并不限制。
在本文中使用的术语“第一存储装置”可以指代位于总线上的持久性存储器(persistent memory)。持久性存储器是持久性的,即,在诸如断电、或系统崩溃等情况下,其上存储的数据不会丢失。持久性存储器的成本和容量均优于常规的易失性存储器。持久性存储器中的持久性数据结构可以被设计为替换诸如RAM的常规易失性存储器中的数据结构,以便实现字节可寻址的就地更新和耐久性。
持久性存储器可以利用诸如持久性存储器开发套件以允许应用进行访问。持久性存储器可以被设置以实现常规存储器的功能性,也可以被设置以实现常规存储盘的功能性。
一般而言,RAM的读/写延迟可以是在数十纳秒的量级,持久性存储器读/写延迟可以是在数百纳秒的量级,而根据NVMe协议SSD盘的读/写延迟可以是在微秒的量级。因此,持久性存储器还具有良好的延迟特性。然而,由于采取的协议等与常规存储器不同,其管理方式会有很大的不同,因此,存在针对持久性存储器上的诸如存储表的数据结构设计的需要。
在下文中,第一存储装置有时也被称为“持久性存储装置”或PMEM。
在本文中使用的术语“第二存储装置”可以指代存储盘或存储盘的集合,存储盘可以是各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、串行附接小型计算机系统接口(SCSI)存储盘(SAS)、串行高级技术附接(SATA)存储盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。
下文将结合图2至图4详细描述根据本公开实施例的控制数据存储的过程。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
图2示意性地示出了根据本公开的实施例的存储数据的过程200的框图。为了便于描述,以下结合图3所示的根据本公开的实施例的分布式存储系统300来描述过程200。过程200可以在图1中示出的管理设备110、或图3中示出的管理设备310、或其他适当的设备中实现。应当理解,过程200还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框202,管理设备310可以确定存储系统304的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,日志包括待存储数据的记录条目。
现在参考图3,存储系统304可以包括多个持久性存储装置。例如,存储系统304可以包括如图所示的3个持久性存储装置3061、3062、3063,持久性存储装置3061、3062、3063分别设置于3个存储系统节点3051、3052、3053中。持久性存储装置3061包括日志3121以及存储表3141,持久性存储装置3062包括日志3122以及存储表3142,并且持久性存储装置3063包括日志3123以及存储表3143。在一些实施例中,持久性存储装置可以被设置以起到存储器的作用,但其中存储的(例如,日志和存储表的)数据在诸如断电等情况下是不会丢失的。
可以理解的是,设置多个存储系统节点以及对应的持久性存储装置是为了确保存储系统304的可靠性和冗余度。在一些实施例中,对于没有较高的可靠性要求而无需设置冗余的存储系统,在该存储系统中,可能仅存在一个存储系统节点(例如,存储系统节点3052),本公开的实施例对于这样的存储系统仍然适用。
在一些实施例中,存储表3141、3142、3143可以被设计,以使得从用户设备、甚至第二存储装置的角度来看,该多个存储表被视为一个整体的存储表。
在图3中的具有3节点的分布式存储系统中,一个存储系统节点3052可以被视为主存储系统节点,而其余两个存储系统节点3051、3053可以被视为辅存储系统节点。主存储系统节点被配置为协调辅存储系统节点的操作。因此,在一些实施例中,可以将管理设备310所位于的节点视为主存储系统节点。
存储系统304可以从用户设备接收用于写入待存储数据的请求。在一些实施例中,存储系统节点3051-3053可以同时接收待存储数据。在一些实施例中,待存储数据可以首先由主存储系统节点3052接收,然后,例如,在待存储数据被成功地包括在持久性存储装置3062的日志3122中作为记录条目3131时,管理设备310可以使待存储数据转发给存储系统节点3051、3053、并且因此对应的持久性存储装置3061、3063。
该待存储数据要被存储到存储系统304的树结构中。首先,该待存储数据需要被存储到存储表3141、3142、3143中。出于保证事务的原子性的原因,在被存储到存储表中之前,管理设备310首先使持久性存储装置3061、3062、3063中的日志3121、3122、3123将待存储数据记录作为一记录条目。
在本文中使用的术语“日志”可以具有一数据结构,其被设计为按照写入顺序记录的一序列记录条目,例如,以日志3122作为示例,其中顺序地记录有一序列的记录条目3131、3132、3133,每个记录条目与对应的待存储数据相关联,例如,最近写入的待存储数据被记录在日志队尾处的记录条目3131。在一些实施例中,日志可以使用写前日志(writeahead log)的形式,并且因此记录条目中还应当记录有相关的其他信息,诸如,序列号等。
在一些实施例中,确定至少一个第一存储装置的数目可以包括:接收来自多个持久性存储装置3061、3062、3063中的一个持久性存储装置的确认消息,确认消息指示该持久性存储装置中存储的日志包括待存储数据的记录条目;以及将持久性存储装置确定为第一存储装置。
仍然以图3中的示例来进行说明。在待存储数据被发送给持久性存储装置3061、3062、3063,并且已经被包括在对应的日志中时,对应的持久性存储装置可以向主存储系统节点3052的管理设备310发送确认消息。例如,假设管理设备310除了接收到来自持久性存储装置3062的确认消息之外,还接收到了持久性存储装置3061的确认消息,而由于诸如网络中断等原因未收到来自持久性存储装置3063的确认消息。在上述情况中,管理设备310可以将持久性存储装置3061和3062确定为第一存储装置,并且确定至少一个第一存储装置的数目为2个。
回到参考图2,在框204,管理设备310可以确定至少一个第一存储装置的数目是否大于阈值数目。
阈值数目可以根据存储系统的可靠性要求而设定。在一些实施例中,阈值数目可以被设定使得大多数节点具有包括有待存储数据的日志时,管理设备310可以使待存储数据写入存储表。仍然以图3中的示例来进行说明。在具有3节点的存储系统中,在容忍单节点无响应的情况下,阈值数目可以设置为1。
在框206,如果确定至少一个第一存储装置的数目大于阈值数目,管理设备310可以使待存储数据从待存储数据所在的日志写入到对应的存储表中,存储表中的数据将被写入存储系统的第二存储装置。
再次以图3中具有3节点的存储系统进行说明,如果阈值数目设置为1,则在至少存在2个第一存储装置的情况下,管理设备310可以确定至少一个第一存储装置的数目大于阈值数目。在一些实施例中,管理设备可以仅在接收到来自主存储系统节点3052中的持久性存储装置3062的确认消息的情况下,才确定至少一个第一存储装置的数目大于阈值数目。
然后,管理设备310可以向至少一个第一存储装置发送写入请求,以使待存储数据从至少一个第一存储装置的日志写入到对应的存储表中。例如,在接收到来自持久性存储装置3061、3062、3063的确认消息的情况下,管理设备310可以向持久性存储装置3061、3062、3063发送命令(例如,提交命令),以使与持久性存储装置3061、3062、3063中的日志3121、3122、3123中的记录条目相关联的待存储数据分别写入存储表3141、3142、3143中。在一些实施例中,存储表可以例如以有序的方式存储在一段时间期间写入的多个键值对(key-value)。
在一些实施例中,当上述动作全部完成时,管理设备310可以向用户发送指示写入成功的消息。
在一些实施例中,如果确定至少一个第一存储装置的数目不大于阈值数目,管理设备310使待存储数据的记录条目从每个日志中移除。
在这种情况下,存储系统的可靠性将无法保证。再次以图3中具有3节点的存储系统进行说明,在未接收到来自持久性存储装置3061、3063的确认消息的情况下,管理设备310不会向持久性存储装置3062发送命令以将待存储数据写入存储表3142。在这种情况下,管理设备310使与待存储数据相关联的记录条目3131从日志3122中移除。并且用户请求将被拒绝并失败。在一些实施例中,当上述动作全部完成时,管理设备310可以向用户发送指示写入失败的消息。
以此方式,在至少一个第一存储装置的数目不大于阈值数目时,可以使用日志将待存储数据撤销,从而保证多个节点上的数据的一致性,并且保证数据写入操作的原子性。
在满足预定条件的情况下,存储表中的数据将被写入存储系统304的第二存储装置(图3中未示出)。这将在下面参考图4进行更详细的讨论。
在常规的使用易失性存储器的分布式存储系统中,日志文件一般需要被复制到多个存储系统节点(例如,3个或更多个)的区块或存储盘中,以便在多个存储系统节点中的一个或多个存储系统节点不能使用的情况下,仍能够保证获得日志文件。在这种情况下,在日志重放时,可能需要从跨网络的远程存储节点加载日志文件,这会引入较高的延迟。
根据本公开的实施例,第一存储装置中的存储表自身能够提供针对数据的持久性,因此不需要在第二存储装置中设置用于存储日志文件的区块或存储盘,进而能够省略在系统重启等情况下利用第二存储装置中的日志文件来进行数据恢复(即,重放)的过程,从而节省该过程所花费的时间、以及所占用的系统资源。此外,由于在相同存储系统节点中,第一存储装置中也存储有日志文件,因此不需要从跨网络的远程存储系统节点加载日志文件,从而进一步减小延迟。
在一些实施例中,存储系统304还可以接收针对待读取数据的读取请求。该读取请求将例如在包含管理设备310的存储系统节点3052处进行处理。例如,存储系统节点3052可以协调存储系统节点3051和/或3053,以从它们中的持久性存储装置的存储表中、或第二存储装置中取回待读取数据,从而提供针对该读取请求的一致性。
在下文中,将参考图1和图4来描述如何将数据从第一存储装置存储到第二存储装置。图4示意性地示出了根据本公开的实施例的向第二存储装置存储数据的过程的框图。
如图4所示,在框402,管理设备110可以确定存储表中的已存储数据的大小。在此,由于存储表具有一定的容量,因此,当数据写入到第一存储装置106中的存储表中后,不一定马上被写入诸如固态硬盘的第二存储装置108中。
在框404,管理设备110可以确定已存储数据的大小是否大于阈值大小。该阈值大小可以指示存储表能够存储的数据的大小。由于第一存储装置106采用持久性内存,与常规的易失性存储器相比,其最大容量相对较大,因此在其中的存储表能够存储的数据的大小也可以相对较大。在一些实施例中,阈值大小可以基于存储表所在的第一存储装置106的最大容量而确定,例如,阈值大小可以等于128GB,然而其他大小也是可能的。阈值大小可以被选择,使得当待存储的数据(例如,与元数据相关联的、诸如1KB大小的键值对)被写入到存储表之后,管理设备110确定已存储数据的大小大于该阈值大小的情况下,存储表恰好被写满。
在框406,如果确定已存储数据的大小大于阈值大小,管理设备可以使存储表中的已存储数据从存储表所在的第一存储装置106写入第二存储装置108。
存储表可以是存储系统的树结构中的一部分。由于存储表能够存储的数据是有限的,当在第一存储装置106中的存储表108写满之后,存储表108将被存储到具有更大容量的第二存储装置108中。该过程可以被称为转储,其可以例如通过将存储表合并到树结构中的在第二存储装置108上的另外的表中来实现。这些另外的表可以存储有排序的数据(例如,排序的键值对)。
在一些实施例中,树结构可以采用LSM树结构,第一存储装置106中的存储表108可以位于LSM树结构中的第一层级,第二存储装置108上的另外的表可以位于LSM树结构中的第二层级或更高的层级。每当满足预定条件时,管理设备110将触发较低层级中的表文件向较高层级中的表文件的合并。可以理解的是,合并一个文件到更高层级,可能需要写多个文件,存在一定程度的写放大。
在一些实施例中,在框406被执行之后,管理设备110可以使存储表108清空,以便用于后续新的待存储数据的写入。
如上面所讨论的,将数据从一个存储装置(例如,持久性存储器)存储到另一存储装置(例如,(多个)存储盘)可以被称为转储。由于在诸云存储系统的存储系统中,将存在持续写入的待存储数据,因此,在该存储系统中,可以认为大约间隔预定的时间就要进行一次转储。转储过程将占用大量系统资源(例如,IO资源),影响写速度并且造成写放大,因此,频繁的转储是不被期望的。
相邻的两次转储之间的转储时间可以通过以下的式(1)和式(2)进行计算:
TPS=N/L (1)
T=(C*r)/(K*TPS) (2)
其中TPS表示每秒事务数;N表示并行的线程数,一般地,每单个节点上的表1个线程;L表示针对写入请求的延迟;K表示键值的大小,在通常存储系统中,K可以例如等于1KB;r表示存储器(例如,动态随机存储器、或持久性存储装置)的总容量的利用比率,在通常存储系统中,r可以例如等于0.8或更大;C表示存储表的总容量,即存储表中可存储数据的总大小;T表示转储时间,其可以指示相邻两次转储之间的间隔时间。下面的表1示出了使用动态随机存储器和持久性存储装置(即,上文中所描述的第一存储装置)的存储系统的上述参数的一个典型示例。
表1 DRAM和PMEM中的存储表的示例性参数
由于PMEM的容量远远大于DRAM的容量,因此PMEM中的存储表的容量处于GB的量级(例如,128GB),比处于MB量级的DRAM中的存储表的容量(例如,128MB)大得多。同时,因为上述讨论的原因,利用PMEM中的存储表的存储系统的延迟(例如,200us)比利用DRAM中的存储表的存储系统的延迟(例如,2ms)小得多。在一个示例中,当K与r相同时,利用上述式(1)和式(2)以及表1中的示例性参数可以计算得知,利用PMEM中的存储表的存储系统的转储时间约为20000s,而利用DRAM中的存储表的存储系统的转储时间约俄日200s。因此,利用PMEM中的存储表的存储系统的转储时间比利用DRAM中的存储表的存储系统大的多。
根据本公开的实施例,使用在诸如PMEM的第一存储装置中的存储表来进行数据存储能够显著增加转储时间,从而降低了从第一存储装置向第二存储装置进行存储的转储频率。较小的转储频率进而可以减小写放大,并且实现较高的存储系统稳定性,因此存储系统的存储效率可以提高。
图5示出了可以用来实现本公开的实施例的示例电子设备500的示意性框图。例如,电子设备500可被用于实现图1或图3中所示的管理设备。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元501执行上文所描述的各个方法和处理,例如过程200、400和500中的任一个。例如,在一些实施例中,过程200、400和500中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU 501执行时,可以执行上文描述的过程200、400和500中的任何过程中的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和400中的任一个。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、任意的非暂时性存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在第一存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种存储数据的方法,包括:
确定存储系统的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,所述日志包括待存储数据的记录条目;以及
如果确定所述数目大于阈值数目,使所述待存储数据从所述待存储数据所在的日志写入到对应的存储表中,所述存储表中的数据将被写入所述存储系统的第二存储装置。
2.根据权利要求1所述的方法,其中所述存储系统包括多个持久性存储装置,并且确定所述至少一个第一存储装置的所述数目包括:
接收来自所述多个持久性存储装置中的一个持久性存储装置的确认消息,所述确认消息指示所述持久性存储装置中存储的日志包括所述待存储数据的记录条目;以及
将所述持久性存储装置确定为所述第一存储装置。
3.根据权利要求1的所述的方法,其中使所述待存储数据从每个日志写入到对应的存储表中包括:
如果确定所述数目大于所述阈值数目,向所述至少一个第一存储装置发送写入请求,以使所述待存储数据从所述至少一个第一存储装置的日志写入到对应的存储表中。
4.根据权利要求1所述的方法,还包括:
如果确定所述数目不大于所述阈值数目,使所述待存储数据的所述记录条目从每个日志中移除。
5.根据权利要求1所述的方法,还包括:
确定所述存储表中的已存储数据的大小;以及
如果确定所述已存储数据的所述大小大于阈值大小,使所述存储表中的所述已存储数据从所述存储表所在的第一存储装置写入所述第二存储装置。
6.根据权利要求5所述的方法,其中所述阈值大小基于所述存储表所在的第一存储装置的最大容量而确定。
7.根据权利要求1所述的方法,其中所述存储表是所述存储系统的树结构中的一部分。
8.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
确定存储系统的至少一个第一存储装置的数目,每个第一存储装置是持久性的并且存储有日志,所述日志包括待存储数据的记录条目;以及
如果确定所述数目大于阈值数目,使所述待存储数据从所述待存储数据所在的日志写入到对应的存储表中,所述存储表中的数据将被写入所述存储系统的第二存储装置。
9.根据权利要求8所述的设备,其中所述存储系统包括多个持久性存储装置,并且确定所述至少一个第一存储装置的所述数目包括:
接收来自所述多个持久性存储装置中的一个持久性存储装置的确认消息,所述确认消息指示所述持久性存储装置中存储的日志包括所述待存储数据的记录条目;以及
将所述持久性存储装置确定为所述第一存储装置。
10.根据权利要求8的所述的设备,其中使所述待存储数据从每个日志写入到对应的存储表中包括:
如果确定所述数目大于所述阈值数目,向所述至少一个第一存储装置发送写入请求,以使所述待存储数据从所述至少一个第一存储装置的日志写入到对应的存储表中。
11.根据权利要求8所述的设备,所述动作还包括:
如果确定所述数目不大于所述阈值数目,使所述待存储数据的所述记录条目从每个日志中移除。
12.根据权利要求8所述的设备,所述动作还包括:
确定所述存储表中的已存储数据的大小;以及
如果确定所述已存储数据的所述大小大于阈值大小,使所述存储表中的所述已存储数据从所述存储表所在的第一存储装置写入所述第二存储装置。
13.根据权利要求12所述的设备,其中所述阈值大小基于所述存储表所在的第一存储装置的最大容量而确定。
14.根据权利要求8所述的设备,其中所述存储表是所述存储系统的树结构中的一部分。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010758278.0A CN114063883B (zh) | 2020-07-31 | 2020-07-31 | 存储数据方法、电子设备和计算机程序产品 |
US17/085,799 US11599290B2 (en) | 2020-07-31 | 2020-10-30 | Data storage method, electronic device, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010758278.0A CN114063883B (zh) | 2020-07-31 | 2020-07-31 | 存储数据方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114063883A true CN114063883A (zh) | 2022-02-18 |
CN114063883B CN114063883B (zh) | 2024-08-23 |
Family
ID=80003180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010758278.0A Active CN114063883B (zh) | 2020-07-31 | 2020-07-31 | 存储数据方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11599290B2 (zh) |
CN (1) | CN114063883B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691039A (zh) * | 2022-03-22 | 2022-07-01 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN116744168B (zh) * | 2022-09-01 | 2024-05-14 | 荣耀终端有限公司 | 日志存储方法及相关装置 |
CN118131690B (zh) * | 2024-05-06 | 2024-08-06 | 佛山慧谷科技股份有限公司 | 一种数据采集处理的分发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140379988A1 (en) * | 2013-06-21 | 2014-12-25 | Microsoft Corporation | Cache destaging for virtual storage devices |
CN105786410A (zh) * | 2016-03-01 | 2016-07-20 | 深圳市瑞驰信息技术有限公司 | 一种提高数据存储系统处理速度的方法及数据存储系统 |
CN107979490A (zh) * | 2017-11-17 | 2018-05-01 | 北京联想超融合科技有限公司 | 日志数据的记录方法及服务器集群 |
US10521309B1 (en) * | 2013-12-23 | 2019-12-31 | EMC IP Holding Company LLC | Optimized filesystem walk for backup operations |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US7197571B2 (en) * | 2001-12-29 | 2007-03-27 | International Business Machines Corporation | System and method for improving backup performance of media and dynamic ready to transfer control mechanism |
US20040117414A1 (en) * | 2002-12-17 | 2004-06-17 | Capital One Financial Corporation | Method and system for automatically updating operating systems |
EP2257037A3 (en) * | 2003-07-29 | 2011-06-15 | Ricoh Company, Ltd. | Image forming apparatus as client of a distributed file system, image processing method, image processing program and recording medium |
US8429359B1 (en) * | 2004-12-31 | 2013-04-23 | Symantec Operating Corporation | Method and apparatus for dynamically backing up database files |
FI20065783A0 (sv) * | 2006-12-08 | 2006-12-08 | Nokia Corp | Signalfördistorsion i radiosändare |
US8429425B2 (en) * | 2007-06-08 | 2013-04-23 | Apple Inc. | Electronic backup and restoration of encrypted data |
US8943271B2 (en) * | 2008-06-12 | 2015-01-27 | Microsoft Corporation | Distributed cache arrangement |
US8538919B1 (en) * | 2009-05-16 | 2013-09-17 | Eric H. Nielsen | System, method, and computer program for real time remote recovery of virtual computing machines |
JP5533102B2 (ja) * | 2010-03-23 | 2014-06-25 | コニカミノルタ株式会社 | 画像形成装置 |
US8572031B2 (en) * | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US20180107591A1 (en) * | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
US9229818B2 (en) * | 2011-07-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Adaptive retention for backup data |
JP5838810B2 (ja) * | 2011-12-28 | 2016-01-06 | 富士通株式会社 | バックアップ制御プログラム、バックアップ制御方法およびバックアップ制御装置 |
US20130290636A1 (en) * | 2012-04-30 | 2013-10-31 | Qiming Chen | Managing memory |
JP6041546B2 (ja) * | 2012-06-08 | 2016-12-07 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
KR102094334B1 (ko) * | 2013-03-15 | 2020-03-27 | 삼성전자주식회사 | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 |
US20150039660A1 (en) * | 2013-07-31 | 2015-02-05 | Cleversafe, Inc. | Co-locate objects request |
US9934099B1 (en) * | 2014-05-29 | 2018-04-03 | EMC IP Holding Company LLC | Dynamically pausing large backups |
US20170310362A1 (en) * | 2016-04-21 | 2017-10-26 | Lior Ben David | Data Backup and Charging Device for Communication Devices |
CN106980558A (zh) * | 2017-04-05 | 2017-07-25 | 广东欧珀移动通信有限公司 | 备份数据的清理方法及移动终端 |
US10339058B2 (en) * | 2017-05-16 | 2019-07-02 | Qualcomm Incorporated | Automatic cache coherency for page table data |
US11599557B2 (en) * | 2018-06-12 | 2023-03-07 | Open Text Corporation | System and method for persistence and replication of changes to a data store |
US20200019330A1 (en) * | 2018-07-11 | 2020-01-16 | EMC IP Holding Company LLC | Combined Read/Write Cache for Deduplicated Metadata Service |
US20200019476A1 (en) * | 2018-07-11 | 2020-01-16 | EMC IP Holding Company LLC | Accelerating Write Performance for Microservices Utilizing a Write-Ahead Log |
US10705921B2 (en) * | 2018-07-31 | 2020-07-07 | EMC IP Holding Company LLC | Client data driven smart backup scheduler |
CN111124255B (zh) * | 2018-10-31 | 2023-09-08 | 伊姆西Ip控股有限责任公司 | 数据存储方法、电子设备和计算机程序产品 |
US10872041B2 (en) * | 2018-12-05 | 2020-12-22 | Intel Corporation | Method and apparatus for journal aware cache management |
EP3669268A4 (en) * | 2019-09-12 | 2020-12-23 | Alibaba Group Holding Limited | NEWSPAPER STRUCTURE STORAGE SYSTEMS |
CN111183420B (zh) * | 2019-09-12 | 2023-06-30 | 创新先进技术有限公司 | 日志结构存储系统 |
CN111124275B (zh) * | 2019-11-15 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 一种分布式块存储系统的监控服务优化方法及装置 |
CN111190874B (zh) * | 2019-12-27 | 2023-10-03 | 天津中科曙光存储科技有限公司 | 一种分布式存储的高可靠数据日志模块及其构建方法 |
-
2020
- 2020-07-31 CN CN202010758278.0A patent/CN114063883B/zh active Active
- 2020-10-30 US US17/085,799 patent/US11599290B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140379988A1 (en) * | 2013-06-21 | 2014-12-25 | Microsoft Corporation | Cache destaging for virtual storage devices |
US10521309B1 (en) * | 2013-12-23 | 2019-12-31 | EMC IP Holding Company LLC | Optimized filesystem walk for backup operations |
CN105786410A (zh) * | 2016-03-01 | 2016-07-20 | 深圳市瑞驰信息技术有限公司 | 一种提高数据存储系统处理速度的方法及数据存储系统 |
CN107979490A (zh) * | 2017-11-17 | 2018-05-01 | 北京联想超融合科技有限公司 | 日志数据的记录方法及服务器集群 |
Also Published As
Publication number | Publication date |
---|---|
CN114063883B (zh) | 2024-08-23 |
US11599290B2 (en) | 2023-03-07 |
US20220035548A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9146684B2 (en) | Storage architecture for server flash and storage array operation | |
EP3206128B1 (en) | Data storage method, data storage apparatus, and storage device | |
US10831741B2 (en) | Log-shipping data replication with early log record fetching | |
US9251021B2 (en) | Asynchronous replication in a distributed storage environment | |
US10769035B2 (en) | Key-value index recovery by log feed caching | |
CN114063883B (zh) | 存储数据方法、电子设备和计算机程序产品 | |
US10599630B2 (en) | Elimination of log file synchronization delay at transaction commit time | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
US10261696B2 (en) | Performance during playback of logged data storage operations | |
US10628298B1 (en) | Resumable garbage collection | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
US20200341674A1 (en) | Method, device and computer program product for restoring data | |
US11226875B2 (en) | System halt event recovery | |
US10664406B2 (en) | Coordinated utilization of parallel paths to improve efficiency | |
US11256716B2 (en) | Verifying mirroring of source data units to target data units | |
CN116868173A (zh) | 降低在恢复操作期间网络延时的影响 | |
US20200026631A1 (en) | Dynamic i/o monitoring and tuning | |
US10248353B2 (en) | Dynamicly freeing storage space in tiered storage systems | |
KR101887741B1 (ko) | 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms | |
JP5490067B2 (ja) | 障害管理装置及びプログラム |
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 |