CN114968668A - 数据处理方法、装置、数据接入端及存储介质 - Google Patents
数据处理方法、装置、数据接入端及存储介质 Download PDFInfo
- Publication number
- CN114968668A CN114968668A CN202210692395.0A CN202210692395A CN114968668A CN 114968668 A CN114968668 A CN 114968668A CN 202210692395 A CN202210692395 A CN 202210692395A CN 114968668 A CN114968668 A CN 114968668A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- target
- space
- stored
- 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
Links
Images
Classifications
-
- 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/1469—Backup restoration techniques
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的一种数据处理方法、装置、数据接入端及存储介质,涉及分布式存储领域。首先,接收数据写请求,数据写请求包括待存储数据;然后,对待存储数据进行处理,得到多个数据块,每个数据块均分配有序号;接着,针对每个数据块,根据数据块的序号,从多个存储节点中确定出目标节点,并将数据块与待存储数据的数据版本号发送给目标节点,以使目标节点将数据块和数据版本号分别存储至目标节点的第一空间和第二空间,其中,数据块的序号与目标节点的编号满足预设映射关系,第一空间位于第二空间之前,避免出现各存储节点中数据版本号一致,而数据块存储失败的情况,使数据接入端能及时恢复存储失败的数据块恢复,保证数据的一致性。
Description
技术领域
本发明涉及分布式存储领域,具体而言,涉及一种数据处理方法、装置、数据接入端及存储介质。
背景技术
大数据时代下,随着海量数据爆发式的增长,分布式存储越来越多的被应用。分布式存储是指数据接入端将待存储数据切分为多个数据条带,通过纠删码算法对多个数据条带进行编码,得到冗余的校验数据,再将各个数据条带和校验数据存储在多个存储节点上。当存在存储失败的数据时,可以通过已存储成功的数据恢复存储失败的数据。
现有的分布式存储技术中,一般是使用位图记录数据条带的存储位置,通过寻找存储位置来进行数据条带的读写操作,位图通常由元数据进行记录,并与数据条带一起被存储至各存储节点。当任意一个存储节点异常断电时,在该节点处可能会出现元数据存储成功,而数据条带存储失败的情况,此时,由于该节点与其他节点间元数据中的数据版本号是一致的,数据接入端不会对该节点处的存储失败的数据条带进行恢复,无法保障数据的一致性。
发明内容
为了克服现有技术的不足,本发明实施例提供了一种数据处理方法、装置、数据接入端和存储介质,其能够避免出现各存储节点中数据版本号一致,而数据条带存在存储失败的情况,使数据接入端能及时能对存储失败的数据条带进行恢复,从而保证数据的一致性。
本发明的实施例可以这样实现:
第一方面,本发明提供一种数据处理方法,应用于分布式存储系统中的数据接入端,所述分布式存储系统还包括多个存储节点,每个所述存储节点均设置有编号,每个所述存储节点均与所述数据接入端通信连接,所述方法包括:
接收数据写请求,所述数据写请求包括待存储数据;
对所述待存储数据进行处理,得到多个数据块,每个所述数据块均分配有序号;
针对每个所述数据块,根据所述数据块的序号,从所述多个存储节点中确定出目标节点,并将所述数据块与所述待存储数据的数据版本号发送给所述目标节点,以使所述目标节点将所述数据块和所述数据版本号分别存储至所述目标节点的第一空间和第二空间,其中,所述数据块的序号与所述目标节点的编号满足预设映射关系,所述第一空间位于所述第二空间之前。
在可选的实施方式中,所述对所述待存储数据进行处理,得到多个数据块的步骤前,所述方法还包括:
若所述数据写请求为一个,则将当前时间戳作为所述待存储数据的数据版本号;
若所述数据写请求为多个,则对所述当前时间戳进行多次自增运算,并按照每个所述数据写请求的接收时间的先后,将每次自增运算的结果作为一个所述数据写请求中的待存储数据的数据版本号。
在可选的实施方式中,所述对所述待存储数据进行处理,得到多个数据块的步骤包括:
按照预设长度将所述待存储数据切分为多个数据条带;
将每预设数量个所述数据条带组成一个原始数据块,得到多个第一数据块;
对所述多个原始数据块进行纠删编码,得到多个校验数据块,所述多个数据块包括所述多个原始数据块和所述多个校验数据块。
在可选的实施方式中,所述方法还包括:
接收数据读请求,所述数据读请求包括待读取数据的写入节点顺序;
根据所述写入节点顺序,从每个所述存储节点的第二空间中读取目标数据版本号;
若所有所述目标数据版本号均一致,则根据所述写入节点顺序,从每个所述存储节点的第一空间中读取目标数据块;
根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据,以响应所述数据读请求。
在可选的实施方式中,所述方法还包括:
若存在不一致的所述目标数据版本号,则根据每个所述目标数据版本号将多个所述存储节点划分为正常节点和异常节点,其中,所有所述正常节点对应的目标数据版本号均一致,每个所述异常节点对应的目标数据版本号与所有所述正常节点对应的目标数据版本号不一致;
根据所述写入节点顺序,从每个所述正常节点的第一空间中读取目标数据块;
根据每个所述正常节点对应的目标数据块,恢复每个所述异常节点对应的目标数据块;
根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据,以响应所述数据读请求。
在可选的实施方式中,所述根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据的步骤包括:
根据所述预设映射关系和每个所述存储节点的编号,为每个所述目标数据块分配序号;
按照每个所述目标数据块的序号对所有所述目标数据块进行排序,得到所述待读取数据。
在可选的实施方式中,所述方法还包括:
根据所述写入节点顺序和预设大小,确定每个所述异常节点的第一空间中的目标区域;
针对每个所述异常节点,利用所述异常节点对应的目标数据块,对所述异常节点的目标区域的内容进行覆盖。
第二方面,本发明提供一种数据处理装置,应用于分布式存储系统中的数据接入端,所述分布式存储系统还包括多个存储节点,每个所述存储节点均设置有编号,每个所述存储节点均与所述数据接入端通信连接,所述方法包括:
接收模块,用于接收数据写请求,所述数据写请求包括待存储数据;
处理模块,用于对所述待存储数据进行处理,得到多个数据块,每个所述数据块均分配有序号;
发送模块,用于针对每个所述数据块,根据所述数据块的序号,从所述多个存储节点中确定出目标节点,并将所述数据块与所述待存储数据的数据版本号发送给所述目标节点,以使所述目标节点将所述数据块和所述数据版本号分别存储至所述目标节点的第一空间和第二空间,其中,所述数据块的序号与所述目标节点的编号满足预设映射关系,所述第一空间位于所述第二空间之前。
第三方面,本发明提供一种数据接入端,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如前述实施方式任一项所述的数据处理方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如前述实施方式任一项所述的数据处理方法。
相较于现有技术,本发明实施例提供的一种数据处理方法、装置、数据接入端及存储介质,首先,接收数据写请求,数据写请求包括待存储数据;然后,对待存储数据进行处理,得到多个数据块,每个数据块均分配有序号;接着,针对每个数据块,根据数据块的序号,从多个存储节点中确定出目标节点,并将数据块与待存储数据的数据版本号发送给目标节点,以使目标节点将数据块和数据版本号分别存储至目标节点的第一空间和第二空间,其中,数据块的序号与目标节点的编号满足预设映射关系,第一空间位于第二空间之前。由于本发明实施例将每个数据块与待存储数据的数据版本号一起发送给目标节点,使目标节点将数据块和数据版本号分别存储至其第一空间和第二空间,且目标节点中第一空间位于第二空间之前,从而避免出现各存储节点中数据版本号一致,而数据块存储失败的情况,使数据接入端能及时对存储失败的数据块进行恢复,保证数据的一致性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的分布式存储系统的一种结构示意图;
图2为本发明实施例提供的分布式存储过程的一种示意图;
图3为本发明实施例提供的数据处理方法的一种流程示意图;
图4为本发明实施例提供的数据写请求响应过程的一种示意图;
图5为本发明实施例提供的步骤S102的实现方式的一种流程示意图;
图6为本发明实施例提供的数据处理方法的另一种流程示意图;
图7为本发明实施例提供的数据读请求响应过程的一种示意图;
图8为本发明实施例提供的数据读请求响应过程的另一种示意图;
图9为本发明实施例提供的数据写请求响应过程的一种示例;
图10为本发明实施例提供的数据读请求响应过程的一种示例;
图11为本发明实施例提供的数据读请求响应过程的另一种示例;
图12为本发明实施例提供的数据接入端的一种结构示意框图;
图13为本发明实施例提供的数据处理装置的一种功能单元框图。
图标:300-数据接入端;310-存储器;320-处理器;400-数据处理装置;401-接收模块;402-处理模块;403-发送模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
大数据时代下,随着海量数据爆发式的增长,分布式存储越来越多的被应用。分布式储存要求存储系统具有高可用、高性能等特点。然而,当传统的文件系统应用于分布式存储时,大多存在着读写性能差、可靠性低等问题,同时当节点数量分布较多时,也对数据一致性保证带来很大的挑战。
目前业界的应对方法,包括,为数据分配位置信息以进行数据读取写入,但该方法会造成数据碎片化,且数据的随机读写会导致存储系统性能较差;或将数据的元数据存储在多个存储节点并拷贝副本,同时对元数据进行校验和修复来保证数据的一致性,但该方法的弊端在于副本拷贝会占用多余空间,校验和修复也较为耗时且消耗系统性能;或读写数据时判断数据的各个副本的数据版本号是否一致,若不一致,则选择最完整的副本进行替换,但该方法在节点离线或出现数据异常时无法准确判断各个副本的数据版本号是否一致,会导致数据不一致的情况;或优化纠删编码技术及多副本技术来提高分布式的数据存储性能,但是当数据量较大时,算法优化无法节约较大的性能。
也就是说,现有的分布式存储技术暂未解决如何保证数据一致性的同时,提高分布式存储系统的读写性能的问题。
有鉴于此,本发明实施例提供了一种数据处理方法,下面将进行详细介绍。
请参照图1,图1为本发明实施例提供的分布式存储系统的结果示意图,该分布式存储系统包括数据接入端和多个存储节点。数据接入端与每个存储节点均通信连接。
数据接入端可以与上层应用或外部主机交互,接收上层应用或外部主机发送的数据写请求,如图2所示,数据接入端根据纠删编码算法将数据分为n个原始数据块和m个校验数据块,同时为每个原始数据块或校验数据块生成数据版本号,最后同时将每个原始数据块或校验数据块以及对应的数据版本号写到每个存储节点中。当进行读数据请求时,数据接入端从存储节点读取数据块的数据版本号进行比对,若数据块的数据版本号一致,则进行数据块的读取,以响应数据读请求,若读取的数据块的数据版本号不一致,则数据接入端会将原始数据块和校验数据块通过纠删计算来进行数据恢复后再读取。数据接入端可以是服务器、个人计算机(Personal Computer,以下简称PC)、笔记本电脑等,数据接入端也可以是一个设备上的一个或多个程序模块,或者一个设备上运行的虚拟机或容器,客户端还可以是多个设备组成的集群,例如可以是分布在多台设备上的多个程序模块的统称。
存储节点可以存储来自数据接入端的原始数据块和/或校验数据块,存储节点可以是服务器、PC、笔记本电脑等。存储节点可以是物理存储节点,也可以是物理存储节点划分得到的逻辑存储节点。
请参照图3,图3示出了本发明实施例提供的数据处理方法的一种流程,该数据处理方法包括步骤S101至S103,其执行主体为图1中的数据接入端。
S101,接收数据写请求。
其中,数据写请求包括待存储数据,数据写请求可以是上层应用或外部主机发送给数据接入端的。
S102,对待存储数据进行处理,得到多个数据块。
其中,数据接入端在接收到数据写请求后,将长度为L的待存储数据切分为n个原始数据块,再通过纠删比例生成m个校验数据块,并且为n个原始数据块均分配了序号,序号的值范围为[1,n],为m个校验数据块也分配了序号,序号的值范围为[1,m](见图4)。
S103,针对每个数据块,根据数据块的序号,从多个存储节点中确定出目标节点,并将数据块与待存储数据的数据版本号发送给目标节点,以使目标节点将数据块和数据版本号分别存储至目标节点的第一空间和第二空间。
其中,数据块的序号与目标节点的编号满足预设映射关系,第一空间位于第二空间之前。如图4所示,存储节点分为数据节点和校验节点,分别用于存储原始数据块和校验数据块,数据节点的总个数为n,校验节点的总个数为m,且每个数据节点均设置了编号,编号的值的范围为[1,n],每个校验节点也均设置了编号,编号的值的范围为[1,m]。
预设映射关系包括n个原始数据块的序号与n个数据节点的编号之间的对应关系,以及m个校验数据块的序号与m个校验节点的编号之间的对应关系。针对每个原始数据块或校验数据块,根据其序号和预设映射关系,从n个数据节点或m个校验节点中确定出目标节点,再将该原始数据块或校验数据块和基于当前时间戳生成的待存储数据的数据版本号一起发送给目标节点,例如,原始数据块1的目标节点为数据节点1,校验数据块m的目标节点为校验节点m(见图4)。
针对每个数据节点或校验节点,其磁盘空间均被划分为第一空间和第二空间,且第一空间位于第二空间之前。在写入数据块和数据版本号时,数据块要先于数据版本号落盘,从而避免了数据版本号存储成功,但数据块存储失败的情况出现,使数据接入端能及时对存储失败的数据块进行恢复,以保证数据的一致性。
本发明实施例提供的上述方法,其有益效果在于,通过将每个数据块与待存储数据的数据版本号一起发送给目标节点,使目标节点将数据块和数据版本号分别存储至其第一空间和第二空间,且目标节点中第一空间位于第二空间之前,从而避免出现各存储节点中数据版本号一致,而数据块存储失败的情况,使数据接入端能及时对存储失败的数据块进行恢复,保证数据的一致性。
由于现有方法中,数据版本号是由各存储节点生成的,当某存储节点异常断电时,除了出现数据版本号存储成功,但数据块存储失败的情况,还可能出现数据版本号存储错误,但数据块存储成功的情况,这会使得数据接入端对各存储节点中存储成功的数据块进行恢复,消耗系统性能。对此,在执行步骤S102之前,本发明实施例还提供了一种由数据接入端生成数据版本号的实现方式,下面进行详细介绍。
在本发明实施例中,数据接入端在生成待存储数据的数据版本号时,可能存在以下两个情况。
情况一:若数据写请求为一个,则将当前时间戳作为待存储数据的数据版本号。
其中,当数据接入端接收到的数据写请求为一个时,可以直接将当前分布式存储系统的系统时间戳作为该数据写请求中的待存储数据的数据版本号。
情况二:若数据写请求为多个,则对当前时间戳进行多次自增运算,并按照每个数据写请求的接收时间的先后,将每次自增运算的结果作为一个数据写请求中的待存储数据的数据版本号。
其中,当数据接入端接收到的数据写请求为多个时,对当前分布式存储系统的系统时间戳作为初始值进行多次自增运算,自增运算的次数为数据写请求的总个数,并且按照每个数据写请求的接收时间的先后,将每次自增运算的结果均作为一个数据写请求中的待存储数据的数据版本号,从而得到每个数据写请求中的待存储数据的数据版本号。
本发明实施例还提供的上述数据版本号的生成方式,可以实现对数据版本号进行统一管理,并通过该数据版本号来保证数据的一致性。
下面对步骤S102进行详细介绍。
请参照图5,图5示出了本发明实施例提供的步骤S102的实现方式的一种流程,步骤S102包括子步骤S102-1至S102-3。
S102-1,按照预设长度将待存储数据切分为多个数据条带。
其中,每个数据条带的长度均为预设长度。如图4所示,预设长度为x,长度为L的待存储数据被切分为L/x个数据条带。
S102-2,将每预设数量个数据条带组成一个原始数据块,得到多个原始数据块。
其中,预设数量由预设长度、数据节点的个数以及待存储数据的长度确定。如图4所示,待存储数据的长度为L,预设长度为x,数据节点的个数为n,则预设数量为L/nx。可以理解地,按照数据条带的切分顺序,每L/nx数据条带组成一个原始数据块,一共得到n个原始数据块。
S102-3,对多个原始数据块进行纠删编码,得到多个校验数据块。
其中,如图4所示,对n个原始数据块进行纠删运算,得到m个校验数据块,可以理解地,每个校验数据块均包括L/nx个数据条带,每个数据条带的长度为x。
如图4所示,每个存储节点中为数据块和待存储数据的数据版本号分配了固定且连续的第一空间和第二空间,将一个数据块内数据读写的方式由随机读写变为顺序读写,提高了分布式存储系统的读写性能。
在介绍完数据接入端处理数据写请求的过程,下面将对数据接入端处理数据读请求的过程进行详细介绍。
请参照图6,图6示出了本发明实施例提供的数据处理方法的另一种流程,该数据处理方法包括步骤S201至S207。
S201,接收数据读请求。
其中,数据读请求包括待读取数据的写入节点顺序,待读取数据包括数据接入端通过处理数据写请求,存储至多个数据节点的原始数据块,而写入节点顺序是指原始数据块在存储节点的第一空间中的位置次序。
如图4所示,数据接入端按照接收时间先后,依次处理了数据写请求1,数据写请求2,…,数据写请求k,其中,数据节点1的第一空间中依次写入了数据写请求1对应的原始数据块1,数据写请求2对应的原始数据块1,…,数据写请求k对应的原始数据块1,同样地,数据节点1的第二空间中依次写入了数据写请求1中待存储数据的数据版本号,数据写请求2中待存储数据的数据版本号,…,数据写请求k中待存储数据的数据版本号,可以理解地,数据节点n的第一空间中依次写入了数据写请求1对应的原始数据块n,数据写请求2对应的原始数据块n,…,数据写请求k对应的原始数据块n,数据节点n的第二空间中依次写入了数据写请求1中待存储数据的数据版本号,数据写请求2中待存储数据的数据版本号,…,数据写请求k中待存储数据的数据版本号。若待读取数据的写入节点顺序为2,则由数据节点1至数据节点n中的第二个原始数据块组成待读取数据。
S201,根据写入节点顺序,从每个存储节点的第二空间中读取目标数据版本号。
其中,每个存储节点的第二空间内存储有多个数据版本号,且每个数据版本号占据的空间大小是相同的。针对每个存储节点,按照写入节点顺序和数据版本号占据的空间大小,确定出第二空间中的目标区域,将从目标区域读取的内容作为目标数据版本号。
例如,写入节点顺序为4,每个数据版本号占据的空间大小均为8B,则计算出每个存储节点的第二空间的内的目标区域为第24B至第32B,将从每个存储节点的第二空间中的目标区域内读取到的内容,作为该存储节点对应的目标数据版本号。
S203,若所有目标数据版本号均一致,则根据写入节点顺序,从每个存储节点的第一空间中读取目标数据块。
其中,当从每个存储节点的第二空间中读取的目标数据版本号均一致时,则意味着每个存储节点处用于组成待读取数据的数据块均存储成功。同样地,每个存储节点的第一空间内存储有多个数据块,且每个数据块占据的空间大小是相同的。针对每个存储节点,按照写入节点顺序和数据块占据的空间大小,确定出第一空间中的目标区域,将从目标区域读取的内容作为目标数据块,再组合所有目标数据块得到待读取数据。
例如,写入节点顺序为4,每个数据块占据的空间大小均为128K,则计算出每个存储节点的第一空间的内的目标区域为第384K至第512K,将从每个存储节点的第一空间中的目标区域内读取到的内容,作为该存储节点对应的目标数据块。
S204,若存在不一致的目标数据版本号,则根据每个目标数据版本号将多个存储节点划分为正常节点和异常节点。
其中,当从每个存储节点的第二空间中读取的目标数据版本号中,存在不一致的目标数据版本号时,则意味着一些存储节点处用于组成待读取数据的数据块是存储失败的。此时,则根据每个目标数据版本号,将多个存储节点划分为正常节点和异常节点两类。由于正常节点处用于组成待读取数据的数据块是存储成功的,异常节点处用于组成待读取数据的数据块是存储失败的,可以理解地,所有正常节点对应的目标数据版本号均一致,每个异常节点对应的目标数据版本号与所有正常节点对应的目标数据版本号不一致。
S205,根据写入节点顺序,从每个正常节点的第一空间中读取目标数据块。
其中,同上述步骤203,每个正常点的第一空间内存储有多个数据块,且每个数据块占据的空间大小是相同的。针对每个正常节点,按照写入节点顺序和数据块占据的空间大小,确定出第一空间中的目标区域,将从目标区域读取的内容作为目标数据块。
S206,根据每个正常节点对应的目标数据块,恢复每个异常节点对应的目标数据块。
其中,通过对所有正常节点对应的目标数据块进行纠删计算,恢复每个异常节点对应的目标数据块。
S207,根据预设映射关系和所有目标数据块,生成待读取数据,以响应数据读请求。
其中,如图7所示,当从每个存储节点的第二空间中读取的目标数据版本号均一致时,可以利用所有从数据节点的第一空间内读取目标数据块来生成待读取数据。如图8所示,当从每个存储节点的第二空间中读取的目标数据版本号中,存在不一致的目标数据版本号时,可以利用所有数据节点(可能是正常节点,也可能是异常节点)对应的目标数据块来生成待读取数据。
步骤S207的实现过程如下:
首先,根据预设映射关系和每个存储节点的编号,为每个目标数据块分配序号;
然后,按照每个目标数据块的序号对所有目标数据块进行排序,得到待读取数据。
可以理解地,由于异常节点处存储的用于组成待读取数据的数据块是存储失败的,为了便于后续的数据读取,还需将恢复处理得到的异常节点对应地目标数据块进行重新写入,详细的实现过程如下:
首先,根据写入节点顺序和预设大小,确定每个异常节点的第一空间中的目标区域;
然后,针对每个异常节点,利用异常节点对应的目标数据块,对异常节点的目标区域的内容进行覆盖。
为了更加清楚的介绍前述的数据处理方法,本发明实施例假设分布式存储系统中存储节点的数量为3(2个数据节点,1个校验节点),纠删比例为2:1进行举例说明。
如图9所示,数据接入端接收上层应用或外部主机发送的数据写请求,将数据写请求中总长度为256K的待存储数据,根据纠删比例拆分为2个原始数据块和1个校验数据块,每个原始数据块或校验数据块均包括32个数据条带,每个书数据条带的长度为4K。根据分布式存储系统的当前时间戳,得到待存储数据的数据版本号为164961834。
根据预设映射关系,将序号为1的原始数据块和数据版本号分别写入编号为1的数据节点的第一空间和第二空间,将序号为2的原始数据块和数据版本号写入编号为2的数据节点的第一空间和第二空间,将序号为1的校验数据块和数据版本号写入编号为1的校验节点的第一空间和第二空间,以响应数据写请求。
每个数据节点由多个64MB大小的第一空间和128KB大小的第二空间组成,多个数据写请求将多个原始数据块和对应的数据版本号连续存储再数据节点的磁盘上。同样地,每个校验节点也由多个64MB大小的第一空间和128KB大小的第二空间组成,多个数据写请求将多个校验块和对应的数据版本号连续存储再数据节点的磁盘上。
数据接入端接收上层应用或外部主机发送的数据读请求,根据数据读请求中的待读取数据的写入节点顺序,2个数据节点和1个校验节点的第二空间中读取目标数据版本号,并进行对比。
如图10所示,若从2个数据节点和1个校验节点的第二空间中读取目标数据版本号一致,且满足纠删比例,则根据待读取数据的写入节点顺序从2个数据节点的第一空间中读取目标数据块,再根据预设映射关系和数据节点的编号,组合所有目标数据块,得到待读取数据,以响应数据读请求。
如图11所示,若从数据节点1的第二空间中读取的目标数据版本号与从数据节点1的第二空间中读取的目标数据版本号不一致,与从校验节点1的第二空间中读取的目标数据版本号一致,在满足纠删比例的情况下,数据接入端首先根据待读取数据的写入节点顺序从数据节点1和校验节点1的第一空间内读取目标数据块,并通过纠删计算恢复出数据节点2对应的目标数据块。在完成恢复处理后,数据接入端根据预设映射关系和数据节点的编号,将数据节点1和数据节点2对应的目标数据块组合成待读取数据,以响应数据读请求。
进一步地,本发明实施例还提供了数据接入端300的一种结构示意框图,请参照图12,数据接入端300可以包括存储器310和处理器320。
其中,处理器320可以是一个通用的中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制上述方法实施例提供的数据处理方法的程序执行的集成电路。
存储器310可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmabler-Only MEMory,EEPROM)、只读光盘(CompactdiscRead-Only MEMory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器310可以是独立存在,通过通信总线与处理器320相连接。存储器310也可以和处理器320集成在一起。其中,存储器310用于存储执行本申请方案的机器可执行指令。处理器320用于执行存储器310中存储的机器可执行指令,以实现上述的方法实施例。
本发明实施例还提供一种包含计算机程序的计算机可读存储介质,计算机程序在被执行时可以用于执行上述的方法实施例提供的数据处理方法中的相关操作。
请参照图13,图13为本发明实施例提供的数据处理装置400的一种功能单元框图。数据处理装置400应用于数据接入端300,可以包括接收模块401、处理模块402、发送模块403。其中,接收模块401、处理模块402、发送模块403均能以软件形式存储于存储器或计算机可读存储介质中。需要说明的是,本发明实施例提供的数据处理装置400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本发明实施例部分未提及指出。
接收模块401,用于接收数据写请求,数据写请求包括待存储数据。
处理模块402,用于对待存储数据进行处理,得到多个数据块,每个数据块均分配有序号。
发送模块403,用于针对每个数据块,根据数据块的序号,从多个存储节点中确定出目标节点,并将数据块与待存储数据的数据版本号发送给目标节点,以使目标节点将数据块和数据版本号分别存储至目标节点的第一空间和第二空间,其中,数据块的序号与目标节点的编号满足预设映射关系,第一空间位于第二空间之前。
在一种实现方式中,处理模块402还用于若数据写请求为一个,则将当前时间戳作为待存储数据的数据版本号;若数据写请求为多个,则对当前时间戳进行多次自增运算,并按照每个数据写请求的接收时间的先后,将每次自增运算的结果作为一个数据写请求中的待存储数据的数据版本号。
在一种实现方式中,处理模块402具体用于按照预设长度将待存储数据切分为多个数据条带;将每预设数量个数据条带组成一个原始数据块,得到多个校验数据块;对多个原始数据块进行纠删编码,得到多个校验数据块,多个数据块包括多个原始数据块和多个校验数据块。
在一种实现方式中,接收模块401还用于接收数据读请求,数据读请求包括待读取数据的写入节点顺序;处理模块402还用于根据写入节点顺序,从每个存储节点的第二空间中读取目标数据版本号;若所有目标数据版本号均一致,则根据写入节点顺序,从每个存储节点的第一空间中读取目标数据块;根据预设映射关系和所有目标数据块,生成待读取数据,以响应数据读请求。
在一种实现方式中,处理模块402还用于若存在不一致的目标数据版本号,则根据每个目标数据版本号将多个存储节点划分为正常节点和异常节点,其中,所有正常节点对应的目标数据版本号均一致,每个异常节点对应的目标数据版本号与所有正常节点对应的目标数据版本号不一致;根据写入节点顺序,从每个正常节点的第一空间中读取目标数据块;根据每个正常节点对应的目标数据块,恢复每个异常节点对应的目标数据块;根据预设映射关系和所有目标数据块,生成待读取数据,以响应数据读请求。
在一种实现方式中,处理模块402具体用于根据预设映射关系和每个存储节点的编号,为每个目标数据块分配序号;按照每个目标数据块的序号对所有目标数据块进行排序,得到待读取数据。
在一种实现方式中,处理模块402还用于根据写入节点顺序和预设大小,确定每个异常节点的第一空间中的目标区域;针对每个异常节点,利用异常节点对应的目标数据块,对异常节点的目标区域的内容进行覆盖。
本发明实施例提供的一种数据处理方法、装置、数据接入端及存储介质,首先,接收数据写请求,数据写请求包括待存储数据;然后,对待存储数据进行处理,得到多个数据块,每个数据块均分配有序号;接着,针对每个数据块,根据数据块的序号,从多个存储节点中确定出目标节点,并将数据块与待存储数据的数据版本号发送给目标节点,以使目标节点将数据块和数据版本号分别存储至目标节点的第一空间和第二空间,其中,数据块的序号与目标节点的编号满足预设映射关系,第一空间位于第二空间之前。由于本发明实施例将每个数据块与待存储数据的数据版本号一起发送给目标节点,使目标节点将数据块和数据版本号分别存储至其第一空间和第二空间,且目标节点中第一空间位于第二空间之前,从而避免出现各存储节点中数据版本号一致,而数据块存储失败的情况,使数据接入端能及时对存储失败的数据块进行恢复,保证数据的一致性。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于分布式存储系统中的数据接入端,所述分布式存储系统还包括多个存储节点,每个所述存储节点均设置有编号,每个所述存储节点均与所述数据接入端通信连接,所述方法包括:
接收数据写请求,所述数据写请求包括待存储数据;
对所述待存储数据进行处理,得到多个数据块,每个所述数据块均分配有序号;
针对每个所述数据块,根据所述数据块的序号,从所述多个存储节点中确定出目标节点,并将所述数据块与所述待存储数据的数据版本号发送给所述目标节点,以使所述目标节点将所述数据块和所述数据版本号分别存储至所述目标节点的第一空间和第二空间,其中,所述数据块的序号与所述目标节点的编号满足预设映射关系,所述第一空间位于所述第二空间之前。
2.如权利要求1所述的方法,其特征在于,所述对所述待存储数据进行处理,得到多个数据块的步骤前,所述方法还包括:
若所述数据写请求为一个,则将当前时间戳作为所述待存储数据的数据版本号;
若所述数据写请求为多个,则对所述当前时间戳进行多次自增运算,并按照每个所述数据写请求的接收时间的先后,将每次自增运算的结果作为一个所述数据写请求中的待存储数据的数据版本号。
3.如权利要求1所述的方法,其特征在于,所述对所述待存储数据进行处理,得到多个数据块的步骤包括:
按照预设长度将所述待存储数据切分为多个数据条带;
将每预设数量个所述数据条带组成一个原始数据块,得到多个原始数据块;
对所述多个原始数据块进行纠删编码,得到多个校验数据块,所述多个数据块包括所述多个原始数据块和所述多个校验数据块。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收数据读请求,所述数据读请求包括待读取数据的写入节点顺序;
根据所述写入节点顺序,从每个所述存储节点的第二空间中读取目标数据版本号;
若所有所述目标数据版本号均一致,则根据所述写入节点顺序,从每个所述存储节点的第一空间中读取目标数据块;
根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据,以响应所述数据读请求。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若存在不一致的所述目标数据版本号,则根据每个所述目标数据版本号将多个所述存储节点划分为正常节点和异常节点,其中,所有所述正常节点对应的目标数据版本号均一致,每个所述异常节点对应的目标数据版本号与所有所述正常节点对应的目标数据版本号不一致;
根据所述写入节点顺序,从每个所述正常节点的第一空间中读取目标数据块;
根据每个所述正常节点对应的目标数据块,恢复每个所述异常节点对应的目标数据块;
根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据,以响应所述数据读请求。
6.如权利要求4或5所述的方法,其特征在于,所述根据所述预设映射关系和所有所述目标数据块,生成所述待读取数据的步骤包括:
根据所述预设映射关系和每个所述存储节点的编号,为每个所述目标数据块分配序号;
按照每个所述目标数据块的序号对所有所述目标数据块进行排序,得到所述待读取数据。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述写入节点顺序和预设大小,确定每个所述异常节点的第一空间中的目标区域;
针对每个所述异常节点,利用所述异常节点对应的目标数据块,对所述异常节点的目标区域的内容进行覆盖。
8.一种数据处理装置,其特征在于,应用于分布式存储系统中的数据接入端,所述分布式存储系统还包括多个存储节点,每个所述存储节点均设置有编号,每个所述存储节点均与所述数据接入端通信连接,所述方法包括:
接收模块,用于接收数据写请求,所述数据写请求包括待存储数据;
处理模块,用于对所述待存储数据进行处理,得到多个数据块,每个所述数据块均分配有序号;
发送模块,用于针对每个所述数据块,根据所述数据块的序号,从所述多个存储节点中确定出目标节点,并将所述数据块与所述待存储数据的数据版本号发送给所述目标节点,以使所述目标节点将所述数据块和所述数据版本号分别存储至所述目标节点的第一空间和第二空间,其中,所述数据块的序号与所述目标节点的编号满足预设映射关系,所述第一空间位于所述第二空间之前。
9.一种数据接入端,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210692395.0A CN114968668A (zh) | 2022-06-17 | 2022-06-17 | 数据处理方法、装置、数据接入端及存储介质 |
PCT/CN2023/097128 WO2023241350A1 (zh) | 2022-06-17 | 2023-05-30 | 数据处理方法、装置、数据接入端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210692395.0A CN114968668A (zh) | 2022-06-17 | 2022-06-17 | 数据处理方法、装置、数据接入端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968668A true CN114968668A (zh) | 2022-08-30 |
Family
ID=82963496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210692395.0A Pending CN114968668A (zh) | 2022-06-17 | 2022-06-17 | 数据处理方法、装置、数据接入端及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114968668A (zh) |
WO (1) | WO2023241350A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454959A (zh) * | 2022-11-08 | 2022-12-09 | 中国民用航空飞行学院 | 航空飞行计划制定时气象数据核实方法及系统 |
CN116301670A (zh) * | 2023-05-25 | 2023-06-23 | 极限数据(北京)科技有限公司 | 一种数据分区方法及数据处理方法 |
WO2023241350A1 (zh) * | 2022-06-17 | 2023-12-21 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据接入端及存储介质 |
CN118170783A (zh) * | 2024-05-11 | 2024-06-11 | 北京爱宾果科技有限公司 | 分布式存储系统的数据处理方法、设备及存储介质 |
US20240231639A9 (en) * | 2022-10-21 | 2024-07-11 | Western Digital Technologies, Inc. | Data Storage Device and Method for Reducing Read Disturbs When Reading Redundantly-Stored Data |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959301B2 (en) * | 2012-11-09 | 2015-02-17 | International Business Machines Corporation | Accessing data in a storage system |
CN106708651B (zh) * | 2016-11-16 | 2020-09-11 | 北京三快在线科技有限公司 | 基于纠删码的部分写入方法及装置、存储介质、设备 |
CN109684338A (zh) * | 2018-11-20 | 2019-04-26 | 深圳花儿数据技术有限公司 | 一种存储系统的数据更新方法 |
CN109558086B (zh) * | 2018-12-03 | 2019-10-18 | 浪潮电子信息产业股份有限公司 | 一种数据读取方法、系统及相关组件 |
WO2021046693A1 (zh) * | 2019-09-09 | 2021-03-18 | 华为技术有限公司 | 存储系统中数据处理方法、装置以及存储系统 |
CN113297203B (zh) * | 2020-07-15 | 2024-07-02 | 阿里巴巴集团控股有限公司 | 数据查询和写入方法和装置,计算机存储介质和电子设备 |
CN111857603B (zh) * | 2020-07-31 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据处理方法及相关装置 |
CN112988683A (zh) * | 2021-02-07 | 2021-06-18 | 北京金山云网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113590041B (zh) * | 2021-07-29 | 2024-05-17 | 杭州宏杉科技股份有限公司 | 一种数据保护存储方法、装置及设备 |
CN114415976B (zh) * | 2022-03-28 | 2022-07-01 | 深圳市杉岩数据技术有限公司 | 一种分布式数据存储系统与方法 |
CN114968668A (zh) * | 2022-06-17 | 2022-08-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据接入端及存储介质 |
-
2022
- 2022-06-17 CN CN202210692395.0A patent/CN114968668A/zh active Pending
-
2023
- 2023-05-30 WO PCT/CN2023/097128 patent/WO2023241350A1/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023241350A1 (zh) * | 2022-06-17 | 2023-12-21 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据接入端及存储介质 |
US20240231639A9 (en) * | 2022-10-21 | 2024-07-11 | Western Digital Technologies, Inc. | Data Storage Device and Method for Reducing Read Disturbs When Reading Redundantly-Stored Data |
CN115454959A (zh) * | 2022-11-08 | 2022-12-09 | 中国民用航空飞行学院 | 航空飞行计划制定时气象数据核实方法及系统 |
CN116301670A (zh) * | 2023-05-25 | 2023-06-23 | 极限数据(北京)科技有限公司 | 一种数据分区方法及数据处理方法 |
CN116301670B (zh) * | 2023-05-25 | 2023-09-05 | 极限数据(北京)科技有限公司 | 一种数据分区方法及数据处理方法 |
CN118170783A (zh) * | 2024-05-11 | 2024-06-11 | 北京爱宾果科技有限公司 | 分布式存储系统的数据处理方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023241350A1 (zh) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968668A (zh) | 数据处理方法、装置、数据接入端及存储介质 | |
EP3726364B1 (en) | Data write-in method and solid-state drive array | |
US11243706B2 (en) | Fragment management method and fragment management apparatus | |
CN104750565B (zh) | Nand坏块处理方法及nand闪存设备 | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储系统 | |
CN110018783B (zh) | 一种数据存储方法、装置及系统 | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
CN109344094B (zh) | 地址映射关系反馈方法、装置、设备及可读存储介质 | |
JP2007012056A (ja) | データ保全の先送りされた認証を有するファイルシステム | |
CN115437581B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
JP2007012054A (ja) | ファイルシステム保全の最適化されたスタートアップ認証 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
CN103577574A (zh) | 一种基于nand flash的高可靠线性文件系统 | |
US11640244B2 (en) | Intelligent block deallocation verification | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN110825552B (zh) | 数据存储方法、数据恢复方法、节点及存储介质 | |
CN108491290B (zh) | 一种数据写入方法及装置 | |
CN113031876A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113885809B (zh) | 数据管理系统及方法 | |
CN112286725A (zh) | 数据处理方法、装置及电子设备 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN111435323A (zh) | 信息的传输方法、装置、终端、服务器及存储介质 | |
CN115309336A (zh) | 数据写入方法、缓存信息更新方法及相关装置 | |
CN114327292A (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 |