数据存储方法及装置制造方法及图纸

技术编号:14591616 阅读:33 留言:0更新日期:2017-02-08 19:59
本公开是关于一种数据存储方法及装置,属于分布式技术领域。方法包括:确定分布式文件系统中超过预设时长未被访问的至少一个数据块;获取至少一个数据块中每一个数据块的尺寸信息;根据每一个数据块的尺寸信息,将至少一个数据块进行编组,得到至少一个数据块编组,至少一个数据块编组中的每一个数据块编组均包含第一预设数目个数据块;对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块。在对长时间未被访问的数据块进行编组后,对得到的数据块编组进行编码处理,生成校验数据块,通过数据块编组和校验数据块来存储数据,使分布式文件系统能够容忍数据丢失的份数增加,提高了数据存储的存储效率及安全性。

Data storage method and device

The invention discloses a data storage method and a device, belonging to the field of distributed technology. The method includes determining at least one piece of data in a distributed file system when the length is not more than the default access; acquiring at least size information for each block of data in a data block; according to the size of each block, at least one block of data grouping, get at least one block of data grouping and at least one data block marshalling in each data block contains a first preset number of marshalling data blocks; for each data block grouping encoding processing, and each of the second data blocks, a preset number of marshalling check data block. Grouping in data blocks for long time have not been accessed after the data block grouping encoding processing to generate parity data block, the data block marshalling and check data blocks to store data, the distributed file system can tolerate data loss copy number increase, storage efficiency and raise the safety of data storage the.

【技术实现步骤摘要】

