CN113377735A - 数据一致性的处理方法、装置、设备及分布式文件系统 - Google Patents

数据一致性的处理方法、装置、设备及分布式文件系统 Download PDF

Info

Publication number
CN113377735A
CN113377735A CN202010117535.2A CN202010117535A CN113377735A CN 113377735 A CN113377735 A CN 113377735A CN 202010117535 A CN202010117535 A CN 202010117535A CN 113377735 A CN113377735 A CN 113377735A
Authority
CN
China
Prior art keywords
data
information
instruction
target file
control information
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.)
Pending
Application number
CN202010117535.2A
Other languages
English (en)
Inventor
李润辉
付忞
何绍涵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202010117535.2A priority Critical patent/CN113377735A/zh
Publication of CN113377735A publication Critical patent/CN113377735A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

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)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据一致性的处理方法、装置、设备及分布式文件系统。其中,该方法包括:确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息;其中,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。本发明实施例能够在满足数据一致性要求的前提下,优化分布式文件系统的IO性能。

Description

数据一致性的处理方法、装置、设备及分布式文件系统
技术领域
本发明涉及分布式文件系统领域,尤其涉及一种数据一致性的处理方法、装置、设备及分布式文件系统。
背景技术
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统是一种部署在多主机上,提供网络主机容错并提供文件语义的存储系统。
数据一致性是分布式文件系统需要保证的性质,实际应用中,分布式文件系统中的各个节点的硬件,比如:内存、CPU(central processing unit,中央处理器)、网卡、磁盘、电源等,都存在损坏的可能性,可能会导致多个备份数据不一致,最终影响数据的正确性。
相关技术中,往往需要在正常读写流程中加入保证数据一致性的操作,影响了分布式文件系统正常IO(Input/Output,输入/输出)的性能。
发明内容
有鉴于此,本发明实施例提供了一种数据一致性的处理方法、装置、设备及分布式文件系统,旨在满足数据一致性要求的前提下,优化分布式文件系统的IO性能。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据一致性的处理方法,包括:
确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;
将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息;
其中,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。
本发明实施例还提供了一种数据一致性的处理装置,所述装置包括:
指控信息生成模块,用于确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;
持久化模块,用于将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息;
其中,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。
本发明实施例又提供了一种处理设备,应用于分布式文件系统,所述处理设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器,用于运行计算机程序时,执行本发明任一实施例所述方法的步骤。
本发明实施例还提供了一种分布式文件系统,包括:多个本发明实施例所述的处理设备。
本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本发明任一实施例所述方法的步骤。
本发明实施例提供的技术方案,通过在待写入数据的写入操作中,根据写入操作出现的写入操作异常,生成第一指控信息,将第一指控信息添加至持久化的第二指控信息,以基于新生成的第一指控信息更新持久化的第二指控信息。持久化的第二指控信息可以供分布式文件系统的各节点读取,以持久化指示目标文件中存在写入操作异常的存储信息,可以避免数据读取时读取到存在写入操作异常的存储区域的数据,满足分布式文件系统中的数据一致性的要求,且写入操作为追加写,基于追加写,可以仅在目标文件的待写入数据存在写入操作异常时,生成第一指控信息并将第一指控信息持久化,减少了数据一致性的处理过程中对分布式文件系统的正常IO的占用,能够在满足数据一致性要求的前提下,优化分布式文件系统的IO性能。
附图说明
图1为本发明实施例数据一致性的处理方法的流程示意图;
图2为本发明第一应用实施例数据一致性的处理方法的流程示意图;
图3为本发明第二应用实施例数据一致性的处理方法的流程示意图;
图4为本发明第三应用实施例数据一致性的处理方法的流程示意图;
图5为本发明实施例数据一致性的处理装置的结构示意图;
图6为本发明实施例处理设备的结构示意图;
图7为本发明实施例分布式文件系统的结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例数据一致性的处理方法应用于分布式文件系统,该分布式文件系统包括多个节点(又称为处理设备),各节点可以为客户端或者服务器,各节点之前通过计算机网络相连。相关技术中,由于各节点的硬件故障、网络故障、或者电源故障等,往往导致分布式文件系统中的多个备份数据不一致,影响读取时的数据一致性。这里,数据一致性是指分布式文件系统的底层数据出现了不一致的情形下,整个系统对外表现一致的性质。
基于此,在本发明的各种实施例中,基于追加写的写入操作,对存在写入操作异常的待写入数据生成第一指控信息,并基于所述第一指控信息更新持久化的第二指控信息,从而满足数据读取时的数据一致性的要求。
本发明实施例提供了一种数据一致性的处理方法,如图1所示,该方法包括:
步骤101,确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;
这里,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息。
实际应用中,可以在分布式文件系统的各节点中加入LogStore(日志结构存储),使得数据的写入操作转换为追加写。这里,追加写是指,在写入待写入数据至目标文件时,对于不存在的目标文件,则创建并写入待写入数据;对于已有的目标文件,则只在原有的目标文件的基础上追加写入待写入数据。通过追加写的写入操作模式,可以仅在待写入数据的写入操作存在写入操作异常时,生成相应的第一指控信息,从而可以根据第一指控信息高效的更新持久化的第二指控信息。这里,写入操作异常可以是由节点的硬件故障、网络故障、电源故障等引起的,可以通过在写入操作中监控IO来判断是否存在写入操作异常。
在一应用示例中,第一指控信息可以为由文件标识符、存储块序号组成的二元组,其中,文件标识符标识待写入数据所属的目标文件,存储块序号标识待写入数据对应的存储块。分布式文件系统中的一个节点收到数据写入请求,在写入操作时,监控写入操作对应的IO反馈信息,若出现IO异常,则生成出现IO异常的待写入数据对应的第一指控信息。
步骤102,将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息。
分布式文件系统可以将生成的第一指控信息存储至非易失性存储介质,比如,可以存储至本节点上的非易失性存储介质上,或者存储至其他节点上的非易失性存储介质上,或者存储至数据存储设备上,以将所述第一指控信息添加至持久化的第二指控信息。
这里,所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示目标文件中存在写入操作异常的存储信息。
在一应用示例中,第二指控信息可以包括:文件标识符、存储块序号集合,可以对不断生成的第一指控信息,基于文件标识符,得到同一文件标识符下的存储块序号构成的存储块序号集合,该存储块序号集合可以完整指示目标文件下存在写入操作异常的存储信息。例如,第二指控信息为(“/file1”,[0,2]),表示/file1中的存储块0和存储块2可能出现数据损坏。
本发明实施例方法中,基于第二指控信息持久化指示目标文件中存在写入操作异常的存储信息,可以避免数据读取时读取到存在写入操作异常的存储区域的数据,满足分布式文件系统中的数据一致性的要求,且写入操作为追加写,基于追加写,可以仅在目标文件的待写入数据存在写入操作异常时,生成第一指控信息并将第一指控信息持久化,减少了数据一致性的处理过程中对分布式文件系统的正常IO的占用,能够在满足数据一致性要求的前提下,优化分布式文件系统的IO性能。
在一实施例中,所述方法还包括:
确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的长度更新持久化的所述目标文件的第一文件长度。
这里,设定阈值可以由本领域技术人员根据分布式文件系统的需求进行合理设置。基于该设定阈值可以判定待写入数据是否成功写入分布式文件系统。具体地,若待写入数据成功写入的副本数量达到设置阈值,则判定待写入数据成功写入分布式文件系统,可以基于该成功写入的数据的长度更新持久化的所述目标文件的第一文件长度,以持久化指示目标文件的当前文件长度。
若所述待写入数据成功写入的副本数量未达到设定阈值,则表明待写入数据未达到分布式文件系统的写入副本数量的要求,返回写入失败的指示信息,指示目标文件更新失败,此时,目标文件的第一文件长度不用更新。
在一实施例中,所述方法还包括:
基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据,得到缓存的第三指控信息和所述目标文件的第二文件长度;
这里,所述第三指控信息用于指示本地缓存的所述目标文件中存在写入操作异常的存储区域;所述第二文件长度用于确定所述第三指控信息是否有效。
实际应用中,分布式文件系统中的节点可以是接收到针对目标文件的读取指令时,基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据。节点也可以是首次接收到针对目标文件的追加写操作时,基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据。若不存在目标文件,则在创建目标文件并写入数据后,基于目标文件的持久化的第二指控信息、持久化的目标文件的第一文件长度生成本地的缓存数据。
在一实施例中,接收到针对目标文件的写入操作后,执行该写入操作之前,基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据。所述方法还包括:
基于所述第一指控信息更新所述第三指控信息。
这里,节点确定写入操作存在写入操作异常,则新生成第一指控信息,根据新生成的第一指控信息更新本地的缓存数据中的第三指控信息,可以使得本地的缓存数据中的第三指控信息得到动态更新,即能够获取到本地写入操作对应的最新的第一指控信息。
在一应用示例中,第三指控信息可以包括:文件标识符、存储块序号集合,可以对不断生成的第一指控信息,基于文件标识符,得到同一文件标识符下的存储块序号构成的存储块序号集合,该存储块序号集合可以完整指示目标文件下存在写入操作异常的待写入数据的存储信息。例如,第三指控信息为(“/file1”,[0,2]),表示/file1中的存储块0和存储块2可能出现数据损坏。
在一应用示例中,目标文件对应的缓存数据都可以保存在本节点的内存inode(索引节点)中。Inode可以缓存目标文件对应的第三指控信息,还可以缓存目标文件的第二文件长度。
在一实施例中,所述方法还包括:
确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的数据长度更新所述第二文件长度。
本发明实施例中,由于写入操作为追加写,可以通过目标文件的第一文件长度是否变化来判断目标文件是否有更新。缓存的第二文件长度可能会与持久化的第一文件长度不同,这样,可以根据缓存的第二文件长度与目标文件的读取指令中读取的数据范围,来判断当前缓存的第三指控信息是否有效。若缓存数据中的第三指控信息进行实时动态更新,可以在确定待写入数据是否成功写入分布式文件系统时,基于该待写入数据的数据长度更新缓存的第二文件长度。
在一实施例中,所述方法还包括:
获取针对所述目标文件的读取指令;
确定读取的数据范围小于或等于本地的缓存数据中缓存的所述目标文件的第二文件长度,根据缓存数据中缓存的第三指控信息响应所述读取指令。
这里,由于读取的数据范围小于或等于缓存数据中缓存的目标文件的第二文件长度,表明缓存数据中缓存的目标文件的第三指控信息有效,可以根据缓存的第三指控信息响应该读取指令。
在一实施例中,所述根据缓存数据中缓存的第三指控信息响应所述读取指令,包括:根据缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;接收相应的存储区域返回的数据。这样,避免接收存在写入操作异常的存储区域返回的数据,能够满足数据一致性的要求。
在一实施例中,所述方法还包括:
获取针对所述目标文件的读取指令;
确定读取的数据范围大于本地的缓存数据中缓存的所述目标文件的第二文件长度;
基于持久化的所述目标文件的第一文件长度更新所述缓存数据中缓存的所述目标文件的第二文件长度;并基于持久化的所述目标文件的第二指控信息更新所述缓存数据中缓存的所述目标文件的第三指控信息;
根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令。
这里,由于读取的数据范围大于缓存数据中缓存的目标文件的第二文件长度,表明缓存数据中缓存的目标文件的第三指控信息失效。可以基于持久化的所述目标文件的第一文件长度更新所述缓存数据中缓存的所述目标文件的第二文件长度,得到正确的当前文件长度;并基于持久化的所述目标文件的第二指控信息更新所述缓存数据中缓存的所述目标文件的第三指控信息,得到完整的第一指控信息,以指示目标文件对应的存在写入操作异常的存储信息。
这里,所述根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令,包括:根据更新后的缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;接收相应的存储区域返回的数据。这样,可以避免接收存在写入操作异常的存储区域返回的数据,从而满足数据一致性的要求。
在一实施例中,所述发送所述读取指令给不存在写入操作异常的存储区域之前,所述方法还包括:
判断缓存的所述目标文件的第三指控信息中的指控数目是否小于或等于设定数值;
所述发送所述读取指令给不存在写入操作异常的存储区域,包括:
确定缓存的所述目标文件的第三指控信息中的指控数目小于或等于设定数值,发送所述读取指令给不存在写入操作异常的存储区域。
这样,可以通过判断目标文件的第三指控信息中的指控数目来响应读取指令,若第三指控信息中的指控数目小于或等于设定数目,则发送读取指令给不存在写入操作异常的存储区域,从而接收相应存储区域返回的数据。这里,指控数目即目标文件对应存在写入操作异常的存储块的数量,指控数目的数量越大,则表明目标文件的底层数据不一致的比例越大,因此,可以合理设置设定数目,来响应读取指令,可以进一步保障数据一致性。
在一实施例中,所述方法还包括:
确定缓存的所述目标文件的第三指控信息中的指控数目大于设定数值,则返回读取失败的指示信息。
若指控数目超过了设定数值,则表明目标文件的底层数据不一致的比例已经超出了合理要求,禁止返回读取指令对应的数据,并输出读取失败的指示信息。
下面结合应用实施例对本发明再作进一步详细的描述。
应用实施例一
本应用实施例中,以分布式文件系统中的一个节点接收数据写入请求为例,对数据一致性的处理方法进行说明,如图2所示,该方法包括:
步骤201,确定存在写入操作异常,生成记录写入操作异常的第一指控信息;
节点首次收到针对目标文件的写入操作时,从非易失性存储介质中拉取该目标文件对应的持久化的第二指控信息、第一文件长度,从而在缓存数据中缓存第三指控信息和第二文件长度。在写入操作过程中,监控IO,若写入操作正常,则不需要生成第一指控信息,若存在IO异常,则基于相应的写入操作生成第一指控信息。
步骤202,将第一指控信息持久化;
将新生成的第一指控信息存储至非易失性存储介质,以扩充持久化的第二指控信息。
步骤203,更新缓存数据中的第三指控信息;
确定第一指控信息存储至非易失性存储介质后,更新本地的缓存数据中的第三指控信息。
步骤204,判断成功写入的副本数量是否达到设定阈值,若是,则执行步骤205,若否则执行步骤206;
这里,设定阈值为待写入数据成功写入分布式文件系统所需的副本的最小数量。
步骤205,更新目标文件的文件长度。
这里,可以基于成功写入分布式文件系统的所述待写入数据的数据长度更新目标文件对应的持久化的第一文件长度和缓存的第二文件长度。
步骤206,返回写入失败。
若所述待写入数据成功写入的副本数量未达到设定阈值,则表明待写入数据未达到分布式文件系统的写入副本数量的要求,返回写入失败的指示信息。
应用实施例二
本应用实施例中,以分布式文件系统中的一个节点接收数据读取指令为例,对数据一致性的处理方法进行说明,如图3所示,该方法包括:
步骤301,获取针对目标文件的读取指令;
这里,若本地的缓存数据中不存在目标文件相关的信息,可以基于读取指令中的目标文件的文件标识符,从非易失性存储介质中拉取该目标文件对应的持久化的第二指控信息、第一文件长度,以在缓存数据中生成目标文件的第三指控信息和第二文件长度。
步骤302,判断读取指令中的数据范围是否小于缓存数据中的第二文件长度,若否,则先执行步骤303,后执行步骤304,若是,则直接执行步骤304;
这里,若读取指令中的数据范围小于或等于目标文件的第二文件长度,则表明缓存的第三指控信息有效;若读取指令中的数据范围大于目标文件的第二文件长度,则表明缓存的第三指控信息失效。需要说明的是,失效的第三指控信息并不表示其缓存的信息是错误的,而是表示缓存的第三指控信息还不够全面,有待更新。
步骤303,更新缓存数据中的目标文件的第三指控信息和第二文件长度;
实际应用中,节点发起一次Lookup操作,基于持久化的目标文件的第二指控信息更新缓存的第三指控信息,基于持久化的目标文件的第一文件长度更新缓存的第二文件长度。使得缓存的第三指控信息与当前的持久化的第二指控信息一致,缓存的第二文件长度与当前的持久化的第一文件长度一致。
步骤304,判断第三指控信息中的指控数目是否小于或等于设定数值,若是,则执行步骤305,若否,则执行步骤306;
步骤305,往未被指控的数据块下发读取指令;
这里,发送所述读取指令给不存在写入操作异常的数据块的存储区域,并接收相应的存储区域返回的数据。这样,可以避免接收存在写入操作异常的存储区域返回的数据,从而满足数据一致性的要求。
步骤306,返回读取失败。
若指控数目超过了设定数值,则表明目标文件的底层数据不一致的比例已经超出了合理要求,禁止返回读取指令对应的数据,并输出读取失败的指示信息。
应用实施例三
本应用实施例中,以分布式文件系统中的不同节点并发执行数据写入请求和数据读取指令为例,对数据一致性的处理方法进行说明,如图4所示,该分布式文件系统包括:第一客户端(即第一节点)、第二客户端(即第二节点)及数据存储设备,其中,第一客户端、第二客户端均连接数据存储设备,数据存储设备用于存储分布式文件系统的数据。继续参照图4,该方法包括:
步骤401,写入(0,A)范围的数据;
第一客户端接收到目标文件的(0,A)范围的数据写入请求,将(0,A)范围的数据以追加写的方式写入分布式文件系统的数据存储设备中。
步骤402,返回所有数据块写入成功;
在追加写过程中,第一客户端监测与数据存储设备之间的IO信息,各数据块均写入成功,则不需要生成指控信息。数据已成功写入,则持久化的目标文件的文件长度更新为A。
步骤403,刷新指控缓存;
第二客户端接收到对目标文件的读取指令,第二客户端本地刷新指控缓存,缓存目标文件对应的第三指控信息和第二文件长度。这里,第二文件长度为A,若目标文件不存在写入操作异常,则第三指控信息为空。
步骤404,读取(0,A)范围的数据;
由于缓存数据中的第三指控信息覆盖(0,A)范围的数据,第二客户端根据缓存中的第三指控信息读取目标文件的(0,A)范围的数据。
步骤405,写入(A,A+B)范围的数据;
第一客户端将(A,A+B)范围的数据以追加写的方式写入数据存储设备,并在追加写过程中,监测与数据存储设备之间的IO信息。
步骤406,返回写入存储块1失败的IO异常信息;
第一客户端监测到数据存储设备返回的写入存储块1失败的IO异常信息,生成相应的指控信息。若(A,A+B)范围的数据成功写入,则持久化的目标文件的第一文件长度更新为A+B。
步骤407,写入指控信息;
第一客户端将存储块1写入失败的指控信息持久化,比如,将新生成的指控信息存储至第一客户端的非易失性存储介质。
步骤408,第二客户端刷新缓存数据;
当第二客户端需要读取目标文件的(A,A+B)范围的数据时,由于数据范围大于本地缓存目标文件的第二文件长度A,则通过Lookup操作,基于持久化的目标文件的第二指控信息更新缓存的第三指控信息,基于持久化的目标文件的第一文件长度更新缓存的第二文件长度。这样,第三指控信息中包括了指示存储块1写入失败的信息,第二文件长度更新为A+B。
步骤409,第二客户端读取(A,A+B)范围的数据。
由于缓存数据中的第三指控信息覆盖(0,A+B)范围的数据,第二客户端根据缓存中的第三指控信息可以读取目标文件的(A,A+B)范围的数据。
在本应用实施例中,在(A,A+B)范围的数据出现写失败后,第二客户端并没有立即的刷新指控,第二客户端缓存的指控信息只有在读取(A,A+B)范围的数据之前,才通过Lookup操作进行刷新,这样,就可以极大地降低数据一致性的处理过程中对分布式文件系统的正常IO的占用,能够在满足数据一致性要求的前提下,优化分布式文件系统的IO性能。
为了实现本发明实施例的方法,本发明实施例还提供一种数据一致性的处理装置,该数据一致性的处理装置与上述数据一致性的处理方法对应,上述数据一致性的处理方法实施例中的各步骤也完全适用于本数据一致性的处理装置实施例。
如图5所示,该装置包括:指控信息生成模块501、持久化模块502,其中,指控信息生成模块501用于确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;持久化模块502用于将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息。
这里,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。
在一实施例中,所述装置还包括:
文件长度更新模块503,用于确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的长度更新持久化的所述目标文件的第一文件长度。
在一实施例中,所述装置还包括:
缓存加载模块504,用于基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据,得到缓存的第三指控信息和所述目标文件的第二文件长度;其中,所述第三指控信息用于指示本地缓存的所述目标文件中存在写入操作异常的存储区域;所述第二文件长度用于确定所述第三指控信息是否有效。
在一实施例中,所述装置还包括:
缓存更新模块505,用于基于所述第一指控信息更新所述第三指控信息。
在一实施例中,所述文件长度更新模块503还用于:
确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的数据长度更新所述第二文件长度。
在一实施例中,所述装置还包括读取模块506,用于:
获取针对所述目标文件的读取指令;
确定读取的数据范围小于或等于本地的缓存数据中缓存的所述目标文件的第二文件长度,根据本地的缓存数据中缓存的第三指控信息响应所述读取指令。
在一实施例中,读取模块506还用于:
获取针对所述目标文件的读取指令;
确定读取的数据范围大于本地的缓存数据中缓存的所述目标文件的第二文件长度;
基于持久化的所述目标文件的第一文件长度更新所述缓存数据中缓存的所述目标文件的第二文件长度;并基于持久化的所述目标文件的第二指控信息更新所述缓存数据中缓存的所述目标文件的第三指控信息;
根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令。
在一实施例中,读取模块506根据缓存数据中缓存的第三指控信息响应所述读取指令,包括:根据缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;接收相应的存储区域返回的数据。
在一实施例中,读取模块506根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令,包括:根据更新后的缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;接收相应的存储区域返回的数据。
在一实施例中,读取模块506还用于:
判断缓存的所述目标文件的第三指控信息中的指控数目是否小于或等于设定数值;确定缓存的所述目标文件的第三指控信息中的指控数目小于或等于设定数值,发送所述读取指令给不存在写入操作异常的存储区域。
在一实施例中,读取模块506还用于:
确定缓存的所述目标文件的第三指控信息中的指控数目大于设定数值,则返回读取失败的指示信息。
实际应用时,指控信息生成模块501、持久化模块502、文件长度更新模块503、缓存加载模块504、缓存更新模块505及读取模块506,可以由数据一致性的处理装置中的处理器来实现。当然,处理器需要运行存储器中的计算机程序来实现它的功能。
需要说明的是:上述实施例提供的数据一致性的处理装置在进行数据一致性的处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据一致性的处理装置与数据一致性的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供一种处理设备。图6仅仅示出了该处理设备的示例性结构而非全部结构,根据需要可以实施图6示出的部分结构或全部结构。这里,处理设备可以理解为分布式文件系统的一个节点。
如图6所示,本发明实施例提供的处理设备600包括:至少一个处理器601、存储器602、用户接口603和至少一个网络接口604。处理设备600中的各个组件通过总线系统605耦合在一起。可以理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统605。
其中,用户接口603可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
本发明实施例中的存储器602用于存储各种类型的数据以支持处理设备的操作。这些数据的示例包括:用于在处理设备上操作的任何计算机程序。
本发明实施例揭示的数据一致性的处理方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,数据一致性的处理方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP,DigitalSignal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成本发明实施例提供的数据一致性的处理方法的步骤。
在示例性实施例中,处理设备可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
如图7所示,本发明实施例还提供一种分布式文件系统,该分布式文件系统包括多个前述的处理设备600及数据存储设备700,各处理设备600及数据存储设备700之间通过计算机网络连接。这里,该数据存储设备700可以为分布式存储设备,处理设备600可以为客户端或者服务器。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体可以是计算机可读存储介质,例如包括存储计算机程序的存储器602,上述计算机程序可由处理设备的处理器601执行,以完成本发明实施例方法所述的步骤。计算机可读存储介质可以是ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (15)

