分布式存储方法和分布式存储装置制造方法及图纸

技术编号:8625853 阅读:234 留言:0更新日期:2013-04-25 22:51
一种分布式存储方法和分布式存储装置。该方法应用于具有多个存储节点的分布式存储系统,包括:设置附加存储节点;当接收到写入指令时进行如下写入操作:将数据和相应属性信息写入所述多个存储节点,并将属性信息写入附加存储节点,其中附加存储节点不存储该数据;当接收到读取指令时,进行如下读取操作:从所述多个存储节点读取数据和相应属性信息,并从附加存储节点读取属性信息;其中,当写入成功的存储节点的数量和写入成功的附加存储节点的数量之和超过写阈值时,视为写入操作成功,否则视为写入操作失败;以及当从存储节点和附加存储节点读取到的相同属性信息的数量超过读阈值时,视为读取操作成功,否则,视为读取操作失败。

【技术实现步骤摘要】

本专利技术涉及一种分布式存储方法和分布式存储装置
技术介绍
随着计算机技术以及网络技术的高速发展,分布式存储系统得到了长足的发展。传统的分布式存储系统将数据和相应的属性信息分布式地存储到多个存储节点中。通常,分布式存储系统具有针对故障存储节点的理论上允许的最大数量,即在该理论上允许的最大数量以下的存储节点发生故障的情况下,该分布式存储系统理论上仍然能够利用未发生故障的节点进行正常存取。另一方面,在传统的分布式存储系统中,为了确保数据读写的一致性,通常采用了一些判断规则。以下,将以W+R>N的判断规则为例来进行说明。当然,判断规则并不局限于此。具体地,为了确保在传统的分布式存储系统中的数据读写一致性,例如可采用W+R>N的判断规则,其中W表示用于判断数据写成功的阈值(后文简称为写阈值),即在一次写入操作中,当针对至少W个存储节点的写入操作成功时,才认为本次写入操作成功,否则回滚操作;R表示用于判断数据读成功的阈值(后文简称读阈值),即在一次读取操作中,当从至少R个存储节点获得相同属性(例如,版本)的数据时,才认为本次读取操作成功,否则拒绝操作;N表示分布式存储系统中的存储节点的总数量。采用W+R>N的判断规则能够确保从分布式存储系统读取的数据与最新版本的成功写入的数据一致。然而,在W+R>N的判断规则之下,W与R不能同时小于N/2,这使得,在分布式存储系统中发生故障的存储节点的数量处于存储节点总数的一半(N/2)至理论上允许的最大数量的范围内时,尽管如前所述理论上分布式存储系统仍然能够利用未发生故障的节点进行正常存取,但却因不能满足W+R>N的判断规则而无法进行数据读写。
技术实现思路
有鉴于此,本专利技术旨在提供一种分布式存储方法及装置,其能够确保即使在发生故障的存储节点的数量处于存储节点总数的一半(N/2)至理论上允许的最大数量的范围内时也能够进行正确可靠的数据读写。为了实现上述目的,在第一方面,本专利技术提出了一种分布式存储方法,其应用于具有多个存储节点的分布式存储系统,所述分布式存储方法包括以下步骤设置步骤,用于设置附加存储节点;写入操作步骤,用于当接收到写入指令时,进行如下写入操作将数据和相应的属性信息写入所述多个存储节点,并且将所述属性信息写入所述附加存储节点,其中所述附加存储节点不存储所述数据;读取操作步骤,用于当接收到读取指令时,进行如下读取操作从所述多个存储节点读取所述数据和相应的属性信息,并且从所述附加存储节点读取所述属性信息;其中,当写入成功的所述存储节点的数量和写入成功的所述附加存储节点的数量之和超过写阈值时,视为所述写入操作步骤所进行的写入操作成功,否则视为写入操作失败;以及当从所述存储节点和所述附加存储节点读取到的相同属性信息的数量超过读阈值时,视为所述读取操作步骤所进行的读取操作成功,否则,视为读取操作失败。结合第一方面,在第一种可能的实施方式中,在所述写入操作失败的情况下,重新执行被视为失败的写入操作;以及在所述读取操作失败的情况下,重新执行与被视为失败的读取操作相对应的写入操作。结合第一方面或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述写阈值和所述读阈值之和大于所述存储节点和所述附加存储节点的数量之和。结合第一方面或第一方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,在所述设置步骤中,根据期望允许的故障存储节点数量和所述多个存储节点的数量来设置所述附加存储节点的数量。结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,在所述设置步骤中,根据如下关系式设置所述附加存储节点的数量 x>2y-N其中X表示所述附加存储节点的数量、y表示所述期望允许的故障存储节点数量,N表示所述多个存储节点的数量。结合第一方面或第一方面的第一种至第四种可能的实施方式,在第五种可能的实施方式中,根据期望允许的故障存储节点数量、所述附加存储节点的数量和所述多个存储节点的数量来设置所述写阈值和所述读阈值。结合第一方面的第五种可能的实施方式,在第六种可能的实施方式中,根据如下关系式设置所述读阈值和写阈值0<ff ^ N-y+x,0〈R ( N-y+x,ff+R>N+x其中W表示所述写阈值、R表示所述读阈值、N表示所述多个存储节点的数量、y表示所述期望允许的故障存储节点数量、X表示所述附加存储节点的数量。结合第一方面或第一方面的第一种至第六种可能的实施方式,在第七种可能的实施方式中,设置所述写阈值与所述读阈值相等。结合第一方面的第七种可能的实施方式,在第八种可能的实施方式中,根据如下关系式设置所述写阈值和所述读阈值ff=R=N-y+x其中W表示所述写阈值、R表示所述读阈值、N表示所述多个存储节点的数量、y表示所述期望允许的故障存储节点数量、X表示所述附加存储节点的数量。结合第一方面或第一方面的第一种至第八种可能的实施方式,在第九种可能的实施方式中,所述属性信息是所述数据的版本信息和时间戳信息其中之一。在第二方面,本专利技术提出了一种分布式存储装置,其应用于具有多个存储节点的分布式存储系统,所述分布式存储装置包括设置部件,用于设置附加存储节点;写入操作部件,用于当接收到写入指令时,进行如下写入操作将数据和相应的属性信息写入所述多个存储节点,并且将所述属性信息写入所述附加存储节点,其中所述附加存储节点不存储所述数据;读取操作部件,用于当接收到读取指令时,进行如下读取操作从所述多个存储节点读取所述数据和相应的属性信息,并且从所述附加存储节点读取所述属性信息;写入操作成功判断部件,用于当写入成功的所述存储节点的数量和写入成功的所述附加存储节点的数量之和超过写阈值时,视为所述写入操作部件所进行的写入操作成功,否则视为写入操作失败;以及读取操作成功判断部件,用于当从所述存储节点和所述附加存储节点读取到的相同属性信息的数量超过读阈值时,视为所述读取操作部件所进行的读取操作成功,否则,视为读取操作失败。结合第二方面,在第一种可能的实施方式中,该装置还包括读写失败控制部件;在所述写入操作失败的情况下,所述读写失败控制部件指示所述写入操作部件重新执行被视为失败的写入操作;以及在所述读取操作失败的情况下,所述读写失败控制部件指示所述写入操作部件重新执行与被视为失败的读取操作相对应的写入操作。结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述写阈值和所述读阈值之和大于所述存储节点和所述附加存储节点的数量之和。结合第二方面或第二方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,所述设置部件根据期望允许的故障存储节点数量和所述多个存储节点的数量来设置所述附加存储节点的数量。结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述设置部件根据如下关系式设置所述附加存储节点的数量x>2y-N其中X表示所述附加存储节点的数量、y表示所述期望允许的故障存储节点数量,N表示所述多个存储节点的数量。结合第二方面或第二方面的第一种至第四种可能的实施方式,在第五种可能的实施方式中,所述设置部件根据期望允许的故障存储节点数量、所述附加存储节点的数量和所述多个存储节点的数量来设置所述写阈值和所述读阈值。结合第二方本文档来自技高网
...

【技术保护点】
一种分布式存储方法,其应用于具有多个存储节点的分布式存储系统,所述分布式存储方法包括以下步骤:设置步骤,用于设置附加存储节点;写入操作步骤,用于当接收到写入指令时,进行如下写入操作:将数据和相应的属性信息写入所述多个存储节点,并且将所述属性信息写入所述附加存储节点,其中所述附加存储节点不存储所述数据;读取操作步骤,用于当接收到读取指令时,进行如下读取操作:从所述多个存储节点读取所述数据和相应的属性信息,并且从所述附加存储节点读取所述属性信息;其中,当写入成功的所述存储节点的数量和写入成功的所述附加存储节点的数量之和超过写阈值时,视为所述写入操作步骤所进行的写入操作成功,否则视为写入操作失败;以及当从所述存储节点和所述附加存储节点读取到的相同属性信息的数量超过读阈值时,视为所述读取操作步骤所进行的读取操作成功,否则,视为读取操作失败。

【技术特征摘要】
1.一种分布式存储方法,其应用于具有多个存储节点的分布式存储系统,所述分布式存储方法包括以下步骤 设置步骤,用于设置附加存储节点; 写入操作步骤,用于当接收到写入指令时,进行如下写入操作将数据和相应的属性信息写入所述多个存储节点,并且将所述属性信息写入所述附加存储节点,其中所述附加存储节点不存储所述数据; 读取操作步骤,用于当接收到读取指令时,进行如下读取操作从所述多个存储节点读取所述数据和相应的属性信息,并且从所述附加存储节点读取所述属性信息; 其中,当写入成功的所述存储节点的数量和写入成功的所述附加存储节点的数量之和超过写阈值时,视为所述写入操作步骤所进行的写入操作成功,否则视为写入操作失败;以及 当从所述存储节点和所述附加存储节点读取到的相同属性信息的数量超过读阈值时,视为所述读取操作步骤所进行的读取操作成功,否则,视为读取操作失败。2.根据权利要求1所述的分布式存储方法,其中,该方法还包括 在所述写入操作失败的情况下,重新执行被视为失败的写入操作;以及 在所述读取操作失败的情况下,重新执行与被视为失败的读取操作相对应的写入操作。3.根据权利要求1或2所述的分布式存储方法,其中,所述写阈值和所述读阈值之和大于所述存储节点和所述附加存储节点的数量之和。4.根据权利要求1至3中任一项所述的分布式存储方法,其中,在所述设置步骤中,根据期望允许的故障存储节点数量和所述多个存储节点的数量来设置所述附加存储节点的数量。5.根据权利要求4所述的分布式存储方法,其中,在所述设置步骤中,根据如下关系式设置所述附加存储节点的数量x>2y-N 其中X表示所述附加存储节点的数量、I表示所述期望允许的故障存储节点数量,N表示所述多个存储节点的数量。6.根据权利要求1至5中任一项所述的分布式存储方法,其中,该方法还包括根据期望允许的故障存储节点数量、所述附加存储节点的数量和所述多个存储节点的数量来设置所述写阈值和所述读阈值。7.根据权利要求6所述的分布式存储方法,其中,根据如下关系式设置所述读阈值和写阈值0<ff ^ N-y+x,0〈R ^ N-y+x,ff+R>N+x 其中W表示所述写阈值、R表示所述读阈值、N表示所述多个存储节点的数量、y表示所述期望允许的故障存储节点数量、X表示所述附加存储节点的数量。8.根据权利要求1至7中任一项所述的分布式存储方法,其中,设置所述写阈值与所述读阈值相等。9.根据权利要求8所述的分布式存储方法,其中,根据如下关系式设置所述写阈值和所述读阈值ff=R=N-y+x 其中W表示所述写阈值、R表示所述读阈值、N表示所述多个存储节点的数量、y表示所述期望允许的故障存储节点数量、X表示所述附加存储节点的数量。10.根据权利要求1至9中任一项所述的分布式存储方法,其中,所述属性信息是所述数据的版本信息和时间戳信息其中之一。11.一种分布式存储装置,其应用于具有多个存储节点的分布式存储系统,所述分布式存储装置包括 设置部件...

【专利技术属性】
技术研发人员:方新
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1