CN113986944B - 分片数据的写入方法、系统及电子设备 - Google Patents
分片数据的写入方法、系统及电子设备 Download PDFInfo
- Publication number
- CN113986944B CN113986944B CN202111634744.5A CN202111634744A CN113986944B CN 113986944 B CN113986944 B CN 113986944B CN 202111634744 A CN202111634744 A CN 202111634744A CN 113986944 B CN113986944 B CN 113986944B
- Authority
- CN
- China
- Prior art keywords
- log
- memory
- fragment
- newly added
- equal
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种分片数据的写入方法、系统及电子设备,属于数据库的技术领域,缓解了现有技术容易导致一个文件的多个分片的改动结果不一致的问题。该方法包括:收集每个分片的日志区间,所述日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;若全部分片的I与L均相等,则执行新增日志步骤;若存在I=n且L=n+1的分片,则通过纠删算法使I与L相等,并返回收集每个分片的日志区间的步骤;若存在I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,并执行新增日志步骤;新增日志步骤:基于PAXOS共识算法对各个分片进行新增日志写入;其中,n为任意自然数。
Description
技术领域
本发明涉及数据库技术领域,尤其是涉及一种分片数据的写入方法、系统及电子设备。
背景技术
随着对数据安全性的要求不断提高,分布式文件系统被越来越多的场景应用。在分布式文件系统的设计中,要将文件的一个特定大小的数据块(条带)使用纠删码算法(如李德所罗门纠删码)计算为附带冗余的分片(条块),然后将分片分布在容灾域内不同的磁盘上,以实现分散容灾的能力。
在分片的分发与合并,即写与读的操作时,时常出现对同一文件存在多个改动进程的情况,容易导致一个文件的多个分片的改动结果不一致的问题。
发明内容
本发明的目的在于提供一种分片数据的写入方法、系统及电子设备,缓解了现有技术容易导致一个文件的多个分片的改动结果不一致的问题。
第一方面,本发明提供一种分片数据的写入方法,包括:
收集每个分片的日志区间,所述日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;
若全部分片的I与L均相等,则执行新增日志步骤;
若存在I=n且L=n+1的分片,则通过纠删算法使I与L相等,并返回收集每个分片的日志区间的步骤;
若存在I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,并执行新增日志步骤;
新增日志步骤:基于PAXOS共识算法对各个分片进行新增日志写入;
其中,n为任意自然数。
进一步的,通过纠删算法使I与L相等的步骤,包括:
判断I=n且L=n+1的分片的数量是否大于或等于原始数据块个数;
若是,则通过纠删算法对全部分片执行第n+1条日志,使第n+1条日志生效,且使I=n+1;
若否,则删除第n+1条日志,使L=n。
进一步的,通过纠删算法对全部分片执行第n+1条日志的步骤之前,还包括:
若第n+1条日志为写操作,则判断各分片中第n+1条日志中的哈希值是否一致;
若是,则执行通过纠删算法对全部分片执行第n+1条日志的步骤;
若否,则执行删除第n+1条日志的步骤。
进一步的,当新增日志存在日志正文时,所述新增日志步骤具体包括:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I时,返回新增日志成功消息;
当新增日志的日志序号等于I+1时,若内存日志无效,则将新增日志写入内存日志;若内存日志有效,则比较新增日志与内存日志的时代号,若新增日志的时代号大于内存日志的时代号,则将新增日志写入内存日志;
当新增日志的日志序号等于I+2时,若内存日志无效,则结束新增日志;若内存日志有效,则先执行并生效内存日志,将内存日志写入生效日志列表和记录的最后一条日志,再将新增日志写入内存日志。
进一步的,当新增日志不存在日志正文时,所述新增日志步骤具体包括:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I时,返回新增日志成功消息;
当新增日志的日志序号等于I+1时,若内存日志无效,则结束新增日志;若内存日志有效,则执行并生效内存日志,将内存日志写入生效日志列表和记录的最后一条日志。
进一步的,若内存日志的日志序号等于生效的最后一条日志的日志序号I,则内存日志无效,否则内存日志有效。
进一步的,所述时代号包括系统配置号字段和锁编号字段。
进一步的,所述系统配置号字段包括容灾图配置号和磁盘上下线状态号。
第二方面,本发明还提供一种分片数据的写入系统,包括:
收集模块,用于收集每个分片的日志区间,所述日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;
比较模块,用于将I与L进行比较;
执行模块,用于在全部分片的I与L均相等时,执行新增日志步骤;在存在I=n且L=n+1的分片时,通过纠删算法使I与L相等,并返回收集模块收集每个分片的日志区间;在存在I=n,L<n或L>n+1的分片时,则将该分片的日志区间的L视为无效,并执行新增日志步骤;其中,新增日志步骤为:基于PAXOS共识算法对各个分片进行新增日志写入;其中,n为任意自然数。
第三方面,本发明还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明提供的分片数据的写入方法,应用于分布式文件系统,当有新增的文件修改日志时,首先通过收集每个分片的日志区间,对各个分片的统一性进行核查。如果全部分片中生效的最后一条日志的日志序号I,与记录的最后一条日志的日志序号L相等,则表示各分片是统一的,可以执行新增日志步骤;如果有部分分片中I与L相等,另一部分分片中I=n且L=n+1,即L比I大1,则表示各分片的内容不统一,需通过纠删算法使各分片的内容统一,使I与L相等,再重新收集每个分片的日志区间;如果某些分片中的I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,再执行新增日志步骤。
通过以上步骤使每个分片的内容都统一之后,再执行新增日志步骤,基于PAXOS共识算法对各个分片进行新增日志写入,从而能够在对同一文件出现多个改动进程的情况下,更好的保证各个分片的一致性,缓解了现有技术容易造成一个文件的多个分片的改动结果不一致的问题。
相应地,本发明实施例提供的一种分片数据的写入系统和电子设备,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分片数据的写入方法的流程图;
图2为本发明实施例中分片数据结构的示意图;
图3为本发明实施例中时代号的数据结构的示意图;
图4为本发明实施例提供的分片数据的写入系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明提供一种分片数据的写入方法,应用于分布式文件系统,如图1所示,该方法包括以下步骤:
S1:收集每个分片的日志区间。
分布式文件系统是将一个文件分为K个原始数据块,再生产M个冗余数据块,形成K+M冗余的形式,并将K+M个数据块分布在容灾域内不同的磁盘上,以实现分散容灾的能力。
本实施例中,每个文件分片的数据包括3个部分,如图2所示:
内容(Content):文件改动的结果,包括元数据(Metadata)和分片数据(StripePieces)。
日志:文件改动的记录,是一个循环记录的最近若干条日志,每条日志有对应的日志序号标识,单调递增且不重复。
最后一条日志(Last):记录的最后一条日志的信息,比“日志”多出分片数据。
本步骤由分片系统中的管理(Master)服务创建会话,向各个分片所在的存储服务器收集分片信息,并从中获取日志区间,相当于PAXOS算法的准备(Prepare)阶段。日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L,例如I=5,L=5时,日志区间为(5,5)。
每个存储服务器返回的分片信息可包括以下内容:
索引(Index):生效的最后一条日志的日志序号I,也就是图2中日志部分中的最后一条日志的日志序号。
最后一条日志(Last):收到的最后一条日志的信息,具体包括:
SYSN:最后一条日志的系统配置号System-Number
LKN:最后一条日志的锁编号Lock-Number
LRN:日志序号Log-Row-Number
Text:正文
Piece:附带分片数据
Hash:附带数据分片的哈希值
其中,日志正文(Text)可包括以下部分的一项或多项:
create(type:int8, mode:uint32, ctime:int64)
文件建立,type有通常文件、软链接、目录、聚合目录等。
模式是POSIX所定义的文件权限模式。
chmod(mode:uint32)
改变文件POSIX权限模式。
truncate(size:int64)
截断文件到指定的大小。
nlink(nlink:int32)
对文件加或减链接数。
utime(atime:int64, mtime:int64)
修改文件时间。
write(offset:int64, len:uint32)
修改文件内容。
本实施例中的日志文件组织策略为,日志总是保持有1-2个文件,第一个文件写入超过限额(默认128KB)后,建立另一个文件写入新的日志。如果存在的文件超过2个,则删除较旧的一个。
S2:判断各个分片的内容是否统一。
若全部分片的I(Index)与L(LRN)均相等,则表示各分片的内容是一致的、统一的,该文件的改动记录是清晰的(Clean),之后可以执行步骤S4,即新增日志步骤。
若存在I=n且L=n+1的分片,也就是有部分(或全部)分片中I=n且L=n+1,即L比I大1,则表示各分片的内容不统一,该文件的改动记录是不清晰的(Unclean),需执行步骤S3。
若存在I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,或删除最后一条日志,并执行步骤S4。
S3:通过纠删算法使I与L相等。
例如,部分分片的日志区间为(5,5),另一部分为(5,6),对于日志区间为(5,6)分片,是因存在Last里面的日志序号是6,这就属于不清晰的状态,意味着文件的状态可能是5,也可能是6,所以需要通过纠删算法使I与L相等,具体包括以下步骤:
S31:判断I=n且L=n+1的分片的数量是否大于或等于原始数据块个数。
通过查看所有分片的Last,看序号6的日志是否大于或等于原始数据块个数K。如果此类分片数未达到K个,则执行步骤S34;如果此类分片数达到K个,则还需查看第6条日志是否为写操作,如果不是写操作则可以直接执行步骤S33,如果是写操作则需要先执行步骤S32。
S32:判断各分片中第n+1条日志中的哈希值是否一致。
查看各个分片中第6条日志中的哈希值是否一致,如果一致则执行步骤S33,如果不一致则执行步骤S34。
S33:通过纠删算法对全部分片执行第n+1条日志。
此时可以通过纠删反算等方式执行第6条日志,还原出丢失的内容数据,再重新进行提交,使第6条日志生效,使每个分片的Index都为6,也就是使每个分片的日志区间都统一为(6,6)。
S34:删除第n+1条日志。
如果日志区间为(5,6)分片的数未达到K个,或者作为写操作的第6条日志的哈希值不完全一致,则表示第6条日志并没有真正生效。应当取消第6条日志,使每个分片的Last变为5,也就是使每个分片的日志区间都统一为(5,5)。
一组分片所对应的一组磁盘,至少要有一半以上在线,才可以进行改动类操作。这是纠删码特性的要求下的最低标准。如果条带规格是 K + M 个条块,则至少需要K个磁盘在线。
S4:基于PAXOS共识算法对各个分片进行新增日志写入。
本实施例的算法提供了写入成功或不成功的确定指标,在此指标下,才能够实现共识机制。此指标具有客观性,对同一文件的任何一个操作者都将看到同样的事实。本实施例中,根据新增日志(New)中是否存在日志正文,建立2个操作表:
操作表1:新增日志中存在日志正文
操作表1中的各列表示新增日志的日志序号,各行表示内存日志(M-Last)是否有效。其中内存日志是系统内存中的最后记录的日志,内存日志是否有效的判断标准为:如果内存日志的日志序号等于生效的最后一条日志的日志序号I,则内存日志无效;否则内存日志有效。
从操作表1中可以看出:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I(Index)时,返回新增日志成功消息(OK),无论M-Last是否有效,均返回新增日志成功消息。
当新增日志的日志序号等于I+1时,若内存日志无效,则将新增日志写入内存日志。若内存日志有效,则执行覆盖操作(Cover)。覆盖操作具体是,先比较新增日志与内存日志的时代号(Epoch),若新增日志的时代号大于内存日志的时代号,则将新增日志写入(覆盖)内存日志;否则保留当前内存日志。
当新增日志的日志序号等于I+2时,若内存日志无效,则结束新增日志(Refuse);若内存日志有效,则先执行并生效内存日志,将内存日志写入生效日志(Log)列表和记录的最后一条日志(Last),再将新增日志写入内存日志。
当新增日志的日志序号等于其他数值时,均结束新增日志(Refuse)。
每条日志的字段包括日志序号(LRN)、时间戳(Stamp)和正文(Text)。每加入一条日志内存日志写入生效日志列表(M-Last=>Log),同时也要将内存日志写入最后的日志记录(M-Last=>Last)。这样设计的目的是,仅需要最后一条日志的数据分片及时代号,所以将最后一条日志记录与日志列表分离。
需要说明的是,上述步骤涉及的时代号用于确定每个日志项在PAXOS系统的算法版本号。如图3所示,本实施例中的时代号包括系统配置号字段(system-number)和锁编号字段(lock-number)。
其中,系统配置号字段包括容灾图(crushmap)配置号和磁盘上下线状态号,每当发现磁盘上下线,该磁盘上下线状态号就增加1。容灾图配置号为系统配置号字段的高32位,磁盘上下线状态号为系统配置号字段的低32位,无论人为改变磁盘的(容灾图)配置,还是因磁盘本身的问题导致上下线,都会导致系统配置号字段改变,从而实现多块磁盘的分布式特性。
锁编号字段由系统后端在步骤S1阶段计算出来。锁编号字段对应PAXOS算法中的版本号,每次改动操作,都对所有分片的当前最大锁编号字段再加 1,所有服务器只接受比自己所持分片的锁编号字段还要大的操作。常规的锁机制虽然可保证在对同一文件并发读写可以保证共识,但并发写入可能导致活锁,从而令操作效率变差,理论上可能导致不能写入(活锁出现,一直不能决出优胜操作)。本发明实施例提供的锁机制能够尽量保证对同一文件,一个时刻仅有一个读或写操作。
操作表2:新增日志中不存在日志正文
从操作表2中可以看出:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I时,返回新增日志成功消息(OK)。
当新增日志的日志序号等于I+1时,若内存日志无效,则结束新增日志(Refuse);若内存日志有效,则执行并生效内存日志,将内存日志写入生效日志列表和记录的最后一条日志。
当新增日志的日志序号等于其他数值时,均结束新增日志(Refuse)。
采用本发明实施例提供的分片数据的写入方法,当有新增的文件修改日志时,首先通过收集每个分片的日志区间,对各个分片的统一性进行核查。如果全部分片中生效的最后一条日志的日志序号I,与记录的最后一条日志的日志序号L相等,则表示各分片是统一的,可以执行新增日志步骤;如果有部分分片中I与L相等,另一部分分片中I=n且L=n+1,即L比I大1,则表示各分片的内容不统一,需通过纠删算法使各分片的内容统一,使I与L相等,再重新收集每个分片的日志区间;如果某些分片中的I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,再执行新增日志步骤。
通过以上步骤使每个分片的内容都统一之后,再执行新增日志步骤,基于PAXOS共识算法对各个分片进行新增日志写入,从而能够在对同一文件出现多个改动进程的情况下,更好的保证各个分片的一致性,缓解了现有技术容易造成一个文件的多个分片的改动结果不一致的问题。
如图4所示,本发明实施例还提供一种分片数据的写入系统,包括:
收集模块1,用于收集每个分片的日志区间,日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;
比较模块2,用于将I与L进行比较;
执行模块3,用于在全部分片的I与L均相等时,执行新增日志步骤;在存在I=n且L=n+1的分片时,通过纠删算法使I与L相等,并返回收集模块收集每个分片的日志区间;在存在I=n,L<n或L>n+1的分片时,则将该分片的日志区间的L视为无效,并执行新增日志步骤;其中,新增日志步骤为:基于PAXOS共识算法对各个分片进行新增日志写入。
本发明实施例还提供一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
对应于上述方法,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述方法的步骤。
本发明实施例提供的分片数据的写入系统、电子设备及计算机可读存储介质,与上述实施例提供的分片数据的写入方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
又例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种分片数据的写入方法,其特征在于,包括:
收集每个分片的日志区间,所述日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;
若全部分片的I与L均相等,则执行新增日志步骤;
若存在I=n且L=n+1的分片,则通过纠删算法使I与L相等,并返回收集每个分片的日志区间的步骤;
若存在I=n,L<n或L>n+1的分片,则将该分片的日志区间的L视为无效,并执行新增日志步骤;
新增日志步骤:基于PAXOS共识算法对各个分片进行新增日志写入;
其中,n为任意自然数;
通过纠删算法使I与L相等的步骤,包括:判断I=n且L=n+1的分片的数量是否大于或等于原始数据块个数;
若是,则通过纠删算法对全部分片执行第n+1条日志,使第n+1条日志生效,且使I=n+1;
若否,则删除第n+1条日志,使L=n。
2.根据权利要求1所述的方法,其特征在于,通过纠删算法对全部分片执行第n+1条日志的步骤之前,还包括:
若第n+1条日志为写操作,则判断各分片中第n+1条日志中的哈希值是否一致;
若是,则执行通过纠删算法对全部分片执行第n+1条日志的步骤;
若否,则执行删除第n+1条日志的步骤。
3.根据权利要求1所述的方法,其特征在于,当新增日志存在日志正文时,所述新增日志步骤具体包括:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I时,返回新增日志成功消息;
当新增日志的日志序号等于I+1时,若内存日志无效,则将新增日志写入内存日志;若内存日志有效,则比较新增日志与内存日志的时代号,若新增日志的时代号大于内存日志的时代号,则将新增日志写入内存日志;
当新增日志的日志序号等于I+2时,若内存日志无效,则结束新增日志;若内存日志有效,则先执行并生效内存日志,将内存日志写入生效日志列表和记录的最后一条日志,再将新增日志写入内存日志。
4.根据权利要求1所述的方法,其特征在于,当新增日志不存在日志正文时,所述新增日志步骤具体包括:
当新增日志的日志序号小于或等于生效的最后一条日志的日志序号I时,返回新增日志成功消息;
当新增日志的日志序号等于I+1时,若内存日志无效,则结束新增日志;若内存日志有效,则执行并生效内存日志,将内存日志写入生效日志列表和记录的最后一条日志。
5.根据权利要求3或4所述的方法,其特征在于,若内存日志的日志序号等于生效的最后一条日志的日志序号I,则内存日志无效,否则内存日志有效。
6.根据权利要求3所述的方法,其特征在于,所述时代号包括系统配置号字段和锁编号字段。
7.根据权利要求6所述的方法,其特征在于,所述系统配置号字段包括容灾图配置号和磁盘上下线状态号。
8.一种分片数据的写入系统,其特征在于,包括:
收集模块,用于收集每个分片的日志区间,所述日志区间包括生效的最后一条日志的日志序号I,及记录的最后一条日志的日志序号L;
比较模块,用于将I与L进行比较;
执行模块,用于在全部分片的I与L均相等时,执行新增日志步骤;在存在I=n且L=n+1的分片时,通过纠删算法使I与L相等,并返回收集模块收集每个分片的日志区间;在存在I=n,L<n或L>n+1的分片时,则将该分片的日志区间的L视为无效,并执行新增日志步骤;其中,新增日志步骤为:基于PAXOS共识算法对各个分片进行新增日志写入;其中,n为任意自然数;
通过纠删算法使I与L相等,包括:判断I=n且L=n+1的分片的数量是否大于或等于原始数据块个数;若是,则通过纠删算法对全部分片执行第n+1条日志,使第n+1条日志生效,且使I=n+1;若否,则删除第n+1条日志,使L=n。
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634744.5A CN113986944B (zh) | 2021-12-29 | 2021-12-29 | 分片数据的写入方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634744.5A CN113986944B (zh) | 2021-12-29 | 2021-12-29 | 分片数据的写入方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986944A CN113986944A (zh) | 2022-01-28 |
CN113986944B true CN113986944B (zh) | 2022-03-25 |
Family
ID=79734867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111634744.5A Active CN113986944B (zh) | 2021-12-29 | 2021-12-29 | 分片数据的写入方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986944B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN108271420A (zh) * | 2016-11-02 | 2018-07-10 | 华为技术有限公司 | 管理文件的方法、文件系统和服务器系统 |
CN112463434A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
CN112825069A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 数据库数据的分析方法、设备、系统及存储介质 |
CN112925763A (zh) * | 2021-03-22 | 2021-06-08 | 河北工业大学 | 一种基于cad快速持久化的方法 |
CN113485962A (zh) * | 2021-06-30 | 2021-10-08 | 中国民航信息网络股份有限公司 | 日志文件的存储方法、装置、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354434B (zh) * | 2016-08-31 | 2019-07-23 | 中国人民大学 | 日志数据的存储方法及系统 |
CN106383665B (zh) * | 2016-09-05 | 2018-05-11 | 华为技术有限公司 | 数据存储系统中的数据存储方法及协调存储节点 |
-
2021
- 2021-12-29 CN CN202111634744.5A patent/CN113986944B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN108271420A (zh) * | 2016-11-02 | 2018-07-10 | 华为技术有限公司 | 管理文件的方法、文件系统和服务器系统 |
CN112825069A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 数据库数据的分析方法、设备、系统及存储介质 |
CN112463434A (zh) * | 2020-11-19 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于纠删码的数据重构方法、装置、设备及存储介质 |
CN112925763A (zh) * | 2021-03-22 | 2021-06-08 | 河北工业大学 | 一种基于cad快速持久化的方法 |
CN113485962A (zh) * | 2021-06-30 | 2021-10-08 | 中国民航信息网络股份有限公司 | 日志文件的存储方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113986944A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8443000B2 (en) | Storage of data with composite hashes in backup systems | |
US7478113B1 (en) | Boundaries | |
US9396073B2 (en) | Optimizing restores of deduplicated data | |
US7366859B2 (en) | Fast incremental backup method and system | |
CN106302720B (zh) | 一种用于区块链可生存存储系统及其方法 | |
US7100008B2 (en) | Long term data protection system and method | |
US8924354B2 (en) | Block level data replication | |
US7533291B2 (en) | System and method for storing a data file backup | |
US11663236B2 (en) | Search and analytics for storage systems | |
KR20020082851A (ko) | 공유성 팩토링 시스템에 사용하기 위한 해시 파일 시스템및 방법 | |
US20180276268A1 (en) | Detecting inconsistencies in hierarchical organization directories | |
CN111367926A (zh) | 分布式系统的数据处理方法和装置 | |
US7949630B1 (en) | Storage of data addresses with hashes in backup systems | |
CN109947730B (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
CN113986944B (zh) | 分片数据的写入方法、系统及电子设备 | |
WO2009031158A2 (en) | Method and apparatus for network based data recovery | |
Oh et al. | Forensic recovery of file system metadata for digital forensic investigation | |
CN116319815A (zh) | 引入SaaS特征的云数据放置策略管理系统 | |
US20220374162A1 (en) | Facilitating Write Requests in a Storage Network | |
CN115422137A (zh) | 文件创建方法、装置、电子设备及计算机可读存储介质 | |
CN113742786B (zh) | 区块链中归档数据校验方法及装置 | |
KR102432530B1 (ko) | 대상 디스크의 데이터 선별 수집을 통한 전자증거목록 리포팅 시스템 | |
CN112131194A (zh) | 一种只读文件系统的文件存储控制方法及装置、存储介质 | |
US12001452B2 (en) | Search and analytics for storage systems | |
US11977460B1 (en) | File system namespace reconstruction |
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 |