1.一种数据一致性的处理方法,其特征在于,包括:
确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;
将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息;
其中,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的长度更新持久化的所述目标文件的第一文件长度。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于持久化的第二指控信息、持久化的所述目标文件的第一文件长度生成本地的缓存数据,得到缓存的第三指控信息和所述目标文件的第二文件长度;
其中,所述第三指控信息用于指示本地缓存的所述目标文件中存在写入操作异常的存储区域;所述第二文件长度用于确定所述第三指控信息是否有效。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述第一指控信息更新所述第三指控信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定所述待写入数据成功写入的副本数量达到设定阈值,基于所述待写入数据的数据长度更新所述第二文件长度。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取针对所述目标文件的读取指令;
确定读取的数据范围小于或等于本地的缓存数据中缓存的所述目标文件的第二文件长度,根据本地的缓存数据中缓存的第三指控信息响应所述读取指令。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取针对所述目标文件的读取指令;
确定读取的数据范围大于本地的缓存数据中缓存的所述目标文件的第二文件长度;
基于持久化的所述目标文件的第一文件长度更新所述缓存数据中缓存的所述目标文件的第二文件长度;并基于持久化的所述目标文件的第二指控信息更新所述缓存数据中缓存的所述目标文件的第三指控信息;
根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令。
8.根据权利要求6所述的方法,其特征在于,所述根据缓存数据中缓存的第三指控信息响应所述读取指令,包括:
根据缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;
接收相应的存储区域返回的数据。
9.根据权利要求7所述的方法,其特征在于,所述根据更新后的缓存数据中缓存的所述目标文件的第三指控信息响应所述读取指令,包括:
根据更新后的缓存数据中缓存的所述目标文件的第三指控信息,发送所述读取指令给不存在写入操作异常的存储区域;
接收相应的存储区域返回的数据。
10.根据权利要求8或者9所述的方法,其特征在于,所述发送所述读取指令给不存在写入操作异常的存储区域之前,所述方法还包括:
判断缓存的所述目标文件的第三指控信息中的指控数目是否小于或等于设定数值;
所述发送所述读取指令给不存在写入操作异常的存储区域,包括:
确定缓存的所述目标文件的第三指控信息中的指控数目小于或等于设定数值,发送所述读取指令给不存在写入操作异常的存储区域。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
确定缓存的所述目标文件的第三指控信息中的指控数目大于设定数值,则返回读取失败的指示信息。
12.一种数据一致性的处理装置,其特征在于,所述装置包括:
指控信息生成模块,用于确定待写入数据的写入操作存在写入操作异常,生成用于记录写入操作异常的第一指控信息;
持久化模块,用于将所述第一指控信息存储至非易失性存储介质,以将所述第一指控信息添加至持久化的第二指控信息;
其中,所述写入操作为追加写,所述第一指控信息包括:待写入数据所属的目标文件的标识信息、待写入数据的存储信息;所述第二指控信息基于记录追加写的写入操作异常的第一指控信息更新;所述第二指控信息用于持久化指示所述目标文件中存在写入操作异常的存储信息。
13.一种处理设备,应用于分布式文件系统,其特征在于,所述处理设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器,用于运行计算机程序时,执行权利要求1至11任一项所述方法的步骤。
14.一种分布式文件系统,其特征在于,包括:多个如权利要求11所述的处理设备。
15.一种存储介质,所述存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至11任一项所述方法的步骤。
CN202010117535.2A 2020-02-25 2020-02-25 数据一致性的处理方法、装置、设备及分布式文件系统 Pending CN113377735A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010117535.2A CN113377735A (zh) 2020-02-25 2020-02-25 数据一致性的处理方法、装置、设备及分布式文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010117535.2A CN113377735A (zh) 2020-02-25 2020-02-25 数据一致性的处理方法、装置、设备及分布式文件系统

