CN110968255B - 数据处理方法、装置、存储介质以及处理器 - Google Patents
数据处理方法、装置、存储介质以及处理器 Download PDFInfo
- Publication number
- CN110968255B CN110968255B CN201811152247.XA CN201811152247A CN110968255B CN 110968255 B CN110968255 B CN 110968255B CN 201811152247 A CN201811152247 A CN 201811152247A CN 110968255 B CN110968255 B CN 110968255B
- Authority
- CN
- China
- Prior art keywords
- data
- coding
- storing
- block
- storage 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/0626—Reducing size or complexity of 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据处理方法、装置、存储介质以及处理器。其中,该方法包括:接收写入数据;将待写入数据进行分片处理,得到多个分片数据;将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。本申请解决了相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据处理方法、装置、存储介质以及处理器。
背景技术
随着计算机技术的不断发展,分布式系统的存储规模也越来越大,分布式系统的容错性能至关重要,数据的存储成本与可靠性是关键因素。其中,纠删码可以在保证分布式系统的数据可靠性的前提下,节约系统的存储开销。
目前,分布式系统通常采用异步编码的方式,即首先对数据进行多副本存储,并在分布式系统的后台采用一定的策略将其转换成纠删码方式进行存储。
然而,上述方式对数据的读写流量进行了放大,并且系统的存储空间占用率偏高。另外,由于纠删码文件需要使用对齐的数据来计算校验数据,而写请求的大小通常是随机的,因此,采用将数据直接写入纠删码文件的方式,需要添加填充数据,而添加填充数据无疑占用系统的冗余存储空间,还使得存储空间的有效数据管理困难。
因此,相关技术中,采用多副本存储的方式对数据进行处理时,会导致读写流量放大;而采用纠删码的方式进行处理时,由于需要填充数据,又会导致冗余空间的占用以及复杂空洞。因此,在相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、装置、存储介质以及处理器,以至少解决相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:接收写入数据;将待写入数据进行分片处理,得到多个分片数据;将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
根据本发明实施例的另一方面,还提供了一种数据处理方法,包括:接收数据读请求;响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:第一接收模块,用于接收待写入数据;分片模块,用于将待写入数据进行分片处理,得到多个分片数据;存储模块,用于将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:第二接收模块,用于接收数据读请求;确定模块,用于响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;读取模块,用于从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行数据处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行数据处理方法。
在本发明实施例中,采用在数据的存储区域中设置填充区的方式,在接收待写入数据之后,将待写入数据进行分片处理,得到多个分片数据,然后将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
在上述过程中,将分片数据的存储信息存储在一个编码块的填充区内,由该编码块的填充区对所有数据的存储信息进行管理,无需为每个分片数据对应的编码块额外保存空洞的存储信息,从而减少了持久化操作和管理代价。另外,当需要对数据进行读写操作时,仅访问具有存储信息的编码块的填充区即可,降低了读写流量,减少了冗余空间的占用,降低了系统内存空间的浪费。
由此可见,本申请所提供的方案可以解决相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种数据处理方法的流程图;
图3是根据本申请实施例的一种可选的数据存储区域的结构示意图;
图4是根据本申请实施例的一种可选的条带的结构示意图;
图5是根据本申请实施例的一种可选的条带的结构示意图;
图6是根据本申请实施例的一种数据处理方法的流程图;
图7是根据本申请实施例的一种可选的数据处理方法的流程图;
图8是根据本申请实施例的一种数据处理装置的结构示意图;
图9是根据本申请实施例的一种数据处理装置的结构示意图;以及
图10是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端A(或移动设备A)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端A(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端A的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端A(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图2所示的数据处理方法。图2是根据本申请实施例一的数据处理方法的流程图,由图2可知,数据处理方法包括:
步骤S202,接收待写入数据。
需要说明的是,在本实施例中,执行数据处理方法的设备可以为服务器。
在一种可选的方案中,用户可通过客户端向服务器发送数据写请求,其中,数据写请求中包含待写入数据,例如,用户在通过客户端上的微博发表信息时,客户端生成数据写请求,并将数据写请求发送至服务器。服务器接收到数据写请求,并数据写请求进行解析,得到待写入数据。
步骤S204,将待写入数据进行分片处理,得到多个分片数据。
在步骤S204中,纠删码(Erasure Code,简称EC)是一种编码容错技术,其通过将存储的数据进行分片处理,并将k份原始数据通过校验计算方法生成k+m份数据,然后再从k+m份数据中抽取任意k份数据,并将抽取到的k份数据进行还原,从而使得在部分数据丢失的情况下,系统仍可将原始数据恢复出来。
在一种可选的方案中,服务器在接收到待写入数据之后,对待写入数据进行分片处理,得到多个分片数据,并将分片数据存储在服务器本地的存储区域中。可选的,服务器可根据接收到的待写入数据的接收时间对待写入数据进行分片处理,例如,将每分钟内接收到的待写入数据进行处理,得到一个分片数据。可选的,服务器还可根据接收到的待写入数据的数量对待写入数据进行分片处理,例如,每50个待写入数据作为一个分片数据。
其中,图3示出了数据存储区域的结构示意图。由图3可知,在本申请中数据存储区域包含多个数据容器,用于存储待写入数据,每个数据容器又包含多个条带,每个条带存储一个分片数据。另外,每个条带由多个编码块以及奇偶校验位组成,编码块中存储有待写入数据。
步骤S206,将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
需要说明的是,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
在一种可选的方案中,服务器在接收到待写入数据之后,将待写入数据存储在数据容器中,例如,服务器将待写入数据存储在第N个数据容器中。由于数据容器包含一个或多个条带,因此,在第N个数据容器的一个或多个条带中的编码块中存储有分片处理后的待写入数据。如图4所示的条带的结构示意图,服务器在第N个数据容器的第n个预定条带的编码块中添加了填充区,该填充区中记录了每个分片数据的存储信息,其中,存储信息记录了多个分片数据的数量(如图4中的padsize)、多个分片数据中的各个分片数据在对应编码块中的数据偏移地址(如图4中的offset)、每个分片数据对应的数据大小(如图4中的size)。
基于上述步骤S202至步骤S206所限定的方案,可以获知,采用在数据的存储区域中设置填充区的方式,在接收待写入数据之后,将待写入数据进行分片处理,得到多个分片数据,然后将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
容易注意到的是,将所有分片数据的存储信息存储在一个编码块的填充区内,由该编码快的填充区对所有数据的存储信息进行管理,无需为每个分片数据对应的编码块额外保存空洞的存储信息,从而减少了持久化操作和管理代价。另外,当需要对数据进行读写操作时,仅访问具有存储信息的编码块的填充区即可,降低了读写流量,减少了冗余空间的占用,降低了系统内存空间的浪费。
由此可见,本申请所提供的方案可以解决相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的技术问题。
在一种可选的方案中,在得到多个分片数据之后,服务器将多个分片数据按照顺序分布存储于多个编码块中,并在按照顺序分布存储多个分片数据的最后一个编码块的填充区域存储多个分片数据的存储信息。例如,图4中,最后一个编码块的填充区域包括无用数据和尾部两部分,尾部存储有多个分片数据的存储信息。
另外,服务器还在编码块的尾部设置标识信息,其中,标识信息用于标识存储信息所在的编码块。
需要说明的是,标识信息包括:第一标识信息和第二标识信息,其中,第一标识信息设置在存储有多个分片数据的存储信息的编码块的尾部,用于标识编码块中存储有多个分片数据的存储信息;第二标识信息设置在未存储有多个分片数据的存储信息的编码块的尾部,用于标识存储有多个分片数据的存储信息的编码块。
可选的,如图5所示,第一标识信息为TN,该标识信息位于存储有存储信息的编码块的尾部,服务器可通过检测数据块的填充区中是否存在第一标识信息来确定该编码块是否存储有存储信息,例如,服务器在编码块的尾部检测到第一标识信息的情况下,则确定该编码块的填充区内存储有各个编码块的存储信息。
可选的,第二标识信息中存储有第一标识信息对应的编码块的地址信息。如图5所示,第二标识信息为T0、T1,其中,第二标识信息与第一标识信息存在区域。当检测到编码块的尾部的标识信息为第二标识信息的情况下,服务器确定当前编码块的填充区中未存储有存储信息,此时,服务器从第二标识信息中读取存储有存储信息的编码块的地址和/或偏移地址,并根据存储有存储信息的编码块的地址和/或偏移地址读取存储信息。
需要说明的是,由于是在填充区添加尾部,并记录数据容器中所有的待写入数据的大小,因此,无需额外的存储空间或仅需要较小的存储空间即可,从而达到了节省系统存储空间的目的。
此外,还需要说明的是,在每个条带的尾部添加标识信息,可使得用户数据空间和存储数据空间的映射关系更加持久化,实现了数据容器内用户数据信息的自包含,无需每个数据容器维护一个尾部地址。
进一步地,在根据纠删码还原数据的过程中,需要完整的条带中的数据。而本申请在条带的尾部添加了标识信息,该标识信息可用于标记该条带是否为待写入数据中的最后一个条带,也可用于标记该条带是否存在尾部。当服务器正常加载数据容器时,需要在最后一个条带中得到尾部,并从尾部中获取数据进行加载;而当存储的数据出现异常时,服务器仅需要读取最后一个条带中的标识信息即可确定尾部的具体位置,进而恢复出数据存储信息。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据处理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种数据处理方法,如图6所示的数据处理方法的流程图,该方法可以包括:
步骤S602,接收数据读请求。
需要说明的是,在本实施例中,执行数据处理方法的设备可以为服务器。
在一种可选的方案中,用户可通过客户端向服务器发送数据读请求,例如,用户在通过客户端访问网页时,客户端生成数据读请求,并将数据读请求发送至服务器。服务器接收到数据读请求,并进行处理。
步骤S604,响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
需要说明的是,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
此外,还需要说明的是,服务器在接收到数据读请求之后,响应数据读请求,并从服务器本地的数据存储区域中读取数据。其中,图3示出了数据存储区域的结构示意图。由图3可知,在本申请中数据存储区域包含多个数据容器,用于存储待写入数据,每个数据容器又包含多个条带,每个条带存储一个分片数据。另外,每个条带由多个编码块以及奇偶校验位组成,编码块中存储有待写入数据。
步骤S606,从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。
需要说明的是,编码块的尾部设置有标识信息,其中,标识信息用于标识存储信息所在的编码块。具体的,标识信息包括:第一标识信息和第二标识信息,其中,第一标识信息设置在存储有多个分片数据的存储信息的编码块的尾部,用于标识编码块中存储有多个分片数据的存储信息;第二标识信息设置在未存储有多个分片数据的存储信息的编码块的尾部,用于标识存储有多个分片数据的存储信息的编码块。
在一种可选的方案中,如图7所示的一种可选的数据处理的方法流程图。具体的,服务器在接收到数据读请求之后,响应数据读请求,并加载数据容器,确定数据容器中包含尾部的条带,并读取包含尾部的条带中数据的存储信息,确定尾部的偏移地址。进而根据尾部的偏移地址获取尾部中的标识信息,并基于标识信息确定用户数据空间与存储空间的映射表,并根据映射表读取数据。
基于上述步骤S602至步骤S606所限定的方案,可以获知,采用在数据的存储区域中设置填充区的方式,在接收数据读请求之后,服务器响应于数据读请求,并确定存储待读取数据的存储信息的编码块,然后从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
容易注意到的是,将所有分片数据的存储信息存储在一个编码块的填充区内,由该编码快的填充区对所有数据的存储信息进行管理,无需为每个分片数据对应的编码块额外保存空洞的存储信息,从而减少了持久化操作和管理代价。另外,当需要对数据进行读写操作时,仅访问具有存储信息的编码块的填充区即可,降低了读写流量,减少了冗余空间的占用,降低了系统内存空间的浪费。
由此可见,本申请所提供的方案可以解决相关技术在对数据进行处理时,不仅存在流量、空间的耗费,而且处理烦杂的技术问题。
在一种可选的方案中,在读取数据存储信息之前,服务器还对编码块的标识信息进行检测。具体的,服务器读取多个编码块尾部的标识信息,并根据标识信息确定存储待读取数据的存储信息的编码块。其中,在多个分片数据是按照顺序分布存储于多个编码块中的情况下,服务器确定存储多个分片数据的最后一个编码块,并将最后一个编码块确定为存储有存储信息的编码块。
需要说明的是,由于标识信息可用于标记该条带(即上述所指的编码块)是否为待写入数据中的最后一个条带,也可用于标记该条带是否存在尾部,因此当服务器正常加载数据容器时,需要在最后一个条带中得到尾部,并从尾部中获取数据进行加载;而当存储的数据出现异常时,服务器仅需要读取最后一个条带中的标识信息即可确定尾部的具体位置,进而恢复出数据存储信息。
在一种可选的方案中,在数据读取发生异常的情况下,服务器依据从编码块的填充区读取的存储信息重建数据读写映射表,其中,数据读写映射表包括以下至少之一:多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小,及填充数据大小。
可选的,在数据读取发生异常的情况下,服务器从最后一个编码块中读取存储信息,即可确定尾部的具体位置,进而恢复出数据的存储信息,然后根据存储信息可构建出图4中的数据读写映射表。
实施例3
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图8所示,该装置80包括:第一接收模块801、分片模块803以及存储模块805。
其中,第一接收模块801,用于接收待写入数据;分片模块803,用于将待写入数据进行分片处理,得到多个分片数据;存储模块805,用于将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。
此处,需要说明的是,上述第一接收模块801、分片模块803以及存储模块805对应于实施例1中的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。
需要说明的是,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
在一种可选的方案中,存储模块包括:第一存储单元以及第二存储单元。其中,第一存储单元,用于将多个分片数据按照顺序分布存储于多个编码块中;第二存储单元,用于在按照顺序分布存储多个分片数据的最后一个编码块的填充区存储多个分片数据的存储信息。
在一种可选的方案中,数据处理装置还包括:设置模块。其中,设置模块,用于在编码块的尾部设置标识信息,其中,标识信息用于标识存储信息所在的编码块。
需要说明的是,标识信息包括:第一标识信息和第二标识信息,其中,第一标识信息设置在存储有多个分片数据的存储信息的编码块的尾部,用于标识编码块中存储有多个分片数据的存储信息;第二标识信息设置在未存储有多个分片数据的存储信息的编码块的尾部,用于标识存储有多个分片数据的存储信息的编码块。
实施例4
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图9所示,该装置90包括:第二接收模块901、确定模块903以及读取模块905。
其中,第二接收模块901,用于接收数据读请求;确定模块903,用于响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;读取模块905,用于从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。
此处,需要说明的是,上述第一接收模块801、确定模块803以及读取模块805对应于实施例2中的步骤S602至步骤S606,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
需要说明的是,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
在一种可选的方案中,确定模块包括:第一读取单元以及第一确定单元。其中,第一读取单元,用于读取多个编码块尾部的标识信息,其中,标识信息用于标识存储信息所在的编码块;第一确定单元,用于根据标识信息,确定存储待读取数据的存储信息的编码块。
在一种可选的方案中,确定模块包括:第二确定单元。其中,第二确定单元,用于在多个分片数据是按照顺序分布存储于多个编码块中的情况下,确定存储多个分片数据的最后一个编码块,并将最后一个编码块确定为存储存储信息的编码块。
在一种可选的方案中,数据处理装置还包括:重建模块。其中,重建模块,用于在数据读取发生异常的情况下,依据从编码块的填充区读取的存储信息重建数据读写映射表,其中,数据读写映射表包括以下至少之一:多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小,及填充数据大小。
实施例5
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行数据处理方法中以下步骤的程序代码:接接收写入数据;将待写入数据进行分片处理,得到多个分片数据;将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。其中,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
可选地,图10是根据本申请实施例的一种计算机终端的结构框图。如图10所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1002、存储器1004、以及外设接口1006。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的数据处理方法对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收写入数据;将待写入数据进行分片处理,得到多个分片数据;将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。其中,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
可选的,上述处理器还可以执行如下步骤的程序代码:将多个分片数据按照顺序分布存储于多个编码块中;在按照顺序分布存储多个分片数据的最后一个编码块的填充区存储多个分片数据的存储信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在编码块的尾部设置标识信息,其中,标识信息用于标识存储信息所在的编码块。标识信息包括:第一标识信息和第二标识信息,其中,第一标识信息设置在存储有多个分片数据的存储信息的编码块的尾部,用于标识编码块中存储有多个分片数据的存储信息;第二标识信息设置在未存储有多个分片数据的存储信息的编码块的尾部,用于标识存储有多个分片数据的存储信息的编码块。
可选的,上述处理器还可以执行如下步骤的程序代码:接收数据读请求;响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。其中,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
可选的,上述处理器还可以执行如下步骤的程序代码:读取多个编码块尾部的标识信息,其中,标识信息用于标识存储信息所在的编码块;根据标识信息,确定存储待读取数据的存储信息的编码块。
可选的,上述处理器还可以执行如下步骤的程序代码:在多个分片数据是按照顺序分布存储于多个编码块中的情况下,确定存储多个分片数据的最后一个编码块,并将最后一个编码块确定为存储存储信息的编码块。
可选的,上述处理器还可以执行如下步骤的程序代码:在数据读取发生异常的情况下,依据从编码块的填充区读取的存储信息重建数据读写映射表,其中,数据读写映射表包括以下至少之一:多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小,及填充数据大小。
本领域普通技术人员可以理解,图10所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例6
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例所提供的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收写入数据;将待写入数据进行分片处理,得到多个分片数据;将多个分片数据分布存储于多个编码块中,并在多个编码块中的一个编码块的填充区存储多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块。其中,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将多个分片数据按照顺序分布存储于多个编码块中;在按照顺序分布存储多个分片数据的最后一个编码块的填充区存储多个分片数据的存储信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在编码块的尾部设置标识信息,其中,标识信息用于标识存储信息所在的编码块。标识信息包括:第一标识信息和第二标识信息,其中,第一标识信息设置在存储有多个分片数据的存储信息的编码块的尾部,用于标识编码块中存储有多个分片数据的存储信息;第二标识信息设置在未存储有多个分片数据的存储信息的编码块的尾部,用于标识存储有多个分片数据的存储信息的编码块。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收数据读请求;响应于数据读请求,确定存储待读取数据的存储信息的编码块,其中,待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;从编码块的填充区读取多个分片数据的存储信息,并依据存储信息读取数据。其中,存储信息包括以下至少之一:多个分片数据的数量,多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:读取多个编码块尾部的标识信息,其中,标识信息用于标识存储信息所在的编码块;根据标识信息,确定存储待读取数据的存储信息的编码块。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在多个分片数据是按照顺序分布存储于多个编码块中的情况下,确定存储多个分片数据的最后一个编码块,并将最后一个编码块确定为存储存储信息的编码块。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在数据读取发生异常的情况下,依据从编码块的填充区读取的存储信息重建数据读写映射表,其中,数据读写映射表包括以下至少之一:多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小,及填充数据大小。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
接收待写入数据;
将所述待写入数据进行分片处理,得到多个分片数据;
将所述多个分片数据分布存储于多个编码块中,并在所述多个编码块中的一个编码块的填充区存储所述多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;
其中,所述存储信息包括以下至少之一:所述多个分片数据的数量,所述多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
2.根据权利要求1所述的方法,其特征在于,将所述多个分片数据分布存储于多个编码块中,并在所述多个编码块中的一个编码块的填充区存储所述多个分片数据的存储信息包括:
将所述多个分片数据按照顺序分布存储于所述多个编码块中;
在按照所述顺序分布存储所述多个分片数据的最后一个编码块的填充区存储所述多个分片数据的存储信息。
3.根据权利要求1至2中任一项所述的方法,其特征在于,还包括:在所述编码块的尾部设置标识信息,其中,所述标识信息用于标识所述存储信息所在的编码块。
4.根据权利要求3所述的方法,其特征在于,所述标识信息包括:第一标识信息和第二标识信息,其中,所述第一标识信息设置在存储有所述多个分片数据的存储信息的编码块的尾部,用于标识所述编码块中存储有所述多个分片数据的存储信息;所述第二标识信息设置在未存储有所述多个分片数据的存储信息的编码块的尾部,用于标识存储有所述多个分片数据的存储信息的编码块。
5.一种数据处理方法,其特征在于,包括:
接收数据读请求;
响应于所述数据读请求,确定存储待读取数据的存储信息的编码块,其中,所述待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;
从所述编码块的填充区读取所述多个分片数据的存储信息,并依据所述存储信息读取数据;
其中,所述存储信息包括以下至少之一:所述多个分片数据的数量,所述多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
6.根据权利要求5所述的方法,其特征在于,确定存储待读取数据的存储信息的编码块包括:
读取所述多个编码块尾部的标识信息,其中,所述标识信息用于标识所述存储信息所在的编码块;
根据所述标识信息,确定存储所述待读取数据的存储信息的编码块。
7.根据权利要求5所述的方法,其特征在于,确定存储待读取数据的存储信息的编码块包括:
在所述多个分片数据是按照顺序分布存储于所述多个编码块中的情况下,确定存储所述多个分片数据的最后一个编码块,并将所述最后一个编码块确定为存储所述存储信息的编码块。
8.根据权利要求5至7中任一项所述的方法,其特征在于,还包括:
在数据读取发生异常的情况下,依据从所述编码块的填充区读取的存储信息重建数据读写映射表,其中,所述数据读写映射表包括以下至少之一:所述多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小,及填充数据大小。
9.一种数据处理装置,其特征在于,包括:
第一接收模块,用于接收待写入数据;
分片模块,用于将所述待写入数据进行分片处理,得到多个分片数据;
存储模块,用于将所述多个分片数据分布存储于多个编码块中,并在所述多个编码块中的一个编码块的填充区存储所述多个分片数据的存储信息,其中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;
其中,所述存储信息包括以下至少之一:所述多个分片数据的数量,所述多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
10.一种数据处理装置,其特征在于,包括:
第二接收模块,用于接收数据读请求;
确定模块,用于响应于所述数据读请求,确定存储待读取数据的存储信息的编码块,其中,所述待读取数据被划分为多个分片数据,并分布存储于多个编码块中,编码块为采用纠删码方式存储数据的编码过程中待编码的数据块;
读取模块,用于从所述编码块的填充区读取所述多个分片数据的存储信息,并依据所述存储信息读取数据;
其中,所述存储信息包括以下至少之一:所述多个分片数据的数量,所述多个分片数据中的各个分片数据在对应编码块中的数据偏移地址,以及对应的数据大小。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的数据处理方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152247.XA CN110968255B (zh) | 2018-09-29 | 2018-09-29 | 数据处理方法、装置、存储介质以及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152247.XA CN110968255B (zh) | 2018-09-29 | 2018-09-29 | 数据处理方法、装置、存储介质以及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968255A CN110968255A (zh) | 2020-04-07 |
CN110968255B true CN110968255B (zh) | 2023-05-02 |
Family
ID=70027642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811152247.XA Active CN110968255B (zh) | 2018-09-29 | 2018-09-29 | 数据处理方法、装置、存储介质以及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968255B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113311993B (zh) * | 2021-03-26 | 2024-04-26 | 阿里巴巴创新公司 | 数据存储方法及数据读取方法 |
CN112799607B (zh) * | 2021-04-12 | 2021-06-22 | 骊阳(广东)节能科技股份有限公司 | 一种根据数据大小分区式存放的数据存储方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
US9928141B1 (en) * | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
-
2018
- 2018-09-29 CN CN201811152247.XA patent/CN110968255B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
US9928141B1 (en) * | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
CN108197484A (zh) * | 2018-01-23 | 2018-06-22 | 中南民族大学 | 一种分布式存储环境下实现节点数据安全的方法 |
Non-Patent Citations (2)
Title |
---|
"Error Resilient Coding Based on Reversible Data Hiding and Redundant Slice".《2011 Sixth International Conference on Image and Graphics》.2011,全文. * |
于俊清 ; 李江 ; 魏海涛 ; .基于同构多核处理器的H.264多粒度并行编码器.《计算机学报》.2009,(第06期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110968255A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104932953B (zh) | 一种数据分发方法、数据存储方法、相关装置以及系统 | |
CN109885256B (zh) | 一种基于数据分片的数据存储方法、设备及介质 | |
US20170155748A1 (en) | Information Processing Method, Information Processing Device, and Apparatus | |
CN103646208B (zh) | 一种eMMC的监控方法及装置 | |
EP2908254A1 (en) | Data redundancy implementation method and device | |
CN113311993B (zh) | 数据存储方法及数据读取方法 | |
CN103079203B (zh) | 一种终端认证方法与智能卡 | |
CN110968255B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN110286853A (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN113178842B (zh) | 继电保护定值监测方法、装置、继电保护设备和存储介质 | |
CN111835808B (zh) | 数据存储方法及装置、数据读取方法及装置、存储介质 | |
CN111694703B (zh) | 缓存区管理方法、装置和计算机设备 | |
CN110874284B (zh) | 数据处理的方法和装置 | |
CN111435288A (zh) | 数据的处理方法和装置 | |
CN103916509A (zh) | 一种手机通讯录恢复方法和装置 | |
CN116185512B (zh) | 用于ptc驱动器的驱动加载方法、装置、设备及介质 | |
CN111857545A (zh) | 一种读写锁冲突判断方法、系统、设备及计算机介质 | |
CN106998355B (zh) | 电子设备间的数据传输方法、电子设备及数据传输系统 | |
CN111625502B (zh) | 数据读取方法及装置、存储介质、电子装置 | |
CN109542665A (zh) | 掉电恢复方法、数据写入方法及装置 | |
CN110083478B (zh) | 一种数据恢复方法、数据恢复系统以及固态硬盘 | |
CN110888750B (zh) | 数据处理方法及装置 | |
CN116679991B (zh) | 存储器的启动管理方法、系统、设备及存储介质 | |
CN110471818B (zh) | 一种对闪存出错物理地址的标记方法和装置以及设备 | |
CN110321073B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |