发明内容
本发明目的在于消除现有技术的一些不足。
在诸如对等网络之类的分布式数据网络中,设备不断地加入和离开网络。如果作为分布式数据存储网络一部分的设备决定离开网络,则数据复制级别降低。在基于数据重复分布式数据存储系统中,通过创建新数据项来恢复该数据复制级别,新数据项是网络中新设备或现有设备上从存储了相同数据项的其他仍可用是设备拷贝的可用数据项。对于基于擦除或再生码的分布式数据存储系统,通过创建新数据项来恢复数据复制级别,数据是网络中新设备或现有设备上从用于复制数据项的其他仍可用设备产生的。然而,设备的离开未必是决定性的,并且设备的不可用性仅是暂时的。因此问题在于如何确定设备已经完全离开分布式数据存储系统,以在适当时刻触发对由于设备的离开而降低的数据复制级别的修复。如果恢复仅是设备的暂时断开而引起的复制级别降低,则恢复可以被视为毫无价值,并且在存储方面和网络通信方面被视为对分布式数据存储网络资源的不必要浪费。
在观察作为分布式数据存储系统一部分的设备的行为时,可以观察到设备具有它们自己的连通行为。例如,特定设备始终连接,而其他设备仅在白天连接且在晚上断开,而另外的其他设备具有更随机的连接行为。文献“用于有效的分布式存储维护的概率故障检测”,JING TIAN等人,Reliable Distributed Systems,2008,SRDS’08,IEEE symposium,2008年10月6日提出基于每个节点的故障检测是困难的,并且取而代之提出预测每组节点的数据可用性。但是当如所引述的文献进行处理时,当对各个单独节点的信息进行分组时,组中各个单独节点的行为信息丢失,因此该现有技术文献中描述的方法导致效率的损失,发起不必要的修复。与上述相比,本发明能够开发对各个单独设备的连通行为的认识,以确定何时设备可以被视为已完全离开分布式数据存储网络,并且在适当时刻触发数据项的新创建,以便最优地使用分布式数据存储网络的资源。对于这种确定,本发明使用超时,根据设备的停机时间(downtime)分布来确定超时的超时值,其中停机时间分布基于针对该设备而测量的可用性行为。当断开设备时,超时以确定的持续时间开始。当设备在超时期满之前重新连接时,超时重置。然而当超时持续时间期满时,认为设备已完全离开分布式数据存储系统,并且开始修复动作,修复动作包括在新设备或现有设备上,通过创建新数据项来恢复复制级别。从一个或多个用于存储数据项的剩余设备拷贝新数据项(在基于数据重复的数据拷贝的情况下),或者创建新数据项(在基于擦除或再生码的数据复制的情况下)。因此,确定正确的超时持续时间是重要的。由于超时值太短,进行了太多不需要的‘修复’,因为暂时断开被视为永久断开。许多不需要的修复可以引起分布式数据存储系统的拥塞。相反,如果超时值太长,当在超时期满之前发生若干永久断开,会危害数据持续性。因此,根据本发明,使用对单独设备连同行为的认识,以便确定适合于各个单独设备的连通行为的超时持续时间。在本发明的上下文中,收集与分布式数据存储系统的每个设备的停机时间有关的数据。
为了优化分布式数据存储系统中的数据复制,本发明包括一种分布式数据存储系统中数据复制的方法,所述分布式数据存储系统包括至少用作存储设备的网络设备,所述方法包括至少以下步骤:
-对于数据项的每次存储,选择复制集合,复制集合表示分布式数据存储系统中被选择用于存储数据项的预定数目k个存储设备,预定数目k表示所谓的复制级别;
-对于复制集合中的每个存储设备,确定与存储设备相关联的定时器的超时值,所述超时值在存储设备从分布式数据存储系统断开时开始,并且在存储设备重新连接至分布式数据存储系统时停止,存储设备在定时器期满时被检测为断开,所述超时值是根据针对存储设备而测量的停机时间数据的分布来确定的,停机时间数据表示当存储设备对于分布式数据存储系统不可用时的持续时间;
-当所述至少一个存储设备被检测为断开时,并且如果复制集合中连接的存储设备的数目低于预定阈值,则通过选择对于复制集合而言新的至少一个第二存储设备并且通过在至少一个第二存储设备上根据所述数据项创建新数据项,来恢复所述复制级别;以及将至少一个第二存储设备添加至复制集合。
根据本发明的变型实施例,该方法还包括步骤:当与存储设备相关联的定时器期满之后该设备重新连接至分布式数据存储网络时,将所述存储设备重新整合在所述存储设备所属的复制集合中。
根据本发明的变型实施例,根据针对复制集合而确定的临界性(criticalness)因子,调整复制集合中每个存储设备的确定的超时值,所述临界性因子是根据复制集合中可用设备的数目和复制级别之间的差异来确定的。
根据本发明的变型实施例,根据停机时间数据的两次时间间隔测量之间复制集合中连接的存储设备的数目的差异,来确定临界性因子。
本发明还涉及一种用于分布式数据存储系统中数据复制的服务器设备,分布式数据存储系统包括至少用作存储设备的网络设备,所述服务器设备包括以下装置:
-用于对于每次数据项存储选择复制集合的装置,复制集合表示分布式数据存储系统中被选择用于存储数据项的预定数目k个存储设备,预定数目k表示所谓的复制级别;
-用于对于复制集合中的每个存储设备确定(320)与存储设备相关联的定时器的超时值的装置,所述超时值在存储设备从分布式数据存储系统断开时开始,并且在存储设备重新连接至分布式数据存储系统时停止,存储设备在定时器期满时被检测为断开,所述超时值是根据针对存储设备而测量的停机时间数据的分布来确定的,停机时间数据表示当存储设备对于分布式数据存储系统不可用时的持续时间;
-用于当所述至少一个存储设备被检测为断开时,并且如果复制集合中连接的存储设备的数目低于预定阈值,则通过选择对于复制集合而言新的至少一个第二存储设备并且通过在至少一个第二存储设备上根据所述数据项创建新数据项来恢复所述复制级别,以及将至少一个第二存储设备添加至复制集合的装置。
本发明还包括一种计算机程序产品,其特征在于,所述计算机程序产品包括当程序在计算机上执行时用于执行根据本发明的前述数据复制方法的步骤的程序代码指令。
具体实施方式
图1示出了适合于实现本发明特定变型的分布式存储网络架构。图1示出了网络1003,网关12、服务器17、另一网关14以及网络设备13连接至网络1003,网关12将网络设备10和11连接至网络1003,另一网关14将网络设备15和16连接至网络1003,网络设备13直接连接至网络1003。所有或者仅一些设备10-16根据它们存储数据的能力以及分布式存储网络的隶属关系,可以视为分布式存储网络中的分布式存储设备。
图1所示以外的其他类型的网络与本发明兼容。例如,包括一个或多个网络开关节点的网络,或者包括一个或多个子网络的网络,以及连接无线网络设备的网络。
本发明可以在任何类型的网络设备中实现,例如,将家庭网络连接至互联网的家庭网关,web服务器、视频服务器、或者无线设备、手持设备等。
图2示出了典型设备的停机时间分布。如所见,该设备具有大约13个小时的平均停机时间,该平均停机时间典型针对例如夜晚期间断电的设备。根据本发明的变型实施例,通过每个设备自身单独测量设备停机时间数据。根据另一变型实施例,通过专用于或并非专用于该任务的集中服务器来收集设备停机时间数据。根据又一实施例,经由用于计算和信息交换的监控协议来收集设备停机时间数据,在设备上分布用于收集停机时间数据的计算负担。存储相同数据项的设备形成设备集合或设备簇,在下文中设备集合或设备簇被称作‘复制集合’。
根据变型实施例,引入临界性概念,该临界性概念进一步优化了本发明的方法。临界性被定义为,当例如复制集合中连接设备的数目降低至预定复制因子k以下时数据项永久丢失的风险。针对复制集合中的所有设备以及复制集合中设备的单独超时值的影响来确定临界性。根据具体实施例,通过以下计算,复制集合中连接设备的数目通过因子德尔塔直接影响初始超时值:
超时值=a/c*超时值
其中,a=复制集合中观察到的连接设备数目,c=复制集合中期望的连接设备数目。然后,如果a>c,则因子a/c将超过1,并且超时值增大,这导致较小的‘过度’超时设置,并且因此导致复制集合中断开设备的‘延迟’替换。如果a=c,则使超时值保持不变。如果a>c,则超时减小,这导致较大的‘过度’超时设置,并因此导致复制集合中断开设备的‘加速’替换。
根据变型实施例,通过随时测量复制集合中连接的设备的数目,来确定临界性。根据复制集合中连接设备数目的增加或减少来确定因子,因此,超时的初始值减小、保持相同、或者扩大。例如,不同的两周内在相同的小时段对连接设备的两次测量。
根据本发明的变型实施例,按以下公式获得超时值的最优值:
其中,在0至1量级上测量临界性,0表示最小临界性,1表示最大临界性,Pr(H0)是超时设备重新连接的先验概率。在系统级处,Pr(H0)计算为:
其中,NbrTransientFailures表示‘错误’故障的数目,即,被视为不可用或者断开(超时期满)但却重新连接的设备的断开的不可用性,NbrPermanentFailures是‘实际’故障的数目,即,设备仍然不可用/断开。
针对复制集合计算以下公式的值:
可以通过第一步骤计算积分值来计算超时的最优值,如果该值低于公式(2)的值,则在第二步骤中减小超时值,并且重复第一和第二步骤,直到公式(1)为真为止。
根据变型实施例,每个设备存储其自己的停机时间分布数据。该变型具有避免对设备可用性的集中监控并且减少设备与服务器之间通信的优点。
先前所讨论的基于各个单独节点行为调整超时的不同实施例是可能的,因为能够监控每个节点,并且针对每个节点存储相对少量的连接和断开数据。这样的监控可以通过集中服务器或者以分散方式来实现,集中服务器有规律地‘查验(ping)’每个节点(查验是一种计算机网络管理工具,用于测试互联网协议(IP)网络上主机的可达性,并且测量从发起主机向目的地计算机发送的消息的往返行程时间)。
图3示出了能够根据特定实施例实现本发明的设备。该设备可以是实现本发明的具体变型的设备,或者实现本发明的具体变型的具体集中设备,例如,专用或者并非专用于实现本发明的具体变型的服务器。
设备300包括只读存储器(ROM)300、随机存取存储器(RAM)310、中央处理单元(CPU)320、时钟330、网络接口340、图形接口350、以及用户接口360。所有这些部件经由数据和通信总线370互连。CPU 320根据存储在ROM300中存储区301中的程序来控制设备30。时钟设备330向设备30的部件提供公共定时,以安排这些部件的操作顺序并同步这些部件的操作。网络接口340经由连接3000利用外部设备接收和发送数据。图形接口350经由连接3001连接至外部呈现设备。用户接口360经由连接3002从用户接收输入命令。ROM存储区301包括实现本发明方法的指令。在设备30上电时,CPU 320将程序‘Prog’从ROM存储区301拷贝到RAM存储区311,并且执行所拷贝的程序。在执行所拷贝的程序时,程序在RAM存储区315中为其执行所需的变量分配存储空间,并且将复制集合302以及复制集合中与存储设备相关联的定时器303的超时值拷贝到相应的RAM存储器312-313中。设备30目前是可操作的并且在接收到存储新数据的请求时,激活本发明的方法。
根据变型实施例,本发明整体上以硬件来实现,例如,被实现为专用部件(例如,实现为ASIC、FPGA、或VLSI)(分别为《专用集成电路》、《现场可编程门阵列》和《超大规模集成》)或者实现为集成在器件中或以硬件和软件混合形式的独立电子部件。
本发明还可以被实现为已知计算机程序产品,包括用于执行本发明的方法步骤的程序代码指令。
图4示出了实现本发明方法的具体实施例的算法,所述算法例如通过图3的设备来实现。
算法开始于步骤400,其中对算法执行所需的变量进行初始化。在步骤401中,针对数据项的存储选择复制集合。这种选择例如通过图3的CPU 320来进行。这样的复制集合表示分布式数据存储系统中被选择用于存储数据项的预定数目个(例如,k个)存储设备。例如,在接收到存储数据项的请求时,触发复制集合的选择。数目k是预定的,并且被设置为确保数据复原的值。预定数目k也进一步被称作‘复制级别’。然后在步骤402中,为与复制集合中的设备相关联的定时器确定超时值,每个设备与特定定时器相关联。这种确定例如可以通过图3的CPU 320来进行。定时器允许确定复制集合中设备的永久断开或不可用性。定时器在关联的存储断开时开始,并且在关联的存储设备重新连接时停止。然而,如果定时器期满,则关联的定时器被视为从分布式存储系统断开。根据针对与超时相关联的存储设备而测量的停机时间数据的分布来确定超时值。超时值表示存储设备不可用/从分布式数据存储系统断开时的持续时间。在步骤403中,当复制集合中至少一个存储设备被检测为断开时,并且如果复制集合中连接/可用的存储设备的数目小于预定阈值(例如,k,但是也可以大于k,以增加安全界限(security margin))时,通过选择对于复制集合而言新的至少一个存储设备来恢复复制级别,并且根据数据项来创建新数据项,然后将新数据项存储在‘新’存储设备上,并且将该‘新’存储设备添加至复制集合。例如,可以通过图3的CPU 320来进行复制级别的恢复。
当与存储设备相关联的定时器期满之后存储器重新连接至分布式数据存储网络时(即,该存储设备被‘错误地’视为永久断开),还可以通过将所述存储设备重新整合在所述存储设备所属的复制集合中来优化本方法。
根据变型实施例,根据针对复制集合而确定的临界性因子,来调整复制集合中每个存储设备的所确定的超时值,所述临界性因子是根据复制集合中可用设备的数目与预定数目k之间的差异来确定的。
根据本发明方法的用于复制修复的自适应和伸缩方法的独有之处在于,不仅使用每个节点超时,而且随时间调整过度的复制,在满足平衡之前延长超时。如果超时太长,则缩短超时,以便向所需的最小值增加复制的次数。这种伸缩方法显著降低了随时间使用的资源量,这是因为这种伸缩方法降低了对永久节点损失的错误-肯定判定的量。