Publications (1)

Publication Number Publication Date
CN113377735A true CN113377735A (zh) 2021-09-10

Family

ID=77569361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010117535.2A Pending CN113377735A (zh) 2020-02-25 2020-02-25 数据一致性的处理方法、装置、设备及分布式文件系统

Country Status (1)

Country Link
CN (1) CN113377735A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464125B1 (en) * 2002-04-15 2008-12-09 Ibrix Inc. Checking the validity of blocks and backup duplicates of blocks during block reads
CN104461750A (zh) * 2013-09-25 2015-03-25 北京兆易创新科技股份有限公司 一种NAND flash的访问方法和装置
US20160110125A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Storage error management
CN106527958A (zh) * 2015-09-09 2017-03-22 阿里巴巴集团控股有限公司 用于分布式存储系统的写入数据、获取数据的方法和设备
CN107145302A (zh) * 2016-03-01 2017-09-08 阿里巴巴集团控股有限公司 一种用于在分布式存储系统中执行文件写入的方法与设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464125B1 (en) * 2002-04-15 2008-12-09 Ibrix Inc. Checking the validity of blocks and backup duplicates of blocks during block reads
CN104461750A (zh) * 2013-09-25 2015-03-25 北京兆易创新科技股份有限公司 一种NAND flash的访问方法和装置
US20160110125A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Storage error management
CN106527958A (zh) * 2015-09-09 2017-03-22 阿里巴巴集团控股有限公司 用于分布式存储系统的写入数据、获取数据的方法和设备
US20180203606A1 (en) * 2015-09-09 2018-07-19 Alibaba Group Holding Limited Method and device for writing data and acquiring data in a distributed storage system
CN107145302A (zh) * 2016-03-01 2017-09-08 阿里巴巴集团控股有限公司 一种用于在分布式存储系统中执行文件写入的方法与设备

