分布式存储系统数据修改写方法及系统技术方案

技术编号:16587151 阅读:34 留言:0更新日期:2017-11-18 14:39
本发明专利技术公开了一种分布式存储系统数据修改写方法及系统,方法包括:主存储模块在接收到客户端发送的修改数据后,通过预制定的纠删算法对修改数据运算;主存储模块将运算得到的数据存储,并向各从存储模块发送运算得到的数据,发送的数据包含对象编码、集合编码、偏移量、数据长度和修改数据本身;从存储模块在接收到数据后,创建长度与数据长度相同的临时对象,并将临时对象初始化为全零;从存储模块在对象编码指定的对象中,将从偏移量开始、长度为数据长度的数据复制到临时对象中,并将修改数据写入对象中。与现有方法相比,本发明专利技术方法及系统可节省存储空间,节省存储开销;并且不进行临时对象数据的备份,减少了不必要的读写操作,可提高写带宽。

Data modification writing method and system for distributed storage system

The invention discloses a distributed storage system and data modification system, writing methods include: the main memory module receives modify data sent by the client, through the pre established erasure algorithm to modify the data operation; main memory module will calculate the data storage, and to send the operation from the storage module the data transmitted data set contains the object encoding, encoding, offset, length of the data and modify the data itself; from the memory module after receiving data, create a temporary object and the length of data of the same length, and the temporary object is initialized to zero; from the memory module in the object encoding specified, will begin from the offset length data length of the data is copied into the temporary object, and modify the data written to the object. Compared with the existing methods, the method and the system of the invention can save storage space, save storage overhead, and do not carry out backup of temporary object data, reduce unnecessary read and write operation, and can improve writing bandwidth.

【技术实现步骤摘要】
分布式存储系统数据修改写方法及系统
本专利技术涉及存储
,特别是涉及一种分布式存储系统数据修改写方法及系统。
技术介绍
请参考图1(a)至图1(e)所示,现有技术中,分布式存储系统进行数据修改写采用的处理逻辑是,首先创建临时对象,临时对象与原对象大小一样;然后在临时对象中,将从需要修改的老数据对应的偏移量开始到对应长度的那段数据,先备份再用ZERO进行覆盖;最后将原对象中修改数据写入到临时对象中ZERO区段,将新数据写入原对象。存储系统中的修改写操作是指只修改对象中的一部分内容。然而,现有这种修改写方法,需要申请与原对象空间大小一样的临时对象,其实用到的空间大小只是偏移量开始到对应长度,浪费了一部分空间;对临时对象中被写入数据的那部分进行备份,是没有必要的,因为即使修改写失败也不必恢复临时对象中原有的内容,这样增加了不必要的读写操作,降低了写带宽。
技术实现思路
本专利技术的目的是提供一种分布式存储系统数据修改写方法及系统,与现有技术相比,减少了不必要的读写操作,可提高写带宽,并节省了不必要的存储开销。为实现上述目的,本专利技术提供如下技术方案:一种分布式存储系统数据修改写方法,包括:主存储模块在接收到客户端发送的修改数据后,通过预制定的纠删算法对修改数据运算;所述主存储模块将运算得到的数据存储,并向各从存储模块发送运算得到的数据,发送的数据包含对象编码、集合编码、偏移量、数据长度和修改数据本身;所述从存储模块在接收到数据后,创建长度与数据长度相同的临时对象,并将所述临时对象初始化为全零;所述从存储模块在所述对象编码指定的对象中,将从所述偏移量开始、长度为所述数据长度的数据复制到所述临时对象中,并将所述修改数据写入所述对象中。可选地,在所述从存储模块将所述修改数据写入所述对象中之后,还包括:所述从存储模块向所述主存储模块发送应答信息,以告知所述主存储模块接收到的修改数据已经落盘,同时记录本对象新的版本号。可选地,还包括:当所述主存储模块接收到所有从存储模块发送的应答信息后,向所述客户端发送用于告知数据已经写完的应答信息,并向各所述从存储模块发送删除操作指令,所述删除操作指令用于指示所述从存储模块删除所述临时对象。可选地,若所述分布式存储系统出现宕机并在重启后,所述主存储模块检查各所述从存储模块的对象版本号,取其中最低的版本号作为基准版本号;若所述从存储模块的对象版本号高于所述基准版本号,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象,并将所述对象版本号降级为所述基准版本号;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容不是全零,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容是全零,则删除所述临时对象。可选地,所述主存储模块在接收到客户端发送的修改数据后,将修改数据的偏移量和长度大小与对象属性进行对比,若修改数据的偏移量小于对象长度,则确定进行修改写操作。一种分布式存储系统数据修改写系统,包括主存储模块和从存储模块;所述主存储模块包括:运算单元,用于在接收到客户端发送的修改数据后,通过预制定的纠删算法对修改数据运算;发送单元,用于将运算得到的数据存储,并向各从存储模块发送运算得到的数据,发送的数据包含对象编码、集合编码、偏移量、数据长度和修改数据本身;所述从存储模块包括:创建单元,用于在接收到数据后,创建长度与数据长度相同的临时对象,并将所述临时对象初始化为全零;写入单元,用于在所述对象编码指定的对象中,将从所述偏移量开始、长度为所述数据长度的数据复制到所述临时对象中,并将所述修改数据写入所述对象中。可选地,所述从存储模块还包括:第一应答单元,用于在所述从存储模块将所述修改数据写入所述对象中之后,向所述主存储模块发送应答信息,以告知接收到的修改数据已经落盘,同时记录本对象新的版本号。可选地,所述主存储模块还包括:第二应答单元,用于在接收到所有从存储模块发送的应答信息后,向所述客户端发送用于告知数据已经写完的应答信息,并向各所述从存储模块发送删除操作指令,所述删除操作指令用于指示所述从存储模块删除所述临时对象。可选地,所述主存储模块还包括检查和恢复单元,用于:若所述分布式存储系统出现宕机并在重启后,检查各所述从存储模块的对象版本号,取其中最低的版本号作为基准版本号;若所述从存储模块的对象版本号高于所述基准版本号,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象,并将所述对象版本号降级为所述基准版本号;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容不是全零,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容是全零,则删除所述临时对象。可选地,所述主存储模块还包括:对比单元,用于在接收到客户端发送的修改数据后,将修改数据的偏移量和长度大小与对象属性进行对比,若修改数据的偏移量小于对象长度,则确定进行修改写操作。由上述技术方案可知,本专利技术所提供的分布式存储系统数据修改写方法及系统,从存储模块在接收到主存储模块发送的数据后,首先根据数据长度创建与修改数据长度相同的临时对象,将临时对象初始化为全零;然后在指定的对象中,将从偏移量开始、长度为数据长度的数据复制到所述临时对象中,并将修改数据写入对象中,从而实现了存储模块中数据的修改写操作。与现有方法相比,本专利技术分布式存储系统数据修改写方法根据修改数据,创建与修改数据相同长度的临时对象,可节省存储空间,节省存储开销;并且不进行临时对象数据的备份,减少了不必要的读写操作,可提高写带宽。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1(a)为现有技术中分布式存储系统进行数据修改写步骤(1)的示意图;图1(b)为现有技术中分布式存储系统进行数据修改写步骤(2)的示意图;图1(c)为现有技术中分布式存储系统进行数据修改写步骤(3)的示意图;图1(d)为现有技术中分布式存储系统进行数据修改写步骤(4)的示意图;图1(e)为现有技术中分布式存储系统进行数据修改写步骤(5)的示意图;图2为本专利技术实施例提供的一种分布式存储系统数据修改写方法的流程图;图3为本专利技术实施例中分布式存储系统的示意图;图4(a)为本专利技术实施例中分布式存储系统进行数据修改写第一步骤的示意图;图4(b)为本专利技术实施例中分布式存储系统进行数据修改写第二步骤的示意图;图4(c)为本专利技术实施例中分布式存储系统进行数据修改写第三步骤的示意图;图4(d)为本专利技术实施例中分布式存储系统进行数据修改写第四步骤的示意图;图4(e)为本专利技术实施例中分布式存储系统进行数据修改写第五步骤的示意图;图本文档来自技高网...
分布式存储系统数据修改写方法及系统