本公开涉及分布式
,特别涉及一种数据存储方法及装置
技术介绍
随着互联网技术的迅速发展,人们越来越多地使用计算机存储数据,这使得对数据存储的需求不断增长。由于单机的文件系统存储容量有限,因此时下各大互联网公司一般均采用自研或开源的分布式文件系统存储数据。其中,存储的数据常常会包含有较多有时效性的数据,而这些有时效性的数据在经过一段时间后基本不会被访问或者很少被访问到。针对这种情况,若为这些有时效性的数据提供多个副本则极大地浪费了分布式文件系统的存储空间。为此,如何改善分布式文件系统的数据存储方式,以便更高效率地存储数据,成为了本领域技术人员亟待解决的一个问题。相关技术中,对于有时效性的数据,分布式文件系统在存储时会减少副本数。比如,对于没有时效性限制的数据,分布式文件系统采用3副本的存储方式进行存储;而对于有时效性的数据,分布式文件系统采用2副本的存储方式进行存储。但是在减少副本数进行存储后,能够容忍数据丢失的份数减少了,数据可靠性降低。继续以上述例子为例,分布式文件系统可以容忍2份没有时效性限制的数据的丢失,但是却仅能容忍1份有时效性的数据的丢失,大大降低了有时效性的数据的安全性。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种数据存储方法及装置。根据本公开实施例的第一方面,提供一种数据存储方法,包括:确定分布式文件系统中超过预设时长未被访问的至少一个数据块;获取所述至少一个数据块中每一个数据块的尺寸信息;根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,得到至少一个数据块编组,所述至少一个数据块编组中的每一个数据块编组均包含第一预设数目个数据块;对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块。在另一个实施例中,所述确定分布式文件系统中超过预设时长未被访问的至少一个数据块,包括:获取所述分布式文件系统中主节点当前存储的数据块状态表,所述数据块状态表中至少包括所述分布式文件系统中存储的各个数据块的访问时间;对于一个数据块,若所述数据块状态表中记录的所述数据块的访问时间与当前时间之间的差值大于所述预设时长,则确定所述数据块为超过所述预设时长未被访问的数据块。在另一个实施例中,所述获取所述至少一个数据块中每一个数据块的尺寸信息,包括:获取所述分布式文件系统中主节点当前存储的数据块属性列表,所述数据块属性列表至少包括所述数据块所在数据节点的节点标识;根据所述节点标识,向所述数据块所在数据节点发送尺寸信息获取请求;接收所述数据节点返回的所述数据块的尺寸信息。在另一个实施例中,所述根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,包括:将所述每一个数据块的尺寸信息进行排序,得到排序结果;基于所述排序结果,将所述至少一个数据块中每第一预设数目个数据块作为一个数据块编组;其中,一个数据块编组中包含的各个数据块之间的尺寸大小差值不超过预设阈值,各个数据块对应的主数据块存储在不同的数据节点上。在另一个实施例中,所述对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块,包括:对于每一个数据块编组,选取指定数据节点,所述指定数据节点为所述数据块编组中各个数据块对应的主数据块所在数据节点之外的数据节点;在所述指定数据节点中选取一个空闲磁盘,获取所述空闲磁盘的磁盘标识;从所述数据块编组包含的各个数据块中读取数据,对读取到的数据进行编码,得到所述第二预设数目份的校验数据;向所述指定数据节点发送数据写入请求,所述数据写入请求中至少包括所述校验数据和所述磁盘标识,所述数据写入请求用于指示所述指定数据节点将所述校验数据存放在临时校验文件中;在校验数据写入完成后,向所述指定数据节点发送写入完毕请求,所述写入完毕请求用于指示所述指定数据节点将所述校验数据从所述临时校验文件移动至所述磁盘标识指示的空闲磁盘中,得到所述第二预设数目个校验数据块。在另一个实施例中,所述在所述指定数据节点中选取一个空闲磁盘,获取所述空闲磁盘的磁盘标识,包括:向所述指定数据节点发送磁盘分配请求,所述磁盘分配请求用于指示所述指定数据节点分配一个空闲磁盘;接收所述指定数据节点返回的磁盘分配响应,所述磁盘分配响应中至少包括所述空闲磁盘的磁盘标识。在另一个实施例中,所述方法还包括:对于每一个数据块编组,获取所述数据块编组中各个数据块的第一块标识;获取所述数据块编组对应的校验数据块的第二块标识;将所述第一块标识和所述第二块标识作为所述数据块编组的编组信息存储在数据块编组列表中,所述数据块编组列表中包含了每一个数据块编组的编组信息。在另一个实施例中,所述方法还包括:对于所述数据块编组列表中的每一个数据块编组,调用指定线程,确定所述数据块编组中各个数据块对应的从数据块;调用所述指定线程,向所述从数据块所在数据节点发送数据块删除请求,所述数据块删除请求用于指示所述从数据块所在数据节点删除所述从数据块;调用所述指定线程,在存储的数据块属性列表中删除所述从数据块的相关信息。根据本公开实施例的第二方面,提供一种数据存储装置,包括:确定模块,被配置为确定分布式文件系统中超过预设时长未被访问的至少一个数据块;第一获取模块,被配置为获取所述至少一个数据块中每一个数据块的尺寸信息;编组模块,被配置为根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,得到至少一个数据块编组,所述至少一个数据块编组中的每一个数据块编组均包含第一预设数目个数据块;处理模块,被配置为对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块。在另一个实施例中,所述确定模块,被配置为获取所述分布式文件系统中主节点当前存储的数据块状态表,所述数据块状态表中至少包括所述分布式文件系统中存储的各个数据块的访问时间;对于一个数据块,若所述数据块状态表中记录的所述数据块的访问时间与当前时间之间的差值大于所述预设时长,则确定所述数据块为超过所述预设时长未被访问的数据块。在另一个实施例中,所述第一获取模块,被配置为获取所述分布式文件系统中主节点当前存储的数据块属性列表,所述数据块属性列表至少包括所述数据块所在数据节点的节点标识;根据所述节点标识,向所述数据块所在数据节点发送尺寸信息获取请求;接收所述数据节点返回的所述数据块的尺寸信息。在另一个实施例中,所述编组模块,被配置为将所述每一个数据块的尺寸信息进行排序,得到排序结果;基于所述排序结果,将所述至少一个数据块中每第一预设数目个数据块作为一个数据块编组;其中,一个数据块编组中包含的各个数据块之间的尺寸大小差值不超过预设阈值,各个数据块对应的主数据块存储在不同的数据节点上。在另一个实施例中,所述处理模块,包括:第一选取单元,被配置为对于每一个数据块编组,选取指定数据节点,所述指定数据节点为所述数据块编组中各个数据块对应的主数据块所在数据节点之外的数据节点;第二选取单元,被配置为在所述指定数据节点中选取一个空闲磁盘,获取所述空闲磁盘的磁盘标识;编码单元,被配置为从所述数据块编组包含的各个数据块中读取数据,对读取到的数据进行编码,得到所述第二预设数目份的校验数据;第一发送单元,被配置为向所述指定数据节点发送数据写入请求,所述数据写入本文档来自技高网...

