数据存储方法、读取方法、删除方法和数据操作系统技术方案

技术编号:16345666 阅读:21 留言:0更新日期:2017-10-03 22:14
本申请提供一种数据存储方法,包括确定欲存储的第一数据块,以及第一数据块的第一标识;判断哈希值与对象标识的对应关系中,是否包括第一标识;如果包括,则对第一数据块采用确定出的写操作方法进行处理,得到目标数据块;如果不包括,确定第一数据块为目标数据块;计算目标数据块的目标哈希值;若在哈希值与对象标识的对应关系中,查找到目标哈希值,则不存储目标数据块,并查找到目标哈希值对应的原始数据块,将原始数据块中的引用计数值加一;若未查找到目标哈希值,则存储目标哈希值与第一标识的对应关系,并对目标数据块进行压缩处理,存储压缩处理后的目标数据块。本申请节省了存储介质的存储空间。

【技术实现步骤摘要】
数据存储方法、读取方法、删除方法和数据操作系统
本申请涉及计算机
,尤其涉及一种数据存储方法、读取方法、删除方法和数据操作系统。
技术介绍
Ceph指的是一个开源的分布式统一存储系统,Ceph的设计目标是在廉价的存储介质上构建一套高性能、高扩展性和高可用性的存储系统,对外提供文件存储、块存储和对象存储的一套统一存储系统。然而基于Ceph的存储介质在存储数据时,由于用户可能会对相同的数据存储多次,那么相应的在存储介质上便会存储多份相同的数据,这无疑浪费了存储介质的存储空间。
技术实现思路
有鉴于此,本申请提供一种数据存储方法、读取方法、删除方法和数据操作系统,以节省存储介质的存储空间。技术方案如下:基于本申请的一方面,本申请提供一种数据存储方法,包括:确定欲存储的第一数据块,以及所述第一数据块的第一标识;判断存储的哈希值与对象标识的对应关系中,是否包括所述第一标识;其中所述哈希值与对象标识的对应关系中的对象标识为已存储数据块的标识;如果包括,则依据所述第一数据块的数据块长度以及所述第一标识对应的已存在的第二数据块的数据块长度,确定对所述第一数据块执行的写操作类型,并对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块;如果不包括,则确定所述第一数据块为目标数据块;计算所述目标数据块的目标哈希值;若在所述哈希值与对象标识的对应关系中,查找到所述目标哈希值,则不存储所述目标数据块,并依据所述目标哈希值查找到所述目标哈希值对应的原始数据块,将所述原始数据块中的引用计数值加一;若在所述哈希值与对象标识的对应关系中,未查找到所述目标哈希值,则在所述哈希值与对象标识的对应关系中,增加所述目标哈希值与所述第一标识的对应关系,并对所述目标数据块进行压缩处理,存储压缩处理后的目标数据块,以及将所述目标数据块中的引用计数值加一。优选地,所述依据所述第一数据块的数据块长度以及所述第一标识对应的已存在的第二数据块的数据块长度,确定对所述第一数据块执行的写操作类型包括:所述第一数据块的数据块长度等于所述第一标识对应的已存在的第二数据块的数据块长度时,确定对所述第一数据块执行的写操作类型为重写;所述第一数据块的数据块长度小于所述第一标识对应的已存在的第二数据块的数据块长度时,确定对所述第一数据块执行的写操作类型为修改写。优选地,当确定对所述第一数据块执行的写操作类型为重写时,所述对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块包括:从所述哈希值与对象标识的对应关系中,删除所述第一标识与所述第二数据块的哈希值的对应关系,并将所述第二数据块中的引用计数值减一;确定所述第一数据块为目标数据块。优选地,当确定对所述第一数据块执行的写操作类型为修改写时,所述对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块包括:从所述哈希值与对象标识的对应关系中,删除所述第一标识与所述第二数据块的哈希值的对应关系,并将所述第二数据块中的引用计数值减一;解压缩所述第二数据块,得到所述第二数据块的第二数据内容;合并所述第二数据内容与所述第一数据块的第一数据内容,并将合并后得到的数据块确定为目标数据块。优选地,所述方法还包括:当所述第二数据块中的引用计数值为0时,删除所述第二数据块。基于本申请的另一方面,本申请还提供一种数据读取方法,包括:确定欲读取的目标数据块的目标标识;从存储的哈希值与对象标识的对应关系中,获取与所述目标标识对应的目标哈希值;基于所述目标哈希值获取所述目标数据块;解压缩所述目标数据块,读取所述目标数据块的数据。优选地,所述确定欲读取的目标数据块的目标标识之后,所述方法还包括:判断所述哈希值与对象标识的对应关系中,是否包括所述目标标识;其中所述哈希值与对象标识的对应关系中的对象标识为已存储数据块的标识;如果包括,执行所述从存储的哈希值与对象标识的对应关系中,获取与所述目标标识对应的目标哈希值的步骤;如果不包括,反馈错误提示信息,其中,所述错误提示信息用于表示存储设备中不存在所述目标标识。基于本申请的再一方面,本申请还提供一种数据删除方法,包括:确定欲删除的目标数据块的目标标识;从存储的哈希值与对象标识的对应关系中,获取与所述目标标识对应的目标哈希值;从存储的哈希值与对象标识的对应关系中,删除所述目标标识与所述目标哈希值的对应记录;基于所述目标哈希值获取所述目标数据块,将所述目标数据块中的引用计数值减一。优选地,所述方法还包括:当所述目标数据块中的引用计数值为0时,删除所述目标数据块。优选地,所述确定欲删除的目标数据块的目标标识之后,所述方法还包括:判断所述哈希值与对象标识的对应关系中,是否包括所述目标标识;其中所述哈希值与对象标识的对应关系中的对象标识为已存储数据块的标识;如果包括,执行所述从存储的哈希值与对象标识的对应关系中,获取与所述目标标识对应的目标哈希值的步骤;如果不包括,反馈错误提示信息,其中,所述错误提示信息用于表示存储设备中不存在所述目标标识。基于本申请的再一方面,本申请还提供一种数据操作系统,包括:终端,用于发送文件到分布式设备;分布式设备,用于对文件执行池化操作获得多个数据块,其中每个数据块的首部包括元数据信息,所述元数据信息包含数据块的引用计数信息,以及设置哈希值与对象标识的对应关系,利用所述哈希值与对象标识的对应关系,执行数据存储操作、数据读取操作以及数据删除操作。本申请在存储数据时,如果哈希值与对象标识的对应关系中已包括目标数据块的目标哈希值,则不再存储目标数据块,而是将目标哈希值对应的原始数据块中的引用计数值加一,而如果哈希值与对象标识的对应关系中不包括目标数据块的目标哈希值,则存储所述目标哈希值与第一标识的对应关系,并对目标数据块进行压缩处理,存储压缩处理后的目标数据块。本申请在数据存储过程中针对多份相同的数据不会重复存储,保证存储空间仅存储一份相同的数据,节省了存储介质的存储空间。且本申请在存储数据时,存储的是压缩处理后的数据块,这相比于现有技术直接存储数据的手段,本申请减少了数据块所需的存储空间,节省了存储介质的存储空间。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例提供的一种数据操作系统的结构示意图;图2为本申请中OSD端存储的数据块的格式示意图;图3为本申请实施例提供的一种数据存储方法的流程图;图4为本申请实施例提供的一种数据读取方法的流程图;图5为本申请实施例提供的一种数据删除方法的流程图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。术语解释:分布式存储:将数据分散存储到多个数据存储服务器上。PG:PlacementGroups,放置组。分布式设备中的虚拟概念。OSD本文档来自技高网...
数据存储方法、读取方法、删除方法和数据操作系统