【技术保护点】
一种分布式存储系统数据修改写方法,其特征在于,包括:主存储模块在接收到客户端发送的修改数据后,通过预制定的纠删算法对修改数据运算;所述主存储模块将运算得到的数据存储,并向各从存储模块发送运算得到的数据,发送的数据包含对象编码、集合编码、偏移量、数据长度和修改数据本身;所述从存储模块在接收到数据后,创建长度与数据长度相同的临时对象,并将所述临时对象初始化为全零;所述从存储模块在所述对象编码指定的对象中,将从所述偏移量开始、长度为所述数据长度的数据复制到所述临时对象中,并将所述修改数据写入所述对象中。

【技术特征摘要】
1.一种分布式存储系统数据修改写方法,其特征在于,包括:主存储模块在接收到客户端发送的修改数据后,通过预制定的纠删算法对修改数据运算;所述主存储模块将运算得到的数据存储,并向各从存储模块发送运算得到的数据,发送的数据包含对象编码、集合编码、偏移量、数据长度和修改数据本身;所述从存储模块在接收到数据后,创建长度与数据长度相同的临时对象,并将所述临时对象初始化为全零;所述从存储模块在所述对象编码指定的对象中,将从所述偏移量开始、长度为所述数据长度的数据复制到所述临时对象中,并将所述修改数据写入所述对象中。2.根据权利要求1所述的分布式存储系统数据修改写方法,其特征在于,在所述从存储模块将所述修改数据写入所述对象中之后,还包括:所述从存储模块向所述主存储模块发送应答信息,以告知所述主存储模块接收到的修改数据已经落盘,同时记录本对象新的版本号。3.根据权利要求2所述的分布式存储系统数据修改写方法,其特征在于,还包括:当所述主存储模块接收到所有从存储模块发送的应答信息后,向所述客户端发送用于告知数据已经写完的应答信息,并向各所述从存储模块发送删除操作指令,所述删除操作指令用于指示所述从存储模块删除所述临时对象。4.根据权利要求1所述的分布式存储系统数据修改写方法,其特征在于,若所述分布式存储系统出现宕机并在重启后,所述主存储模块检查各所述从存储模块的对象版本号,取其中最低的版本号作为基准版本号;若所述从存储模块的对象版本号高于所述基准版本号,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象,并将所述对象版本号降级为所述基准版本号;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容不是全零,则将所述临时对象的内容复制到所述从存储模块原对象中所述偏移量和所述数据长度指定的区域,复制完成后删除所述临时对象;若所述从存储模块的对象版本号为所述基准版本号,并且临时对象的内容是全零,则删除所述临时对象。5.根据权利要求1-4任一项所述的分布式存储系统数据修改写方法,其特征在于,所述主存储模块在接收到客户端发送的修改数据后,将修改数据的偏移量和长度大小与对象属性进行对比,若修改数据的偏移量小于对象长度,则确定进行修改写操作。6.一种分布式存储系统数据修改写系统,其特征在于,包括主存储模块和从存...

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

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

1