Similar Documents

Publication Publication Date Title
US8954673B1 (en) Using a conditional read request and a hash to determine synchronization of data in a cache at a host with data in storage array
US7640276B2 (en) Backup system, program and backup method
CN112988467B (zh) 一种固态硬盘及其数据恢复方法和终端设备
CN107526535B (zh) 用于管理存储系统的方法和系统
CN111339131A (zh) 数据读写方法及系统
CN111897493B (zh) 存储空间管理方法、装置及电子设备、存储介质
US20210279048A1 (en) System capable of upgrading firmware in background and method for upgrading firmware in background
CN111651304B (zh) 基于双芯智能电表的软件恢复方法、装置和计算机设备
CN115408411A (zh) 数据写入方法、装置、电子设备及存储介质
KR20170054767A (ko) 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법
US20150067442A1 (en) Information processing apparatus and data repairing method
CN110888769B (zh) 数据处理方法及计算机设备
CN109189480B (zh) 文件系统启动方法及装置
CN111124294B (zh) 一种扇区映射信息的管理方法及装置、存储介质和设备
CN117131014A (zh) 数据库迁移方法、装置、设备及存储介质
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
CN113377735A (zh) 数据一致性的处理方法、装置、设备及分布式文件系统
CN115348276A (zh) 数据存储方法、装置、计算机设备及存储介质
CN114415981A (zh) 一种多控存储系统的io处理方法、系统及相关组件
US10866756B2 (en) Control device and computer readable recording medium storing control program
US9110850B2 (en) Method for accelerating start up of a computerized system
CN107305582B (zh) 一种元数据处理方法及装置
US20230393952A1 (en) Intelligent merge of primary and backup data
CN116257531B (zh) 一种数据库空间回收方法
US20220342753A1 (en) Method, electronic device and computer program product for storage management

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