CN113220236B - 一种数据管理方法、系统及设备 - Google Patents
一种数据管理方法、系统及设备 Download PDFInfo
- Publication number
- CN113220236B CN113220236B CN202110534310.1A CN202110534310A CN113220236B CN 113220236 B CN113220236 B CN 113220236B CN 202110534310 A CN202110534310 A CN 202110534310A CN 113220236 B CN113220236 B CN 113220236B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- target
- block
- determining
- 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 50
- 238000013523 data management Methods 0.000 title claims abstract description 33
- 230000001360 synchronised effect Effects 0.000 claims description 40
- 239000010410 layer Substances 0.000 claims description 28
- 230000008439 repair process Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 13
- 239000011229 interlayer Substances 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 230000002045 lasting effect Effects 0.000 claims description 3
- 230000002688 persistence Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 230000002085 persistent effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- 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/064—Management of blocks
-
- 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]
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)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据管理方法、系统及设备,该方法由分布式存储系统中的主节点执行,分布式存储系统包括:主节点以及至少一个从节点,方法包括:当监测到满足修复条件时,根据待修复文件向各从节点发送数据请求信息;根据各从节点的反馈信息调整各从节点和主节点的文件树高度,形成目标文件树;读取各目标文件树中的各间接块,确定目标数据块;根据各目标数据块的版本号对各目标数据块中的数据进行修复。将各节点的文件树调整至一样的高度,通过比较各间接块确定数据不一致的目标数据块,进而根据版本号对目标数据块中的数据进行修复。在数据修复时无需丢弃任意节点,避免了数据丢失。无需保留所有操作日志,节省了系统的存储空间。
Description
技术领域
本发明实施例涉及分布式技术领域,尤其涉及一种数据管理方法、系统及设备。
背景技术
在分布式存储中,文件数据需要存储在不同的计算机和不同的磁盘之间来达到冗余备份的需要。但是由于传输到不同的计算机和写入不同的介质之间存在着一定的时间差异,由于网络或者节点故障而造成节点之间的数据存在内容差异。
传统的节点存储方式,基于文件版本或者时间戳无法感知内容本身的差异,只能够选择一个节点的数据并丢弃其余的节点的数据,假如在不同的节点中都做了互不重叠的修改,那只选择其一会造成不必要的数据丢失。
而基于事务日志的方式修复差异,则需要在系统降级期间保留所有操作日志直到故障节点恢复,对于存储空间浪费较大,日志内容过多会影响系统的响应速度,也可能由于日志空间受限制而在系统降级期间阻塞新数据的写入,影响系统的可用性。
发明内容
本发明提供一种数据管理方法、系统及设备,以实现数据的快速修复。
第一方面,本发明实施例提供了一种数据管理方法,由分布式存储系统中的主节点执行,所述分布式存储系统包括:主节点以及至少一个从节点,所述方法包括:
当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息;
根据各所述从节点的反馈信息调整各所述从节点和主节点的文件树高度,形成目标文件树;
读取各所述目标文件树中的各间接块,确定目标数据块;
根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复。
第二方面,本发明实施例还提供了一种数据管理系统,包括:主节点和至少一个从节点;
所述主节点包括:
请求发送模块,用于当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息;
文件树形成模块,用于根据各所述从节点的反馈信息调整各所述从节点和主节点的文件树高度,形成目标文件树;
数据块确定模块,用于读取各所述目标文件树中的各间接块,确定目标数据块;
修复模块,用于根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复。
第三方面,本发明实施例还提供了一种计算机设备,作为所述数据管理系统中的主节点,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的一种数据管理方法。
本发明实施例提供了一种数据管理方法、系统及设备,该方法由分布式存储系统中的主节点执行,分布式存储系统包括:主节点以及至少一个从节点,方法包括:当监测到满足修复条件时,根据待修复文件向各从节点发送数据请求信息;根据各从节点的反馈信息调整各从节点和主节点的文件树高度,形成目标文件树;读取各目标文件树中的各间接块,确定目标数据块;根据各目标数据块的版本号对各目标数据块中的数据进行修复。将各从节点和主节点的文件树调整至一样的高度读取间接块,通过比较各目标文件树的间接块确定数据不一致的目标数据块,进而根据版本号对目标数据块中的数据进行修复。在数据修复时无需丢弃任意节点,避免了数据丢失。并且,无需保留所有操作日志,节省了系统的存储空间,提高系统可用性。
附图说明
图1是本发明实施例一中的一种数据管理方法的流程图;
图2是本发明实施例一中的一种文件树的结构示意图;
图3是本发明实施例一中的一种块指针所包含信息的示意图;
图4是本发明实施例二中的一种数据管理方法的流程图;
图5是本发明实施例二中的一种数据管理方法中确定待修复文件的实现流程图;
图6是本发明实施例二中的一种文件树中数据块内容摘要的结构示例图;
图7是本发明实施例二中的一种文件更新操作处理流程的示例图;
图8是本发明实施例三中的一种数据管理系统的结构示意图;
图9是本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
实施例一
图1给出了本申请实施例一提供的一种数据管理方法的流程示意图,该方法由分布式存储系统中的主节点执行,所述分布式存储系统包括:主节点以及至少一个从节点。
如图1所示,本实施例一提供的一种数据管理方法,具体包括如下步骤:
S110、当监测到满足修复条件时,根据待修复文件向各从节点发送数据请求信息。
在本实施例中,修复条件具体可以理解为判断主节点是否启动文件修复的条件。待修复文件具体可以理解为需要进行修复的文件;数据请求信息具体可以理解为主节点为了获取各从节点的数据所发送的请求。
具体的,主节点在工作过程中,时刻监测各文件的状态,如果文件的状态满足修复条件,例如,文件存在修复标记,则认为此文件满足修复条件。将此文件作为待修复文件,然后根据此待修复文件生成数据请求信息,数据请求信息可以包括待修复文件的基本信息(如文件名称,文件标识等可以唯一识别文件的信息)、从节点所需要响应的信息等,以便从节点可以确定向主节点反馈的信息,数据请求信息还可以是按照预先设定的格式生成,从节点接收到数据请求信息后即可知道主节点所需要的信息。主节点向各从节点发送数据请求信息,等待各从节点的响应。
需要知道的是,本申请中的主节点在进行数据修复时,所修复的文件是以一个文件为例,即本申请以对一个文件进行修复为例,说明本申请的数据管理过程,其余文件的修复过程与本申请实施例中的文件修复过程一致。其中,主节点和从节点均为节点,本申请实施例中的节点可以是存储了副本的通信节点,主节点即为存储主副本的通信节点,从节点即为存储从副本的通信节点。
本申请中进行数据修复的时机可以是用户进行操作时,检测到用户所操作的文件满足修复条件时进行后续的修复;或者时刻检查文件,当检查到文件满足修复条件时进行后续的修复。本申请实施例对数据修复的时机不进行任何限定,只要满足修复条件就可以进行修复,进而实现数据管理。
S120、根据各从节点的反馈信息调整各从节点和主节点的文件树高度,形成目标文件树。
在本实施例中,反馈信息具体可以理解为各从节点对数据请求信息进行响应时得到的信息。各从节点和主节点存储数据以文件树的形式进行存储,文件树高度具体可以理解为各从节点和主节点所对应文件树的高度。目标文件树具体可以理解为主节点和各从节点的文件树调整高度后所形成的文件树。
具体的,各从节点接收到主节点发送的数据请求信息后,根据数据请求信息查询对应的待修复文件,形成反馈信息,并将反馈信息返回至主节点。反馈信息为空洞信息,用户在对文件执行某些操作时会产生空洞信息(如,truncate操作、extend操作),各节点通过采用设定的字节存储空洞信息,并在接收到数据请求信息时,查询对应的待修复文件,根据待修复文件对应的空洞信息形成反馈信息进行反馈。
主节点接收到各从节点发送的反馈信息后,根据反馈信息所反映的空洞对各从节点和主节点的文件树进行空间释放,并将各从节点和主节点的文件树高度调整为一致,得到各节点的目标文件树。
S130、读取各目标文件树中的各间接块,确定目标数据块。
在本实施例中,目标数据块具体可以理解为目标文件树中需要进行修复的数据块。最上层的间接块指向下一层的各间接块,下一层的每个间接块依次指向更下层的间接块,最终指向存储数据的数据块。由此构成了树形结构的文件树。
示例性的,图2为本发明实施例所提供的一种文件树的结构示意图,由图2可知,文件元数据11以键值对key-value的形式进行数据存储,key中包含了文件身份标识inodeID,value中包括了:文件逻辑大小size,文件最后一个数据块编号(从1开始算)max_blk_id,文件顶端间接块位置offset,同步所需附加信息sync_info。文件元数据中的文件顶端间接块位置为顶层间接块21,顶层间接块中包含了多个块指针,每个块指针指向下一层的间接块22。下一层的间接块22同样包含多个块指针,每个块指针同样指向下一层的间接块23,直到指向数据块层的数据块31。其中,间接块的层数根据实际数据需求确定,为1到N层,N为正整数,图中仅示例性的给出第1层和第N层的间接块。数据块31的数量根据实际数据存储需求确定,数据块31的ID取值范围为0,1,2,…,N+1,…max_blk_id,max_blk_id为正整数。间接块如果为最底层间接块,包含多个指向数据块的数据指针;如果是中间层间接块,包含多个下级间接块的数据指针。real_size(文件的实际大小)=max_blk_id*data_block_size,real_size为文件在磁盘上实际的大小(包含文件中间的空洞,但不包括文件末尾的空洞),data_block_size是一个数据块的大小,根据max_blk_id可以推算出文件树的高度。对于文件树,其子树均为满树(对于有空洞的间接块或数据块,也会为此间接块或数据块计数,所以从这层叶子结点看,就是满的)。每个间接块指向的间接块或者数据块的个数是相同的,所以根据最底层有多少个数据块,可以倒退到数第二层有几个间接块,以此类推,可以推出整棵文件树每一层有几个间接块或数据块,以及总共几层。其中,(max_blk_id-1)*data_block_size<size。
图3为本发明实施例所提供的一种块指针所包含信息的示意图,如图3所示,块指针包含了数据块位置offset、数据块大小data_block_size、数据块版本version、防静默错误摘要checksum和数据块内容摘要content checksum。防静默错误摘要checksum指向的数据块的全部摘要(包括数据块本身的元数据部分),主要为了检查到写入本地磁盘过程中或者磁盘寿命周期内的静默错误。由于不同的副本中文件在磁盘的存储位置不一样,数据指针有差异,所以checksum在副本之间会有差异。数据块内容摘要content checksum为对数据内容部分的摘要,如果指向间接块,则计算方式为间接块中所有数据指针的contentchecksum部分拼在一起计算出来的哈希校验码(跟hash tree的概念类似);如果指向数据块,则计算方式与checksum字段相同。数据块内容摘要主要用于检查分布式环境下数据的一致性。
读取每个节点的目标文件树中的各间接块,比较同一层次的各间接块是否一致,若一致,说明其最终指向的数据块的数据信息也是一致的,省略对此间接块的查询。若不一致,向其指向的间接块继续查询,直到找到不一致的数据块,将其确定为目标数据块。
S140、根据各目标数据块的版本号对各目标数据块中的数据进行修复。
具体的,每个目标数据块均具有对应的版本号,版本号可以反映上一次更新的时间,通过比较每个目标数据块的版本号的高低,确定最高版本的目标数据块,通过此目标数据块中的数据信息对其他目标数据块中的数据进行修复。
本发明实施例提供了一种数据管理方法,该方法由分布式存储系统中的主节点执行,分布式存储系统包括:主节点以及至少一个从节点,方法包括:当监测到满足修复条件时,根据待修复文件向各从节点发送数据请求信息;根据各从节点的反馈信息调整各从节点和主节点的文件树高度,形成目标文件树;读取各目标文件树中的各间接块,确定目标数据块;根据各目标数据块的版本号对各目标数据块中的数据进行修复。将各从节点和主节点的文件树调整至一样的高度读取间接块,通过比较各目标文件树的间接块确定数据不一致的目标数据块,进而根据版本号对目标数据块中的数据进行修复。在数据修复时无需丢弃任意节点,避免了数据丢失。并且无需保留所有操作日志,节省了系统的存储空间,提高系统可用性。
实施例二
图4为本发明实施例二提供的一种数据管理方法的流程图。本实施例的技术方案在上述技术方案的基础上进一步细化,具体主要包括如下步骤:
S210、当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息。
在对待修复文件进行修复之前,首先需要确定待修复文件,本申请实施例在确定待修复文件时,将节点具体化为副本,以此为例说明待修复文件的确定过程。
作为本发明实施例的一个可选实施例,本实施例进一步在当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息之前优化包括了S211-S216,如图5所示,图5提供了一种数据管理方法中确定待修复文件的实现流程图。
S211、在当前提交周期生成待同步文件和目标文件更新请求,并向各所述从节点发送目标文件更新请求。
需要知道的是,系统正常运行时,每隔一段时间,存储系统中每台主机的副本程序将一批操作以原子方式更新到磁盘,我们称之为commit动作。假如负责维护特定副本的程序在任何时候异常终止,这批操作要么全部成功要么全部失败)。可将每次提交commit的间隔时间称为一个commit周期。每次commit对应一个唯一的版本号。同一批commit的多个操作传输到不同的主机上未必要求完整(考虑到潜在的网络故障丢失部分操作指令),但需要保证同一批次中的事件传输及执行过程中先后顺序不变(否则会导致预期之外的文件内容,比如不能出现偏移相互冲突的write,truncate发送到其他副本上得到truncate,write的情况)。
在本实施例中,当前提交周期具体可以理解为当前进行commit动作的周期。待同步文件具体可以理解为根据用户的操作所形成的、需要同步到各从节点的文件。目标文件更新请求具体可以理解为指示从节点进行文件更新的请求。
具体的,在当前提交周期对用户的操作进行响应,生成待同步文件,并根据用户的操作和当前提交周期的版本号生成目标文件更新请求,将目标文件更新请求发送给各从节点。
作为本实施例的一个可选实施例,本可选实施例进一步将在当前提交周期生成待同步文件和目标文件更新请求优化为:
1a、生成当前提交周期的当前版本号,并处理当前提交周期的当前文件更新请求,生成相应的待同步文件,当前文件更新请求为用户触发生成。
在本实施例中,当前版本号具体可以理解为当前提交周期所对应的版本号,数据在进行commit时,不同的提交周期具有不同的版本号,在开始一个新的提交周期时,首先为此周期生成对应的版本号。当前文件更新请求具体可以理解为当前提交周期所处理的用户请求,例如write、truncate操作等。
具体的,在当前提交周期开始时,生成当前提交周期使用的当前版本号,版本号可以包括:一定精度的时间戳(如秒、毫秒等)、部署节点的主机的标识ID、自增整数。通过上述数据可以在不同的主机之间生成完全不会重复的版本号,并且版本号之间满足时间先后的偏序关系,可以进行版本号比较的操作。处理当前提交周期内由用户触发发送的当前文件更新请求,生成相应的待同步文件。
1b、根据当前版本号对当前文件更新请求进行版本标记,生成目标文件更新请求。
具体的,将当前文件更新请求的版本号设置为当前版本号,将标记了当前版本号的当前文件更新请求作为目标文件更新请求。
S212、对待同步文件标记临时信息并生成主节点文件。
在本实施例中,临时信息具体可以理解为用来标记文件的信息,为分布式系统中数据同步所需的附加信息sync_info;主节点文件具体可以理解为主节点对用户的当前文件更新请求进行响应后所生成的永久保存的文件。
对待同步问价进行临时信息标记,临时信息可以采用sync_info进行标记。sync_info采用键值对的形式,key值中存储文件ID,value值中存储用于描述变更的附加信息,此附加信息记录如truncate造成的空洞空间起止位置的相关描述信息。所有的临时信息可以通过一个数据表存储。将待同步文件存储为主节点文件。
作为本实施例的一个可选实施例,本可选实施例进一步将生成主节点文件优化为:当监测到当前提交周期结束时,将待同步文件进行持久化落盘,得到主节点文件。
在当前提交周期结束,即终止时,进行commit操作,将待同步文件进行持久化落盘,生成主节点文件,保证此次当前提交周期的所有修改持久化落盘。
需要知道的是,对待同步文件标记临时信息的时机可以是在当前提交周期结束时,直接将待同步文件进行临时信息标记。
作为本实施例的一个可选实施例,本可选实施例进一步优化包括了在生成主节点文件之后,向各从节点发送周期结束请求,以使各从节点进行持久化落盘并生成提交结果。
在本实施例中,周期结束请求具体可以理解为通知各从节当前提交周期结束的数据请求。主节点在进行持久化落盘生成主节点文件后,向各从节点发送周期结束请求,通知各从节点进行commit操作。各从节点接收到周期结束请求后,将当前提交周期内执行目标文件更新请求对应的操作形成的更新进行持久化落盘并生成提交结果。
S213、接收各从节点根据目标文件更新请求生成并反馈的提交结果。
各从节点分别执行目标文件更新请求所对应的操作,并进行持久化落盘。将持久化落盘后文件的版本号、文件大小、数据块内容摘要信息组成提交结果发送给主节点。
S214、比较各提交结果和主节点文件得到比较结果,若比较结果为一致,执行S215;若比较结果为不一致,执行S216。
提交结果中包含了多种信息,一一比对提交结果和主节点文件中的信息,如果信息均一致,则确定比较结果为一致,否则,比较结果为不一致。
进一步地,提交结果包括:版本号、文件大小和数据块内容摘要,作为本实施例的一个可选实施例,本可选实施例进一步将比较各提交结果和主节点文件得到比较结果优化为:如果提交结果中的版本号、文件大小和数据块内容摘要和主节点文件中的版本号、文件大小和数据块内容摘要均一致,则确定比较结果为一致。
具体的,提交结果和主节点文件中均具有版本号、文件大小和数据块内容摘要,依次比较每个提交结果和主节点中的版本号、文件大小和数据块内容摘要,只要其中一样不一致,比较结果即为不一致。当所有提交结果和主节点文件中的版本号、文件大小和数据块内容摘要都一致,比较结果才为一致。
示例性的,图6提供了一种文件树中数据块内容摘要的结构示例图,如图6所示,图中以包含8个数据块为例,数据块内容摘要通过采用哈希树的结构存储数据,顶层间接块41指向下一层的间接块42,间接块42指向下一层的间接块43,间接块43最终指向数据块51。如果数据块51的数据发生改变,顶层间接块41的数据块内容摘要一定会发生改变,所以通过比较数据块内容摘要就可以确定文件是否发生了改变。
S215、清除待同步文件的临时信息。
S216、将待同步文件确定为待修复文件。
清除待同步文件的临时信息可以释放空间,避免空间一直被占用。如果待同步文件的临时信息被清除,此待同步文件在各节点中存储的数据一致,无需修复。如果待同步文件的临时信息没有被清除,此待同步文件在各节点中存储的数据存在不一致,此时的待同步文件需要进行修复,将其确定为待修复文件。在确定待修复文件后,可以直接进行修复,也可以生成新的当前提交周期,继续处理用户的当前文件更新请求,后续再进行数据修复。
示例性的,图7提供了一种文件更新操作处理流程的示例图,本示例图以主节点61和一个从节点62为例,说明文件更新操作的处理流程,文件更新操作是一个周期性重复发生并执行的操作,通过loop表示此流程是循环反复处理的流程,图中以一次处理流程为例说明文件更新操作的处理流程。用户在进行文件更新操作时,首先需要向主节点61发送请求。主节点61首先在当前提交周期生成当前提交周期的当前版本号next_version,然后接收当前提交周期内用户发送的当前文件更新请求(如,写请求)。处理用户的当前文件更新请求,并生成待同步文件。将当前版本号作为当前提交周期对应的版本号,将当前文件更新请求采用当前版本号进行版本标记,生成目标文件更新请求。异步发送目标文件更新请求至从节点62。从节点62接收到目标文件更新请求后,处理目标文件更新请求,其中,目标文件更新请求可以是多个操作所形成的数据流,即当前提交周期内用户执行的操作可以不止一个,目标文件更新请求相应为多个。多个目标文件更新请求形成复制流,从节点62每接收一个目标文件更新请求,向主节点61反馈一个应答消息ack。在当前提交周期结束时,主节点61进行commit操作,将待同步文件进行临时信息标记,同时将待同步文件进行持久化落盘,得到主节点文件,并向从节点62发送commit请求(周期结束请求),通知从节点62进行commit操作。从节点62在接收到commit请求后,执行commit操作,生成提交结果,将提交结果回复给主节点61,提交结果包括:版本号、文件大小和数据块内容摘要。主节点61根据从节点62的提交结果,确定各节点的数据是否一致,若一致,则清理待同步文件的临时信息sync_info标记;否则,将待同步文件确定为待修复文件,以便后续进行数据修复。
只要文件中的任意数据块的数据发生改变,其数据块内容摘要一定发生改变,通过此种方式存储数据,可以实现文件的快速比对。只需要比较数据块内容摘要即可检查数据的一致性。并且通过标记临时信息可以快速筛选文件,对于没有标记临时信息的文件,其一定是没有发生过改变的文件,在进行数据修复时,可以直接省略对此类文件的检查。仅需要对标记了临时信息的文件进行修复即可。实现了文件修复前对文件的快速比对检查,无需遍历所有文件即可找到需要修复的文件。
S220、根据各反馈信息确定待释放空间以及各待释放空间所对应的目标版本。
在本实施例中,待释放空间具体可以理解为未存储数据的空洞;目标版本为形成各待释放空间时的版本信息,即在哪一个版本形成的此待释放空间。
具体的,从节点在执行操作时,将元组(如,truncate操作释放的文件offset空间,到文件更新前的size)合并记录在某一固定字段中,如sync_info的free_range中。针对每个从节点,此从节点反馈的反馈信息中包含了从节点的所有空洞信息(free_range),根据free_range中的信息,确定所有需要释放的待释放空间,同时确定每个待释放空间对应的目标版本。
示例性的,通过对反馈信息进行分析确定第一个空洞开始位置为ID1,结束位置为ID3,第二个空洞开始位置为ID6,结束位置为ID7,第三个空洞开始位置为ID7,结束位置为ID10,相应得到的待释放空间为ID1-ID3,ID6-ID10。
可以知道的是,如果待释放空间不存在,则每个节点的文件树无需调整即为此节点对应的目标文件树(此时即使进行了调整也不会改变文件树)。如果待释放空间存在,进行后续的空间释放和文件树高度调整。
S230、根据各待释放空间和目标版本进行空间释放。
通过判断待释放空间在目标版本之后的版本中是否重新进行了数据写入的操作,确定待释放空间是否需要进行空间释放。
作为本实施例的一个可选实施例,本可选实施例进一步将根据各待释放空间和目标版本进行空间释放优化为:
2a、遍历各从节点和主节点的文件树结构,如果待释放空间在高于目标版本的版本中执行了写入数据操作,则将待释放空间确定为免释放空间。
在本实施例中,免释放空间具体可以理解为无需进行空间释放的数据存储空间。遍历各从节点和主节点的文件树结构,针对每个待释放空间,判断在待释放空间的目标版本之后的更高版本中,是否执行了写入数据操作,如果是,则由于此待释放空间又写入了数据,所以此待释放空间不需要释放,将其确定为免释放空间。
2b、根据各免释放空间筛选待释放空间,得到目标释放空间,并对各目标释放空间进行空间释放。
在本实施例中,目标释放空间具体可以理解为实际应该进行空间释放的存储空间。从待释放空间中去除免释放空间,将剩余的空间作为目标释放空间,然后对目标释放空间进行空间释放。
需要知道的是,对于各待释放空间,还可以构建待释放空间列表,列表中存储:开始、结束、版本号的相应信息。相应的,在确定了免释放空间后,将待释放空间列表中的免释放空间删除,剩余的待释放空间即为目标释放空间。
S240、确定空间释放后的各从节点和主节点的文件树高度,并确定最高值。
对于空间释放后的主节点和各从节点,确定每个节点的文件树高度,文件树的层数即为文件树的高度,并通过比较文件树高度确定最高值,即最高的文件树高度。
S250、根据最高值调整各文件树的高度,形成目标文件树。
在空间释放后,对于有些节点,文件大小(size)更大,释放的空间均为中间区域(空洞),所有的空间释放完毕后,仍保留了尾部区域数据,所以可能出现文件树的高度大于其它节点的情况。由于文件树的高度可能会减小,为了保证所有节点的文件树高度统一,根据最高值调整各文件树的高度,即将所有节点的文件树高度统一至最高值。对于文件树高度恰好为最高值的文件树,无需进行调整,对于低于最高值的文件树则需要在顶部增加新的间接块节点。新增的间接块填入指向原来的顶层间接块的指针。
S260、读取各目标文件树中的各间接块,并对比相同数据指针所对应的间接块。
对于每个目标文件树,从根部开始读取目标文件树的各间接块,比对同一数据指针在不同目标文件树中对应的间接块。例如,指针1在节点A的目标文件树A1中的间接块为A11,指针1在节点B的目标文件树B1中的间接块为B11,指针1在节点C的目标文件树C1中的间接块为C11,比较间接块A11、间接块B11和间接块C11。
S270、如果同一数据指针所对应间接块的数据块内容摘要不一致,则按照数据指针深度递归到目标最底层间接块。
在本实施例中,目标最底层间接块具体可以理解为同一指针在不同文件树中所指向的不一致的最底层间接块中,即不同文件树的均具有一个或者多个最底层间接块,当同一指针所指向的最底层间接块不一致时,此最底层间接块即为目标最底层间接块。
间接块中包含数据块内容摘要,通过比较数据块内容摘要即可快速实现文件比对。比较同一个数据指针所对应的间接块的数据块内容摘要是否一致,如果一致,则省略对此间接块的查询,如果不一致,则按照数据指针深度递归到最底层间接块,其最终目的是为了找到数据块内容摘要不一致的间接块。
S280、确定目标最底层间接块所指向的数据块以及目标指针。
在本实施例中,目标指针具体可以理解为目标最底层间接块指向各数据块的指针。确定目标最底层间接块后,即可以确定其指向的数据块和对应的目标指针。
S290、比较各目标文件树中目标指针所对应数据块的数据信息,将数据信息不一致的数据块确定为目标数据块。
比较目标指针所指向的数据块的数据信息,如果数据信息不一致,此数据块为发生了改变的数据块,需要对其进行修复,将其确定为目标数据块,以便后续进行修复。
以两个节点为例,每个节点的数据块内容摘要的结构图均为图6所示的结构,如果数据块ID为1的数据块的数据信息发生改变,则相应的间接块B12的数据块内容摘要会发生改变,相应的B1234的数据块内容摘要也发生改变。节点1和节点2文件树中的间接块B1234和B12的数据块内容摘要不同,此时在进行查询比对时,首先确定间接块B1234不同,间接块B5678相同,则省略后续对其所指向的间接块的检查。间接块B1234不同,按照数据指针深度递归,分别比较两个节点中的B12、B34是否一致,两个节点中的B34一致,省略对B34所指向的数据块的检查。间接块B12不一致,由于B12已经是最底层间接块了,所以确定间接块B12为目标最底层间接块。间接块B12指向数据块1和数据块2,确定目标指针1和目标指针2。比较目标指针1分别在节点1和节点2的目标文件树中指向的数据块1的数据信息,比较两个数据信息是否一致,由于数据块1的数据信息发生了改变,所以两个数据信息不一致,将数据块1确定为目标数据块。同样的方式比较数据块2,数据块2未发生改变,所以数据信息一致。
S291、比较各目标数据块的版本号,并确定最高版本号。
在本实施例中,最高版本号具体可以理解为版本最新的版本号。由于版本号再生成时采用时间、自增整数的方式进行生成,所以版本号是可比较的。比较各节点的目标数据块的版本号,确定最高版本号。
S292、将最高版本号所对应目标数据块中的数据信息确定为目标数据信息。
确定最高版本号对应的目标数据块的数据信息,此数据信息为最新数据信息,将其作为目标数据信息。
S293、通过目标数据信息替换各目标数据块中的数据信息。
采用目标数据信息替换掉其他目标数据块中的数据信息,实现数据修复。在进行替换时,可以不替换最高版本号所对应的目标数据块的数据信息,也可以替换,结果是一致的。
本发明实施例提供了一种数据管理方法,该方法通过对待同步文件标记临时信息实现对待修复文件的快速筛选,对于未标记临时信息的文件直接确定其无需修复,避免了文件修复过程中遍历所有文件,节省时间和资源,提高数据处理速度。并且通过数据块内容摘要对文件进行快速比对,以增量方式将差异之处合并到文件的所有节点中,使修复后的文件内容与用户所进行的操作意图一致,提高了系统可用性和数据一致性,大大降低修复不一致节点时的耗时和网络资源消耗。在数据修复时无需丢弃任意节点,避免了数据丢失。并且无需保留所有操作日志,节省了系统的存储空间。
实施例三
图8为本发明实施例三提供的一种数据管理系统的结构示意图,该系统包括:主节点71和至少一个从节点72;
主节点71包括:
请求发送模块,用于当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息;
文件树形成模块,用于根据各所述从节点的反馈信息调整各所述从节点和主节点的文件树高度,形成目标文件树;
数据块确定模块,用于读取各所述目标文件树中的各间接块,确定目标数据块;
修复模块,用于根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复。
本发明实施例提供了一种数据管理系统,该系统包括:主节点以及至少一个从节点,将各从节点和主节点的文件树调整至一样的高度读取间接块,通过比较各目标文件树的间接块确定数据不一致的目标数据块,进而根据版本号对目标数据块中的数据进行修复。在数据修复时无需丢弃任意节点,避免了数据丢失。并且无需保留所有操作日志,节省了系统的存储空间,提高系统可用性。
进一步地,主节点71还包括:
请求生成模块,用于在当前提交周期生成待同步文件和目标文件更新请求,并向各所述从节点发送目标文件更新请求;
文件生成模块,用于对所述待同步文件标记临时信息并生成主节点文件;
结果接收模块,用于接收各所述从节点根据所述目标文件更新请求生成并反馈的提交结果;
比较模块,用于比较各所述提交结果和主节点文件得到比较结果;若比较结果为一致,清除所述待同步文件的临时信息;否则,将所述待同步文件确定为待修复文件。
进一步地,请求生成模块,包括:
请求处理单元,用于生成当前提交周期的当前版本号,并处理当前提交周期的当前文件更新请求,生成相应的待同步文件,所述当前文件更新请求为用户触发生成;
版本标记单元,用于根据所述当前版本号对所述当前文件更新请求进行版本标记,生成目标文件更新请求。
进一步地,文件生成模块,具体用于当监测到当前提交周期结束时,将所述待同步文件进行持久化落盘,得到主节点文件。
进一步地,主节点71还包括:
结束请求发送模块,用于在生成主节点文件之后,向各所述从节点发送周期结束请求,以使各所述从节点进行持久化落盘并生成提交结果。
进一步地,提交结果包括:版本号、文件大小和数据块内容摘要;相应的,比较模块,具体用于:如果所述提交结果中的版本号、文件大小和数据块内容摘要和主节点文件中的版本号、文件大小和数据块内容摘要均一致,则确定比较结果为一致。
进一步地,文件树形成模块,包括:
待释放空间确定单元,用于根据各反馈信息确定待释放空间以及各待释放空间所对应的目标版本;
释放单元,用于根据各所述待释放空间和目标版本进行空间释放;
高度确定单元,用于确定空间释放后的各所述从节点和主节点的文件树高度,并确定最高值;
文件树形成单元,用于根据所述最高值调整各文件树的高度,形成目标文件树。
进一步地,释放单元,具体用于:遍历各所述从节点和主节点的文件树结构,如果待释放空间在高于所述目标版本的版本中执行了写入数据操作,则将待释放空间确定为免释放空间;根据各所述免释放空间筛选待释放空间,得到目标释放空间,并对各所述目标释放空间进行空间释放。
进一步地,数据块确定模块,包括:
读取单元,用于读取各所述目标文件树中的各间接块,并对比相同数据指针所对应的间接块;
递归单元,用于如果同一数据指针所对应间接块的数据块内容摘要不一致,则按照数据指针深度递归到目标最底层间接块;
指针确定单元,用于确定所述目标最底层间接块所指向的数据块以及目标指针;
数据块确定单元,用于比较各所述目标文件树中目标指针所对应数据块的数据信息,将数据信息不一致的数据块确定为目标数据块。
进一步地,修复模块,包括:
版本号确定单元,用于比较各所述目标数据块的版本号,并确定最高版本号;
信息确定单元,用于将所述最高版本号所对应目标数据块中的数据信息确定为目标数据信息;
替换单元,用于通过目标数据信息替换各目标数据块中的数据信息。
本发明实施例所提供的数据管理系统中的主节点可执行本发明任意实施例所提供的数据管理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图9为本发明实施例四提供的一种计算机设备的结构示意图,如图9所示,作为所述数据管理系统中的主节点,该设备包括处理器80、存储器81、输入装置82和输出装置83;设备中处理器80的数量可以是一个或多个,图9中以一个处理器80为例;设备中的处理器80、存储器81、输入装置82和输出装置83可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据管理方法对应的程序指令/模块。处理器80通过运行存储在存储器81中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据管理方法。
存储器81可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器81可进一步包括相对于处理器80远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置82可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置83可包括显示屏等显示设备。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据管理方法,其特征在于,由分布式存储系统中的主节点执行,所述分布式存储系统包括:主节点以及至少一个从节点,所述方法包括:
当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息;
根据各反馈信息确定待释放空间以及各待释放空间所对应的目标版本;所述反馈信息为空洞信息;
根据各所述待释放空间和目标版本进行空间释放;
确定空间释放后的各所述从节点和主节点的文件树高度,并确定最高值;
根据所述最高值调整各文件树的高度,形成目标文件树;
对于低于所述最高值的文件树在顶部增加新的间接块节点;新增的间接块填入指向原来的顶层间接块的指针;
读取各所述目标文件树中的各间接块,确定目标数据块,包括:
对于每个所述目标文件树,从根部开始读取所述目标文件树的各间接块,比对同一数据指针在不同所述目标文件树中对应的间接块;
如果同一数据指针所对应间接块的数据块内容摘要不一致,则按照数据指针深度递归到目标最底层间接块;
确定所述目标最底层间接块所指向的数据块以及目标指针;
比较各所述目标文件树中目标指针所对应数据块的数据信息,将数据信息不一致的数据块确定为所述目标数据块;
根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复。
2.根据权利要求1所述的方法,其特征在于,在所述当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息之前,还包括:
在当前提交周期生成待同步文件和目标文件更新请求,并向各所述从节点发送目标文件更新请求;
对所述待同步文件标记临时信息并生成主节点文件;
接收各所述从节点根据所述目标文件更新请求生成并反馈的提交结果;
比较各所述提交结果和主节点文件得到比较结果;若比较结果为一致,清除所述待同步文件的临时信息;否则,将所述待同步文件确定为待修复文件。
3.根据权利要求2所述的方法,其特征在于,所述在当前提交周期生成待同步文件和目标文件更新请求,包括:
生成当前提交周期的当前版本号,并处理当前提交周期的当前文件更新请求,生成相应的待同步文件,所述当前文件更新请求为用户触发生成;
根据所述当前版本号对所述当前文件更新请求进行版本标记,生成目标文件更新请求。
4.根据权利要求2所述的方法,其特征在于,所述生成主节点文件,包括:
当监测到当前提交周期结束时,将所述待同步文件进行持久化落盘,得到主节点文件。
5.根据权利要求4所述的方法,其特征在于,在生成主节点文件之后,还包括:
向各所述从节点发送周期结束请求,以使各所述从节点进行持久化落盘并生成提交结果。
6.根据权利要求2所述的方法,其特征在于,所述提交结果包括:版本号、文件大小和数据块内容摘要;相应的,比较各所述提交结果和主节点文件得到比较结果,包括:
如果所述提交结果中的版本号、文件大小和数据块内容摘要和主节点文件中的版本号、文件大小和数据块内容摘要均一致,则确定比较结果为一致。
7.根据权利要求1所述的方法,其特征在于,所述根据各所述待释放空间和目标版本进行空间释放,包括:
遍历各所述从节点和主节点的文件树结构,如果待释放空间在高于所述目标版本的版本中执行了写入数据操作,则将待释放空间确定为免释放空间;
根据各所述免释放空间筛选待释放空间,得到目标释放空间,并对各所述目标释放空间进行空间释放。
8.根据权利要求1所述的方法,其特征在于,根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复,包括:
比较各所述目标数据块的版本号,并确定最高版本号;
将所述最高版本号所对应目标数据块中的数据信息确定为目标数据信息;
通过目标数据信息替换各目标数据块中的数据信息。
9.一种数据管理系统,其特征在于,包括:主节点和至少一个从节点;
所述主节点包括:
请求发送模块,用于当监测到满足修复条件时,根据待修复文件向各所述从节点发送数据请求信息;
待释放空间确定模块,用于根据各反馈信息确定待释放空间以及各待释放空间所对应的目标版本;所述反馈信息为空洞信息;
释放模块,用于根据各所述待释放空间和目标版本进行空间释放;
高度确定模块,用于确定空间释放后的各所述从节点和主节点的文件树高度,并确定最高值;
文件树形成模块,用于根据所述最高值调整各文件树的高度,形成目标文件树;对于低于所述最高值的文件树在顶部增加新的间接块节点;新增的间接块填入指向原来的顶层间接块的指针;
数据块确定模块,用于读取各所述目标文件树中的各间接块,确定目标数据块;
所述数据块确定模块,包括:
读取单元,用于对于每个所述目标文件树,从根部开始读取所述目标文件树的各间接块,比对同一数据指针在不同所述目标文件树中对应的间接块;
递归单元,用于如果同一数据指针所对应间接块的数据块内容摘要不一致,则按照数据指针深度递归到目标最底层间接块;
指针确定单元,用于确定所述目标最底层间接块所指向的数据块以及目标指针;
数据块确定单元,用于比较各所述目标文件树中目标指针所对应数据块的数据信息,将数据信息不一致的数据块确定为目标数据块;
修复模块,用于根据各所述目标数据块的版本号对各所述目标数据块中的数据进行修复。
10.一种计算机设备,其特征在于,作为数据管理系统中的主节点,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110534310.1A CN113220236B (zh) | 2021-05-17 | 2021-05-17 | 一种数据管理方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110534310.1A CN113220236B (zh) | 2021-05-17 | 2021-05-17 | 一种数据管理方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220236A CN113220236A (zh) | 2021-08-06 |
CN113220236B true CN113220236B (zh) | 2024-01-30 |
Family
ID=77092350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110534310.1A Active CN113220236B (zh) | 2021-05-17 | 2021-05-17 | 一种数据管理方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220236B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778331B (zh) * | 2021-08-12 | 2024-06-07 | 联想凌拓科技有限公司 | 一种数据处理方法、主节点及存储介质 |
CN113704359B (zh) * | 2021-09-03 | 2024-04-26 | 优刻得科技股份有限公司 | 一种时序数据库多数据副本的同步方法、系统以及服务器 |
CN113885809B (zh) * | 2021-12-07 | 2022-03-18 | 云和恩墨(北京)信息技术有限公司 | 数据管理系统及方法 |
CN114546980B (zh) * | 2022-04-25 | 2022-07-08 | 成都云祺科技有限公司 | 一种nas文件系统的备份方法、系统及存储介质 |
CN115454720B (zh) * | 2022-09-20 | 2024-04-02 | 中电云计算技术有限公司 | 基于daos分布式存储系统中数据增量重构系统和方法 |
CN115826946B (zh) * | 2023-02-17 | 2023-05-12 | 苏州浪潮智能科技有限公司 | 一种程序异常向量空间优化系统、方法、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100011000A (ko) * | 2008-07-24 | 2010-02-03 | 인하대학교 산학협력단 | 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치 |
CN104348906A (zh) * | 2014-09-16 | 2015-02-11 | 深圳市华为技术软件有限公司 | 一种分布式系统中数据协商方法及装置 |
CN104935634A (zh) * | 2015-04-27 | 2015-09-23 | 南京大学 | 基于分布共享存储的移动设备数据共享方法 |
CN105072194A (zh) * | 2015-08-27 | 2015-11-18 | 南京大学 | 一种分布式文件系统中的存储数据修复结构及修复方法 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN107426265A (zh) * | 2016-03-11 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 数据一致性同步的方法及设备 |
CN110058969A (zh) * | 2019-04-18 | 2019-07-26 | 腾讯科技(深圳)有限公司 | 一种数据恢复方法及装置 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
CN111917834A (zh) * | 2020-07-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、装置、存储介质及计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152643B2 (en) * | 2012-12-21 | 2015-10-06 | Zetta Inc. | Distributed data store |
US9223791B2 (en) * | 2013-07-02 | 2015-12-29 | Red Hat, Inc. | System and method for reading file blocks |
US9720947B2 (en) * | 2014-08-04 | 2017-08-01 | Cohesity, Inc. | Backup operations in a tree-based distributed file system |
US20170212919A1 (en) * | 2016-01-25 | 2017-07-27 | Netapp, Inc. | Bottom-up dense tree repair technique |
US10191674B2 (en) * | 2016-04-15 | 2019-01-29 | Netapp, Inc. | Shared dense tree repair |
-
2021
- 2021-05-17 CN CN202110534310.1A patent/CN113220236B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100011000A (ko) * | 2008-07-24 | 2010-02-03 | 인하대학교 산학협력단 | 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치 |
CN104348906A (zh) * | 2014-09-16 | 2015-02-11 | 深圳市华为技术软件有限公司 | 一种分布式系统中数据协商方法及装置 |
CN104935634A (zh) * | 2015-04-27 | 2015-09-23 | 南京大学 | 基于分布共享存储的移动设备数据共享方法 |
CN105072194A (zh) * | 2015-08-27 | 2015-11-18 | 南京大学 | 一种分布式文件系统中的存储数据修复结构及修复方法 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN107426265A (zh) * | 2016-03-11 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 数据一致性同步的方法及设备 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
CN110058969A (zh) * | 2019-04-18 | 2019-07-26 | 腾讯科技(深圳)有限公司 | 一种数据恢复方法及装置 |
CN111917834A (zh) * | 2020-07-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、装置、存储介质及计算机设备 |
Non-Patent Citations (2)
Title |
---|
结构化P2P网络一致性维护策略;齐小刚;杨伟;刘立芳;高蓉;;控制与决策(第04期);正文 * |
齐小刚 ; 杨伟 ; 刘立芳 ; 高蓉 ; .结构化P2P网络一致性维护策略.控制与决策.2017,(第04期),正文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113220236A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220236B (zh) | 一种数据管理方法、系统及设备 | |
US11537482B2 (en) | Method and apparatus for reading and writing committed data | |
US9170892B2 (en) | Server failure recovery | |
US7152080B2 (en) | Method, apparatus, and computer readable medium for managing replication of back-up object | |
US8108634B1 (en) | Replicating a thin logical unit | |
US9753848B2 (en) | Apparatus for managing a plurality of root nodes for file systems | |
US7840536B1 (en) | Methods and apparatus for dynamic journal expansion | |
US20040220979A1 (en) | Managing filesystem versions | |
CN108228390B (zh) | 数据回档方法及装置 | |
US10949401B2 (en) | Data replication in site recovery environment | |
CN113220729B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
US8423517B2 (en) | System and method for determining the age of objects in the presence of unreliable clocks | |
US20110282843A1 (en) | Method and system for data backup and replication | |
US20190199794A1 (en) | Efficient replication of changes to a byte-addressable persistent memory over a network | |
US8271454B2 (en) | Circular log amnesia detection | |
US7849355B2 (en) | Distributed object sharing system and method thereof | |
JP2020184325A (ja) | レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体 | |
CN113467719B (zh) | 数据写入方法及装置 | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN112783835A (zh) | 索引管理方法、装置及电子设备 | |
CN112187889A (zh) | 一种数据同步方法、装置及存储介质 | |
CN115309336A (zh) | 数据写入方法、缓存信息更新方法及相关装置 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
JP5465401B2 (ja) | ファイル管理方法、装置及びプログラム | |
CN118696309A (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 | ||
CB02 | Change of applicant information |
Address after: 100000 Unit 501A, Floor 5, 101, Building 1, Yard 5, Laiguangying West Road, Chaoyang District, Beijing Applicant after: Beijing Qingyun Science and Technology Co.,Ltd. Address before: 100020 601, 6 floor, 16 building, No. 36 Chuang Yuan Road, Chaoyang District, Beijing. Applicant before: Beijing Qingyun Science and Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |