具有分布式清单的去复制的数据存储系统的制作方法_2

文档序号:9568648阅读:来源:国知局
群队成员170潜在地执行应用软件的不同发行版本。这允许用户对其软件执行滚动更新而不必担心跨所有群队成员170维持一致的软件版本。在其中软件的能力在群队成员170之间不同的情况中,客户端应用134假定来自跨群队成员170的最小能力。
[0028]依照示例实现,出于跨多个独立群队成员170实现可接受的去复制性能的目的,使用争控(bid)技术,其目标在于向同一群队成员170发送类似数据并且对跨其余群队成员170的新的非匹配数据进行负载平衡。在该争控技术中,对于给定数据单元(例如,数据段),客户端应用134向群队成员170请求争控,从群队成员170接收对应的争控响应,基于响应而选择群队成员170中之一并且向所选群队成员170传送针对数据单元的去复制的数据。而且,如以上进一步描述的,客户端应用134可以调控何时使用和不使用争控。
[0029]作为更具体的示例,结合图1参照图3,依照一些实现,根据图3的图示300,客户端应用134出于对数据存储进行负载平衡的目的而处理要备份的传入数据310。客户端应用134在缓冲器312中接收传入数据310。以此方式,缓冲器312取决于特定实现而存储给定数据段314或多个数据段314。不论存储如何,以以下方式处理每一个数据段314。
[0030]客户端应用134的组块化(或组块)模块316将数据段314变换成对应组块318。例如,依照一些实现,组块化模块316可以将两个阈值应用于除数(TTTD)可变组块化算法,其产生大约四千字节(kB)的平均组块。依照其它实现,可以使用其它组块化算法。一般而言,组块化算法可以增强隔离接连备份内的相同组块的可能性,其中组块的绝对位置可能已经移动。
[0031]接下来,客户端应用134使用散列化(或散列)模块320以确定针对组块318的对应数字签名或散列324。作为示例,依照示例实现,散列化模块320可以生成针对每一个组块318的SHA-1散列,尽管依照另外的实现可以使用其它散列。一般而言,给定散列324充当针对相关联的组块318的合理确定的“指纹”;并且,平均来看,相比于组块318的大小,散列324的大小可以相对小(例如大约为组块318的大小的0.5%)ο因此,散列324准许相对容易的、低带宽的方式来标识相关联的组块318。依照示例实现,散列模块320确定针对对应组块318的散列324并且向客户端应用134的进行争控的(或争控)模块330发送散列324的该列表或者使该列表对其可用。
[0032]依照示例实现,进行争控的模块330向针对群队化对象的每一个群队成员170传送334散列的稀疏索引。换言之,依照一些实现,进行争控的模块330向群队成员170传送散列324的在统计上有代表性的样本集。图3图示了接收散列的稀疏索引的群队成员170的一个这样的不例。
[0033]指出的是,依照一些实现,进行争控的模块330可以向每一个群队成员170传送针对给定数据段314的所有散列324。然而,依照示例实现,用于匹配的散列的单个、相对大的列表可能不实用。在这方面,用于每一个4kB平均大小的组块的二十字节SHA-1散列意味着对于每一个太字节(TB)的唯一数据的5吉字节(GB)的存储器。相反,稀疏散列索引334包含统计上选择的散列子集,使得这些散列适当地表示组块318而集体上具有显著较小的大小(例如所有散列的大小的百分之一至百分之十之间)。当向给定群队成员170传送散列的一部分以用于匹配时,群队成员170确定匹配的对应散列的数目。
[0034]以此方式,依照一些实现,每一个群队成员170评定匹配并且如下响应于稀疏索弓丨。群队成员170包括争控相匹配(或匹配)模块370,其对照存储在群队成员170中的数据的散列列表而比较稀疏索引。成功的稀疏索引匹配可以称为“钩住”,因为稀疏索引被保持在例如群队成员170的随机存取存储器(RAM)中,并且因而,稀疏索引查找在系统资源方面可以相对“便宜”。
[0035]如果争控相匹配模块370标识了稀疏索引中的一个或多个钩住,则依照示例实现,模块370然后可以执行更加详细的匹配,涉及读取由稀疏索引钩住所指向的盘上清单。由于该后一步骤涉及相对缓慢的盘寻道,因此这可能是相对昂贵的过程。为了减轻盘寻道的使用,依照示例实现,盘上清单基于将找到的额外匹配的预期数目而以某个优先级次序被读取,其中当存在许多钩住时应用某个停止条件,以便以去复制中的相对小的减少为代价而保持性能不变。
[0036]通过为客户端应用134提供查询稀疏散列索引的方法,稀疏索引钩住计数可以用于确定给定群队成员170匹配组块318的概率。
[0037]除了稀疏索引钩住计数之外,作为争控响应的部分,可以向客户端应用134传送回关于群队成员170的其它信息,诸如存储容量和存储利用(作为两个示例)。该信息然后可以由客户端应用134用于做出关于出于路由针对段314的所有其余散列和随后去复制的数据的目的而选择哪个群队成员170的决定。
[0038]因此,依照一些实现,争控涉及向每一个群队成员170的争控匹配模块370传送334散列的稀疏索引的客户端应用134的进行争控的模块330。争控匹配模块370然后向客户端应用134的路由器(或路由)模块340传送争控响应374。作为示例,依照示例实现,路由器模块340可以从争控匹配模块370接收374 —个或多个匹配。路由器模块340基于来自群队成员170的类似响应而确定哪个群队成员170将接收针对段314的数据的去复制的组块318。
[0039]在路由器模块340已经选择特定群队成员170 (对于该示例假定为图3的群队成员170)之后,路由器模块340向群队成员170的相匹配(或匹配)模块380传送或发送342针对数据段314的组块318的所有其余散列。相匹配模块380比较组块318的所有散列与存储在群队成员170上的数据的对应散列。相匹配模块380向客户端应用134的压缩(或进行压缩)模块344传送384匹配。以此方式,匹配向压缩模块344告知关于独特的组块318,即未存储在群队成员170上的组块318。作为响应,压缩模块344执行去复制以向群队成员170的存储模块390传送或发送350独特的组块(例如已改变的数据的组块),其向群队成员170交托新的组块。
[0040]规律的争控的目的是将类似的数据组块路由至同一群队成员170。指出的是,每次做出改变群队成员170的决定时,路由至新的群队成员的段可能具有对总体去复制率的负面影响。这是由于数据段边界不与去复制段边界对准的相对高的可能性,并且因此,可能再次存储一些复制的数据。在以下进一步描述的过程中,数据流的分片(fragmentat1n)因此可以是以最小化去复制率的降低的方式被控制的某事物。
[0041]图4描绘了当在争控过程中未选择给定群队成员170时发生的通信的图示400。在这方面,响应于稀疏散列索引的传送334,群队成员170的争控相匹配模块370传送争控响应374,其对于该示例而言不是获胜的争控。因此,对于该示例,路由器模块340向群队成员170的跳过模块420发送或传送410跳过消息,从而向群队成员170告知针对该特定数据段314绕过了成员170。
[0042]结合图1参照图5,当备份应用132创建给定群队化对象500时,客户端应用134使对应的对象520 (对象520-1,520-2, 520-3, 520-4,其作为示例在图5中被描绘)存储在对应的群队成员170上。群队化对象500的数据项318在群队成员170之间分布以形成对应的对象520。例如,在群队化对象500中,群队化对象500的数据项318-A对应于对象520-1的数据项318-A,而群队化对象500的数据项318-F对应于对象520-4的数据项318-F。如可以从图5看到的,依照示例实现,针对给定群队化对象的数据可以以与数据出现在群队化对象中的次序不同的次序分布在给定群队成员170上,因为本地排序由各个群队成员170决定。如图5中描绘的,每一个对象520可以包含并非群队化存储装置的部分的数据550。因此,群队成员170可以追踪包含针对给定群队化存储装置的数据的区和针对并非给定群队化存储装置的部分的数据的区。
[0043]因此,参照图6,依照示例实现,技术600包括向多个群队成员或存储装置传送(块602)组块散
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1