CN107590019B - 一种数据存储的方法和装置 - Google Patents
一种数据存储的方法和装置 Download PDFInfo
- Publication number
- CN107590019B CN107590019B CN201610533814.0A CN201610533814A CN107590019B CN 107590019 B CN107590019 B CN 107590019B CN 201610533814 A CN201610533814 A CN 201610533814A CN 107590019 B CN107590019 B CN 107590019B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- cluster
- key
- blocks
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储的方法和装置,该方法通过用户写入数据的时候,尤其是大规模数据时,采用EC编码技术对用户写入集群的数据分别拆分成若干个数据块和校验块,而无需对数据进行缓存或者备份,直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
Description
技术领域
本发明涉及计算机通信技术领域,尤指一种数据存储的方法和装置。
背景技术
目前,随着大数据时代的到来,给人们的生活带来了财富和便利,同时,大数据通常具有数据规模大、存储时间长、可靠性要求高等要求,使得存储系统通常需要实现冗余和容灾,也就意味着同样的数据需要存储多个副本,使得存储成本很高。
现有技术中,常见的对大规模数据进行存储所采取的冗余方式通常是:将同样的数据保存在不同的机器或者机房中,并且保存多份,其中,每一份备份的数据都称之为该数据的一个副本,例如:将位于三个不同物理位置的机房,分别对数据进行备份,保存为三个副本,这样使得实际占用的存储空间是原数据量的三倍,也就意味着数据的存储成本增长为三倍。
但是,采用现有技术,使得大规模数据存储的操作复杂,且成本很高。
发明内容
为了解决上述技术问题,本发明提供了一种数据存储的方法和装置,能够帮助大规模数据快速安全的进行备份,从而使得大规模数据存储操作简单,减少了备用存储空间,降低了备份成本。
为了达到本发明目的,第一方面,本发明实施例提供了一种数据存储方法,该方法包括:
获取至少一个集群,接收用户写入所述集群中的数据,采用EC编码将所述数据分别划分为预定数量的数据块和校验块;
从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同;
获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中。
本发明提供的一种数据存储的方法,通过用户写入数据的时候,尤其是大规模数据时,采用EC编码技术对用户写入集群的数据分别拆分成若干个数据块和校验块,而无需对数据进行缓存或者备份,直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
在一个实施例中,接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,包括:
将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块,其中所述校验块的数量。
通过实时EC可以及时地对数据进行处理,不需要缓存或者备份,提高了数据存储的效率。
在一个实施例中,在将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中之后,还包括:
返回访问所述数据的钥匙Key给用户,其中,所述钥匙Key的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号。
通过返回保存成功后数据的钥匙给用户,其中,所述钥匙包括:唯一识别码、集群的序列号和存储单元的编号,可以方便用户快速地找到想要的数据,同时也便于进行数据管理。
在一个实施例中,在返回所述钥匙Key给用户之后,还包括:
若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
通过解析钥匙(Key)中的集群序列号和存储单元的编号,可以确定用户需要的数据的地址,以便后续用户来操作。
在一个实施例中,在解析所述钥匙Key中集群的序列号和存储单元的编号之后,还包括:
若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找与解析后的数据的唯一识别码一致的数据发给用户。
通过接收到用户读取数据的指令时,根据解析钥匙(Key)后的集群序列号和存储单元的编号所确定的位置查找与解析钥匙(Key)中数据的唯一识别码一致的数据,确定一致后,就可以把该数据提供给用户,方便用户读取或者重新改写该部分数据。
在一个实施例中,在解析所述钥匙中集群的序列号和存储单元的编号之后,还包括:
若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到所述数据的唯一识别码进行删除,并将所述数据标识为删除,并将所述删除标记添加到所述存储单元的索引目录中。
通过对用户访问的数据进行删除,将该数据的唯一识别码删除掉,并将删除标记添加到的存储该数据的存储单元的索引目录中,所有数据均不删除,这样提高速度和效率。
在一个实施例中,在接收到用户读取或者删除所述数据的指令之后,还包括:
检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
通过用户发送数据进行读取或者删除操作指令之后,先对数据进行检索,做个初步筛查,从而提高了用户满意度。
在一个实施例中,所述数据的唯一识别码包括:用户写入所述数据的设备的IP地址、端口号、顺序编号以及时间戳。
通过对用户写入数据进行特征记录标识,从而可以快速识别所需要的数据,简化了用户对数据的存储管理操作。
第二方面,本发明实施例提供了一种数据存储的装置,该装置包括:EC模块、划分模块和存储模块;
所述EC模块,设置为获取至少一个集群,接收用户写入所述集群中的数据,采用EC编码将所述数据分别划分为预定数量的数据块和校验块;
所述划分模块,设置为从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同;
所述存储模块,设置为获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中。
本发明提供的一种数据存储的装置,包括:EC模块、划分模块和存储模块;通过用户写入数据的时候,尤其是大规模数据时,采用EC编码技术对用户写入集群的数据分别拆分成若干个数据块和校验块,而无需对数据进行缓存或者备份,直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
在一个实施例中,所述EC模块还设置为接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,是指:
所述EC模块还设置为将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块,其中所述校验块的数量
通过EC模块实时EC可以及时地对数据进行处理,不需要缓存或者备份,提高了数据存储的效率。
在一个实施例中,该装置还包括:钥匙模块;
所述钥匙模块设置为在将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中之后,返回访问所述数据的钥匙Key给用户,其中,所述钥匙Key的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号。
通过钥匙模块返回保存成功后数据的钥匙给用户,其中,所述钥匙包括:唯一识别码、集群的序列号和存储单元的编号,可以方便用户快速地找到想要的数据,同时也便于进行数据管理。
在一个实施例中,该装置还包括:解析模块;
所述解析模块设置为在返回所述钥匙Key给用户之后,若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
通过解析模块解析钥匙(Key)中的集群序列号和存储单元的编号,可以确定用户需要的数据的地址,以便后续用户来操作。
在一个实施例中,该装置还包括:读取模块;
所述读取模块设置为在解析所述钥匙Key中集群的序列号和存储单元的编号之后,若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找与解析后的数据的唯一识别码一致的数据发给用户。
通过读取模块接收到用户读取数据的指令时,根据解析钥匙(Key)后的集群序列号和存储单元的编号所确定的位置查找与解析钥匙(Key)中数据的唯一识别码一致的数据,确定一致后,就可以把该数据提供给用户,方便用户读取或者重新改写该部分数据。
在一个实施例中,该装置还包括:删除模块;
所述删除模块设置为在解析所述钥匙中集群的序列号和存储单元的编号之后,若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到所述数据的唯一识别码进行删除,并将所述数据标识为删除,并将所述删除标记添加到所述存储单元的索引目录中。
通过删除模块对用户访问的数据进行删除,将该数据的唯一识别码删除掉,并将删除标记添加到的存储该数据的存储单元的索引目录中,所有数据均不删除,这样提高速度和效率。
在一个实施例中,该装置还包括检索模块;
所述检索模块设置为在接收到用户读取或者删除所述数据的指令之后,检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
检索模块通过用户发送数据进行读取或者删除操作指令之后,先对数据进行检索,做个初步筛查,从而提高了用户满意度。
在一个实施例中,所述大规模数据的唯一识别码包括:用户写入所述大规模数据的设备的IP地址和端口号、顺序编号以及时间戳。
通过对用户写入数据进行特征记录标识,从而可以快速识别所需要的数据,简化了用户对数据的存储管理操作。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种数据存储的方法实施例一的流程示意图;
图2为本发明实施例提供的一种数据存储的方法实施例一的EC架构示意图
图3为本发明实施例提供的一种数据存储的装置实施例一的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例涉及的方法基于集群(Cluster),所谓“集群”(Cluster)是一组相互独立的、通过高速网络互联的设备集中起来一起进行同一种服务,这一组设备可以进行并行计算,也可以用于数据备份,并以单一系统的模式加以管理,当用户与集群(Cluster)相互作用时,集群(Cluster)就像是一个独立的设备,其中,组成集群(Cluster)的设备可以是多个可以对数据进行处理和存储的计算机、服务器、处理器等设备,其中,每个设备中可以包括多个逻辑单元(Block),该逻辑单元(Block)是设备中的存储器与其他设备间进行传输的一个数据单元,可以对数据进行物理记录,包含多个数据的逻辑记录,通常用于存储大规模数据,该大规模数据是指一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,该大规模数据可以通过采用擦除编码(EC编码)的形式切割成若干个数据块和校验块,然后将这些若干个数据块和校验块写入到若干个存储单元(Replica)中,该擦除编码(EC编码)是一种新的可扩展的数据保护方式,其工作原理是将存储系统接收到的大块数据进行切割并编码,之后再对切割后的数据进行再次切割并编码,重复这一操作直到数据切割到满意的数据块大小为止,这样使得数据块分散成多个存储单元(Replica),再进行冗余校验,将不重复的数据块和编码写入存储系统之中。
本发明实施例涉及的方法,旨在解决现有技术中大规模数据的存储操作复杂且成本很高的技术问题。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明实施例提供的基于数据存储的方法实施例一的流程示意图。本实施例涉及的是实现大规模数据存储的方法的具体过程。如图1所示,该方法包括:
S101、获取至少一个集群,接收用户写入所述集群中的数据,并采用EC编码将所述数据分别划分为预定数量的数据块和校验块。
具体的,用户在存储数据处理时,可以通过负载均衡算法获取至少一个有存储容量空间的集群(Cluster),该集群是由多个独立的服务器或者计算机组成,用户写入数据时,该数据存储装置接口在接收用户写入的数据,尤其是大规模数据时,会采用EC编码将所接收的数据分别划分为预定数量的数据块和校验块,该EC编码是一种数据冗余技术,不同于存放多个副本,EC编码技术将一个长度为L的数据拆分为N个数据块,然后根据这N个数据块计算出M个校检块,最终存储的数据是这N+M个数据块,EC编码的算法能够保证在这N+M个块中,只要丢失的数量不超过M个,则整个数据仍然是完整的。例如:N=8,M=4,则可以保证在最多丢失4个数据块的情况下,这样存储的数据仍然可以是完整的。
S102、从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同。
具体的,可以根据负载均衡算法从该集群中确定该集群中的能够继续写入的逻辑单元,可以是从该集群中设备中的任意一台或者多台的设备上确定的一个逻辑单元(Block),图2为本发明实施例提供的一种数据存储的方法实施例二的结构示意图,如图2所示,将所述逻辑单元(Block)划分为与所述数据块和所述校验块一一对应的存储单元,继续上述举例,采用EC编码技术将数据拆分为8个数据块和4个校验块,那么可以将1个逻辑单元(Block)划分为与上述8个数据块和4个校验块一一对应的12个存储单元(Replica),并使用Replica0~Replica11来标记,该Replica是物理上存储的一个文件,每个Replica最大可以是1GB。其中,同一个逻辑单元(Block)的12个Replica可以分布在12台计算机上,EC产出的12个数据块和校验块根据下标写入到与其下标对应的Replica中,需要说明的是,一个逻辑单元(Block)可以容纳用户多次数据写入,但是并不限于此。
S103、获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中。
具体的,在用户写入数据时,可以获取该数据的唯一识别码,该唯一识别码可以包括写入集群中设备的互联网协议地址、端口号、顺序编号、写入时间戳等,例如:2016年7月4日15时11分1秒(Unix时间戳为1467616261)在设备Ip地址为220.181.57.217、端口号为3001,顺序编号为001写入的数据,可以用“1467616261_220.181.57.217_3001_001”这样的编码计算Md5指纹作为唯一识别码,与写入的数据一一对应,在进行数据存储的时候,将该唯一识别码和所划分的数据块和校验块中数据分别保存到对应的存储单元中,这样便于后续对这些数据进行查阅和管理,但并不限于此。
本发明实施例提供的一种数据存储的方法,通过用户写入数据的时候,尤其是大规模数据时,采用EC编码技术对用户写入集群的数据分别拆分成若干个数据块和校验块,而无需对数据进行缓存或者备份,直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
作为本发明的一个优选实施例,接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,包括:
将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块。
具体的,可以采用实时EC编码来处理需要存储的数据,即将同一时间接收到用户写入所述集群中的数据,在同一时间对所述数据分别划分为预定数量的数据块和校验块,例如:EC编码可以采用8+4的模式,即EC编码使用8个数据块,产生4个校验块,并使用Part0~Part11来标记,只有有数据进行写入,就会对该写入的数据进行EC,而无需缓存或者备份,但并不限于此。
通过实时EC可以及时地对数据进行处理,不需要缓存或者备份,提高了数据存储的效率。
进一步地,在一个实施例中,在将所述唯一识别码和所划分的数据块和校验块中的数据分别保存到对应的存储单元中之后,还包括:
返回访问所述数据的钥匙Key给用户,其中,所述钥匙的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号。
具体的,将上述数据成功保存后,则会给用户返回后续可以读取该数据的钥匙(Key)给用户,该钥匙(Key)包括数据的唯一识别码、集群的序列号和存储单元的编号,可以通过数据的唯一识别码知道用户在哪台机子上什么时候在哪个端口写入的数据,并通过集群的序列号和存储单元的编号,可以获知上述数据具体的存储地址,从而可以方便后续用户进行快速的读取。
通过返回保存成功后数据的钥匙给用户,其中,所述钥匙包括:唯一识别码、集群的序列号和存储单元的编号,可以方便用户快速地找到想要的数据,同时也便于进行数据管理。
进一步地,在一个实施例中,在返回所述钥匙给用户之后,还包括:
若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
具体的,若用户发送钥匙(Key)时,则解析该钥匙(Key)中集群的序列号和存储单元的编号,就可以找到用户需要的数据的存储地址,从而可以确定用户需要的数据在哪里,以便后续用户来对该数据进行操作,但并不限于此。
通过解析钥匙(Key)中的集群序列号和存储单元的编号,可以确定用户需要的数据的地址,以便后续用户来操作。
进一步地,在一个实施例中,在解析所述钥匙中集群的序列号和存储单元的编号之后,还包括:
若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到与解析后的数据的唯一识别码一致的数据发给用户。
具体的,在解析完用户发送的钥匙(Key)后,可以确定用户查找数据的位置,即具体的哪个集群,在哪个存储单元,如果接收到用户读取或者重新改写该数据的指令时,则验证解析后该钥匙中的数据唯一识别码与该集群中存储单元所写入的数据唯一识别码是否相同,只有在验证一致后,将对应的数据发送给用户,从而方便用户读取或者改写,需要说明的是,改写后的数据存储和上述数据存储的方法一样。
通过接收到用户读取数据的指令时,根据解析钥匙(Key)后的集群序列号和存储单元的编号所确定的位置查找与解析钥匙(Key)中数据的唯一识别码一致的数据,确定一致后,就可以把该数据提供给用户,方便用户读取或者重新改写该部分数据。
可选地,在一个实施例中,在解析所述钥匙中集群的序列号和存储单元的编号之后,还包括:
若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到与解析后的数据的唯一识别码一致的数据,删除所述数据的唯一识别码,并将所述数据标识为删除。
具体的,在解析完用户发送的钥匙(Key)后,可以根据解析后的集群序列号和存储单元的编号查找到与解析后数据的唯一识别码一致的数据,若用户想对该数据进行删除,会根据用户的删除指令对该数据进行标识删除,并将删除标记添加到对应的存储单元的索引目录中,例如:上述12个Replica中第3个Replica和第5个Replica的内容需要删除,即将在第3个Replica和第5个Replica中的数据的唯一识别码进行删除,并在第3个Replica和第5个Replica的索引目录上添加一条删除标识,而不将该数据彻底销毁掉,从而可以提高数据的处理速度。
通过对用户访问的数据进行删除,将该数据的唯一识别码删除掉,并将删除标记添加到的存储该数据的存储单元的索引目录中,所有数据均不删除,这样提高速度和效率。
可选的,在一个实施例中,在接收到用户读取或者删除所述数据的指令之后,还包括:
检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
具体的,在接收到用户读取或者删除所述数据的指令之后,可以先对该数据进行检索,即检查所有数据的索引目录,通过解析数据钥匙Key的唯一识别码来进行检索,如果检索之后,发现所访问的数据标识为删除,即看该数据的唯一识别码是否能查找得到,查不到该唯一识别码对应的数据时,则返回用户:“数据不存在”或者“数据不可用”等提示信息。
通过用户发送数据进行读取或者删除操作指令之后,先对数据进行检索,做个初步筛查,从而提高了用户满意度。
进一步地,在上述实施例的基础中,所述数据的唯一识别码(ObjectID)包括:用户写入所述数据的设备的IP地址、端口号、顺序编号以及时间戳。
具体的,该数据的唯一识别码包括:用户写入所述数据的设备的IP地址、端口号、顺序编号以及时间戳,从而可以记录该数据的写入时间、在哪台设备通过哪个接口写入的,写入该数据的顺序编号等等信息,使得准确地记录每条数据的特征,便于用户对数据进行存储管理。
通过对用户写入数据进行特征记录标识,从而可以快速识别所需要的数据,简化了用户对数据的存储管理操作。
下面将对数据的存储、读取、删除、修改等过程进行应用举例详细说明,具体如下:
1)用户需要存储8MB的数据,先确定一个有足够数据容量的集群(Cluster),需要说明是,一般用户单次写入的文件会有限制,一般最大的限制为8MB,如果数据容量较大,用户可以分多次进行写入,但并不以此为限;
2)在用户写入这8MB数据时,就会采用EC编码将该8MB数据划分为8个1MB的数据块和4个1MB的校验块;
3)在上述集群中确定一个可以存储8MB数据的逻辑单元(Block);
4)将这个逻辑单元(Block)划分为12个存储单元(Replica);
5)将8个1MB的数据块和4个1MB的校验块分别对应的保存到12个存储单元(Replica),并获取8MB数据写入该集群的唯一标识码分别保存到12个存储单元(Replica)中,即完成了8MB的数据存储;
6)待8MB数据存储成功后,会给用户返回一个访问该数据的钥匙(Key),其中,这个钥匙(Key)包括存储该数据的集群号、存储单元的编号以及该数据的唯一标识码;
7)如果用户想读取该数据时,就可以根据上述的访问钥匙(Key)提供的信息快速的找到该数据提供给用户读取;
8)如果用户想删除该数据时,就可以根据上述访问钥匙(Key)提供的信息快速的找到该数据,对该数据不进行实质性删除,而是对该数据的唯一标识码进行删除,然后对该数据进行删除标识,记录到索引目录中。
9)如果用户想修改该数据时,就可以根据上述访问钥匙(Key)提供的信息快速的找到该数据,对该数据进行下载后进行修改,然后按照上述1)到6)中所述的步骤重新上传到集群中,并将原来的数据按照上述8)中所述的步骤进行删除。
10)用户在访问该数据前,可以通过集群检索索引目录,如果给集群的钥匙(Key)在索引目录中找不到,则会给用户返回数据不存在的信息,否则可以按照上述7)到9)中所述的步骤执行。
通过上述应用举例,采用实时EC编码技术对用户写入集群的8MB数据分别拆分成8个数据块和4个校验块,而无需对数据进行缓存或者备份,从而可以减少保存数据的冗余,快速地对数据进行处理,有效利用集群的网络资源,然后直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
本发明实施例提供的一种数据存储的方法,通过EC编码技术对数据进行拆分存储,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本,尤其是能够实时EC,及时的对数据进行处理,提高了数据存储的效率,并对每次写入的数据确定唯一标识码,便于对数据进行管理,方便用户对数据进行读取、删除、修改等操作。
图3为本发明实施例提供的一种数据存储的装置实施例一的结构示意图,如图3所示,该装置包括:EC模块10、划分模块20和存储模块30;
所述EC模块10,设置为获取至少一个集群,接收用户写入所述集群中的数据,采用EC编码将所述数据分别划分为预定数量的数据块和校验块;
所述划分模块20,设置为从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同;
所述存储模块30,设置为获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中。
本发明实施例提供的一种数据存储的装置,包括:EC模块、划分模块、和存储模块;通过用户写入数据的时候,尤其是大规模数据时,采用EC编码技术对用户写入集群的数据分别拆分成若干个数据块和校验块,而无需对数据进行缓存或者备份,直接将拆分后的数据块和校验块存储到对应的存储单元中,只要保证丢失的数量不超过校验块的数量,则可以保证整个数据仍然是完整的,从而使得数据存储操作简单,减少了备用存储空间,降低了备份成本。
进一步地,在一个实施例中,所述EC模块还设置为接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,包括:
将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块,其中所述校验块的数量。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,在一个实施例中,如图3所示,该装置还包括:钥匙模块40;
所述钥匙模块40设置为在将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中之后,返回访问所述数据的钥匙Key给用户,其中,所述钥匙Key的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,在一个实施例中,如图3所示,该装置还包括:解析模块50;
所述解析模块50设置为在返回所述钥匙Key给用户之后,若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,在一个实施例中,如图3所示,该装置还包括:读取模块60;
所述读取模块60设置为在解析所述钥匙Key中集群的序列号和存储单元的编号之后,若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找与解析后的数据的唯一识别码一致的数据发给用户。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,在一个实施例中,如图3所示,该装置还包括:删除模块70;
所述删除模块70设置为在解析所述钥匙中集群的序列号和存储单元的编号之后,若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到所述数据的唯一识别码进行删除,并将所述数据标识为删除,并将所述删除标记添加到所述存储单元的索引目录中。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
可选地,在一个实施例中,该装置还包括检索模块80,所述检索模块80设置为接收到用户读取或者删除所述数据的指令之后,检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,在上述实施例的基础上,所述数据的唯一识别码包括:用户写入所述数据的设备的IP地址、端口号、顺序编号以及时间戳。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种数据存储的方法,其特征在于,所述方法包括:
获取至少一个集群,接收用户写入所述集群中的数据,采用EC编码将所述数据分别划分为预定数量的数据块和校验块;
从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同;
获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中;返回访问所述数据的钥匙Key给用户,其中,所述钥匙Key的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号;
若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到所述数据的唯一识别码进行删除,并将所述数据标识为删除,并将所述删除标记添加到所述存储单元的索引目录中。
2.根据权利要求1所述的方法,其特征在于,接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,包括:
将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块。
3.根据权利要求1所述的方法,其特征在于,在返回所述钥匙Key给用户之后,还包括:
若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
4.根据权利要求3所述的方法,其特征在于,在解析所述钥匙Key中集群的序列号和存储单元的编号之后,还包括:
若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找与解析后的数据的唯一识别码一致的数据发给用户。
5.根据权利要求1或4所述任一项的方法,其特征在于,在接收到用户读取或者删除所述数据的指令之后,还包括:
检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
6.根据权利要求1所述的方法,其特征在于,所述数据的唯一识别码包括:用户写入所述数据的设备的IP地址、端口号、顺序编号以及时间戳。
7.一种数据存储的装置,其特征在于,所述装置包括:EC模块、划分模块、存储模块、钥匙模块和删除模块;
所述EC模块,设置为获取至少一个集群,接收用户写入所述集群中的数据,采用EC编码将所述数据分别划分为预定数量的数据块和校验块;
所述划分模块,设置为从所述集群中确定至少一个逻辑单元,将所述逻辑单元划分为与所述数据块和所述校验块一一对应的存储单元,其中,划分后所述存储单元的数量与所述数据块和校验块的数量总和相同;
所述存储模块,设置为获取所述数据的唯一识别码,将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中;
所述钥匙模块设置为在将所述唯一识别码和所述数据块和校验块中的数据分别保存到对应的存储单元中之后,返回访问所述数据的钥匙Key给用户,其中,所述钥匙Key的内容至少包括:所述数据的唯一识别码、集群的序列号和存储单元的编号;
所述删除模块设置为在解析所述钥匙中集群的序列号和存储单元的编号之后,若接收到用户删除所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找到所述数据的唯一识别码进行删除,并将所述数据标识为删除,并将所述删除标记添加到所述存储单元的索引目录中。
8.根据权利要求7所述的装置,其特征在于,所述EC模块还设置为接收用户写入所述集群中的数据,采用EC编码对所述数据分别划分为预定数量的数据块和校验块,是指:
所述EC模块还设置为将同一时间接收到用户写入所述集群中的数据,在同一时间采用EC编码对所述数据分别划分为预定数量的数据块和校验块。
9.根据权利要求7所述的装置,其特征在于,该装置还包括:解析模块;
所述解析模块设置为在返回所述钥匙Key给用户之后,若接收到用户发送的所述钥匙Key时,则解析所述钥匙Key中所述集群的序列号和所述存储单元的编号。
10.根据权利要求9所述的装置,其特征在于,该装置还包括:读取模块;
所述读取模块设置为在解析所述钥匙Key中集群的序列号和存储单元的编号之后,若接收到用户读取所述数据的指令时,则根据解析后所述集群序列号和所述存储单元的编号查找与解析后的数据的唯一识别码一致的数据发给用户。
11.根据权利要求7或10所述任一项的装置,其特征在于,该装置还包括检索模块;
所述检索模块设置为在接收到用户读取或者删除所述数据的指令之后,检查索引目录,若确定所述数据的标识为删除,则返回用户数据不可用的提示信息。
12.根据权利要求7所述的装置,其特征在于,所述数据的唯一识别码包括:用户写入所述数据的设备的IP地址和端口号、顺序编号以及时间戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610533814.0A CN107590019B (zh) | 2016-07-07 | 2016-07-07 | 一种数据存储的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610533814.0A CN107590019B (zh) | 2016-07-07 | 2016-07-07 | 一种数据存储的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590019A CN107590019A (zh) | 2018-01-16 |
CN107590019B true CN107590019B (zh) | 2021-03-16 |
Family
ID=61045914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610533814.0A Active CN107590019B (zh) | 2016-07-07 | 2016-07-07 | 一种数据存储的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590019B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344089B (zh) * | 2018-10-18 | 2021-06-22 | 京信通信系统(中国)有限公司 | 一种操作norflash的方法及装置 |
CN109634523A (zh) * | 2018-12-10 | 2019-04-16 | 深圳市网心科技有限公司 | 一种磁盘管理方法、系统及电子设备和存储介质 |
CN109857740B (zh) * | 2019-01-25 | 2021-06-04 | 上海赜睿信息科技有限公司 | 字符串的存储方法、匹配方法、电子设备及可读存储介质 |
CN110263012B (zh) * | 2019-06-25 | 2022-03-22 | 北京奇艺世纪科技有限公司 | 一种磁盘缓存方法及系统 |
CN113220615A (zh) * | 2021-05-08 | 2021-08-06 | 山东英信计算机技术有限公司 | 一种异步通信方法及系统 |
CN117636998A (zh) * | 2022-08-09 | 2024-03-01 | 长鑫存储技术有限公司 | 数据处理方式、数据处理结构及存储器 |
CN115809027B (zh) * | 2023-01-11 | 2023-05-30 | 杭州广科安德生物科技有限公司 | 一种生物数据采集及管理系统、装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201617922A (zh) * | 2014-11-14 | 2016-05-16 | 廣達電腦股份有限公司 | 資料存取系統、資料儲存方法以及資料讀取方法 |
-
2016
- 2016-07-07 CN CN201610533814.0A patent/CN107590019B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932953A (zh) * | 2015-06-04 | 2015-09-23 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107590019A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590019B (zh) | 一种数据存储的方法和装置 | |
US11327799B2 (en) | Dynamic allocation of worker nodes for distributed replication | |
US20200348852A1 (en) | Distributed object replication architecture | |
US20200159611A1 (en) | Tracking status and restarting distributed replication | |
US11349915B2 (en) | Distributed replication and deduplication of an object from a source site to a destination site | |
CN105190573B (zh) | 存储数据的减少冗余 | |
US8843454B2 (en) | Elimination of duplicate objects in storage clusters | |
US9846540B1 (en) | Data durability using un-encoded copies and encoded combinations | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
US11663236B2 (en) | Search and analytics for storage systems | |
CN110647497A (zh) | 一种基于hdfs的高性能文件存储与管理系统 | |
US11221785B2 (en) | Managing replication state for deleted objects | |
US11461140B2 (en) | Systems and methods for controller-worker architecture for searching a storage system | |
KR20090063733A (ko) | 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법 | |
CN109597903B (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN111177143A (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
CN116848517A (zh) | 使用基于数据指纹的数据地址的高速缓存编索引 | |
CN112799872A (zh) | 一种基于键值对存储系统的纠删码编码方法及装置 | |
KR20200101594A (ko) | 분산 파일 시스템에서 클라이언트 기반의 실시간 데이터 복구에 기반한 디코딩 처리 방법 및 이를 위한 장치 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN112597074B (zh) | 数据处理方法及装置 | |
US11379383B2 (en) | Data encryption in a two-tier storage system | |
Al-Masadeh et al. | Tiny datablock in saving Hadoop distributed file system wasted memory. | |
CN114297163A (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 |