【技术保护点】
一种数据存储方法,其特征在于,包括:确定欲存储的第一数据块,以及所述第一数据块的第一标识;判断存储的哈希值与对象标识的对应关系中,是否包括所述第一标识;其中所述哈希值与对象标识的对应关系中的对象标识为已存储数据块的标识;如果包括,则依据所述第一数据块的数据块长度以及所述第一标识对应的已存在的第二数据块的数据块长度,确定对所述第一数据块执行的写操作类型,并对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块;如果不包括,则确定所述第一数据块为目标数据块;计算所述目标数据块的目标哈希值;若在所述哈希值与对象标识的对应关系中,查找到所述目标哈希值,则不存储所述目标数据块,并依据所述目标哈希值查找到所述目标哈希值对应的原始数据块,将所述原始数据块中的引用计数值加一;若在所述哈希值与对象标识的对应关系中,未查找到所述目标哈希值,则在所述哈希值与对象标识的对应关系中,增加所述目标哈希值与所述第一标识的对应关系,并对所述目标数据块进行压缩处理,存储压缩处理后的目标数据块,以及将所述目标数据块中的引用计数值加一。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:确定欲存储的第一数据块,以及所述第一数据块的第一标识;判断存储的哈希值与对象标识的对应关系中,是否包括所述第一标识;其中所述哈希值与对象标识的对应关系中的对象标识为已存储数据块的标识;如果包括,则依据所述第一数据块的数据块长度以及所述第一标识对应的已存在的第二数据块的数据块长度,确定对所述第一数据块执行的写操作类型,并对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块;如果不包括,则确定所述第一数据块为目标数据块;计算所述目标数据块的目标哈希值;若在所述哈希值与对象标识的对应关系中,查找到所述目标哈希值,则不存储所述目标数据块,并依据所述目标哈希值查找到所述目标哈希值对应的原始数据块,将所述原始数据块中的引用计数值加一;若在所述哈希值与对象标识的对应关系中,未查找到所述目标哈希值,则在所述哈希值与对象标识的对应关系中,增加所述目标哈希值与所述第一标识的对应关系,并对所述目标数据块进行压缩处理,存储压缩处理后的目标数据块,以及将所述目标数据块中的引用计数值加一。2.根据权利要求1所述的方法、其特征在于,所述依据所述第一数据块的数据块长度以及所述第一标识对应的已存在的第二数据块的数据块长度,确定对所述第一数据块执行的写操作类型包括:所述第一数据块的数据块长度等于所述第一标识对应的已存在的第二数据块的数据块长度时,确定对所述第一数据块执行的写操作类型为重写;所述第一数据块的数据块长度小于所述第一标识对应的已存在的第二数据块的数据块长度时,确定对所述第一数据块执行的写操作类型为修改写。3.根据权利要求2所述的方法、其特征在于,当确定对所述第一数据块执行的写操作类型为重写时,所述对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块包括:从所述哈希值与对象标识的对应关系中,删除所述第一标识与所述第二数据块的哈希值的对应关系,并将所述第二数据块中的引用计数值减一;确定所述第一数据块为目标数据块。4.根据权利要求2所述的方法、其特征在于,当确定对所述第一数据块执行的写操作类型为修改写时,所述对所述第一数据块采用所述写操作类型对应的写操作方法进行处理,得到目标数据块包括:从所述哈希值与对象标识的对应关系中,删除所述第一标识与所述第二数据块的哈希值的对应关系,并将所述第二数据块中的引用计数值减一;解压缩所述第二数据块,得到所述第二数据块的...

【专利技术属性】
技术研发人员:王利朋
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1