【技术保护点】
一种数据存储方法,其特征在于,所述方法包括:确定分布式文件系统中超过预设时长未被访问的至少一个数据块;获取所述至少一个数据块中每一个数据块的尺寸信息;根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,得到至少一个数据块编组,所述至少一个数据块编组中的每一个数据块编组均包含第一预设数目个数据块;对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块。

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:确定分布式文件系统中超过预设时长未被访问的至少一个数据块;获取所述至少一个数据块中每一个数据块的尺寸信息;根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,得到至少一个数据块编组,所述至少一个数据块编组中的每一个数据块编组均包含第一预设数目个数据块;对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块。2.根据权利要求1所述的方法,其特征在于,所述确定分布式文件系统中超过预设时长未被访问的至少一个数据块,包括:获取所述分布式文件系统中主节点当前存储的数据块状态表,所述数据块状态表中至少包括所述分布式文件系统中存储的各个数据块的访问时间;对于一个数据块,若所述数据块状态表中记录的所述数据块的访问时间与当前时间之间的差值大于所述预设时长,则确定所述数据块为超过所述预设时长未被访问的数据块。3.根据权利要求1所述的方法,其特征在于,所述获取所述至少一个数据块中每一个数据块的尺寸信息,包括:获取所述分布式文件系统中主节点当前存储的数据块属性列表,所述数据块属性列表至少包括所述数据块所在数据节点的节点标识;根据所述节点标识,向所述数据块所在数据节点发送尺寸信息获取请求;接收所述数据节点返回的所述数据块的尺寸信息。4.根据权利要求1所述的方法,其特征在于,所述根据所述每一个数据块的尺寸信息,将所述至少一个数据块进行编组,包括:将所述每一个数据块的尺寸信息进行排序,得到排序结果;基于所述排序结果,将所述至少一个数据块中每第一预设数目个数据块作为一个数据块编组;其中,一个数据块编组中包含的各个数据块之间的尺寸大小差值不超过预设阈值,各个数据块对应的主数据块存储在不同的数据节点上。5.根据权利要求1所述的方法,其特征在于,所述对每一个数据块编组进行编码处理,得到与每一个数据块编组匹配的第二预设数目个校验数据块,包括:对于每一个数据块编组,选取指定数据节点,所述指定数据节点为所述数据块编组中各个数据块对应的主数据块所在数据节点之外的数据节点;在所述指定数据节点中选取一个空闲磁盘,获取所述空闲磁盘的磁盘标识;从所述数据块编组包含的各个数据块中读取数据,对读取到的数据进行编码,得到所述第二预设数目份的校验数据;向所述指定数据节点发送数据写入请求,所述数据写入请求中至少包括所述校验数据和所述磁盘标识,所述数据写入请求用于指示所述指定数据节点将所述校验数据存放在临时校验文件中;在校验数据写入完成后,向所述指定数据节点发送写入完毕请求,所述写入完毕请求用于指示所述指定数据节点将所述校验数据从所述临时校验文件移动至所述磁盘标识指示的空闲磁盘中,得到所述第二预设数目个校验数据块。6.根据权利要求5所述的方法,其特征在于,所述在所述指定数据节点中选取一个空闲磁盘,获取所述空闲磁盘的磁盘标识,包括:向所述指定数据节点发送磁盘分配请求,所述磁盘分配请求用于指示所述指定数据节点分配一个空闲磁盘;接收所述指定数据节点返回的磁盘分配响应,所述磁盘分配响应中至少包括所述空闲磁盘的磁盘标识。7.根据权利要求1至6中任一权利要求所述的方法,其特征在于,所述方法还包括:对于每一个数据块编组,获取所述数据块编组中各个数据块的第一块标识;获取所述数据块编组对应的校验数据块的第二块标识;将所述第一块标识和所述第二块标识作为所述数据块编组的编组信息存储在数据块编组列表中,所述数据块编组列表中包含了每一个数据块编组的编组信息。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:对于所述数据块编组列表中的每一个数据块编组,调用指定线程,确定所述数据块编组中各个数据块对应的从数据块;调用所述指定线程,向所述从数据块所在数据节点发送数据块删除请求,所述数据块删除请求用于指示所述从数据块所在数据节点删除所述从数据块;调用所述指定线程,在存储的数据块属性列表中删除所述从数据块的相关信息。9.一种数据存储装置,其特征在于,所述装置包括:确定模块,被配置为确定分布式文件系统中超过预设时长未被访问的至少一个数据块;第一获取模块,被配置为获取所述至少一个数据块中每一个数据块的尺寸信息;编组模块,被配置为根据所述每一个数据块的尺寸信息,将所述至少一个数...

【专利技术属性】
技术研发人员:郭军刘黎徐飞明
申请(专利权)人:北京小米移动软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1