【发布时间】:2011-03-06 18:45:47
【问题描述】:
我正在尝试构建分布式文件系统中文件可用性的数学模型。我在 MathOverflow 上发布了这个问题,但这也可能被归类为 CS 问题,所以我也在这里试一试。
系统是这样工作的:一个节点在 r*b 个远程节点上存储一个文件(使用纠删码编码),其中 r 是复制因子,b 是一个整数常量。纠删码文件的特性是,如果至少有 b 个远程节点可用并返回文件的一部分,则可以恢复文件。
对此最简单的方法是假设所有远程节点彼此独立并且具有相同的可用性 p。在这些假设下,文件的可用性遵循二项分布,即
不幸的是,这两个假设可能会引入不可忽略的错误,如本文所示:http://deim.urv.cat/~lluis.pamies/uploads/Main/icpp09-paper.pdf。
克服所有节点具有相同可用性的假设的一种方法是计算可用/不可用节点的每个可能组合的概率,并取所有这些结果的总和(这就是他们在上面的论文,只是比我刚才描述的更正式)。您可以将此方法视为深度为 r*b 的二叉树,每个叶子都是可用/不可用节点的一种可能组合。文件的可用性与您在 >=b 个可用节点的情况下到达休假的概率相同。这种方法更正确,但计算成本为。此外,它不处理节点独立性的假设。
你们有什么好的近似方法,它比二项式分布近似引入的错误更少,但计算成本比 更好?
您可以假设每个节点的可用性数据是一组由(measurement-date, node measuring, node being measured, succes/failure-bit) 组成的元组。例如,使用这些数据,您可以计算节点之间的可用性与可用性差异的相关性。
【问题讨论】:
-
“节点独立”是什么意思?您是在谈论表示节点网络的图,并且某些关键节点的故障可能会将图划分为无法相互通信的拓扑不同的子网?或者您是否假设单个节点故障也可能导致其他节点故障(例如,因为它们可能是位于同一物理机器上的虚拟机)?如果不澄清相关性的性质,就不可能提出任何模型。
-
作为上一个问题的后续,如果在能够在每个节点之间进行通信的节点子网上有可用副本,则指定文件的重建是否可能(阅读:有意义)很重要其他。或者,如果您需要从“根节点”访问至少 b 个节点的子网,以恢复相关文件。
-
最后一段介绍了
measurement-date作为附加属性。这在系统中引入了一个时间尺度,以前系统被假定为静态的。以前,一个节点要么活着(概率p)要么死了(概率1-p)。有了时间尺度,系统可能不再是静态的,并且某个平均故障间隔时间(用于将alive节点切换到dead)和平均修复间隔时间(相反)可能变得有意义。如果您遇到这种情况,恢复文件的概率将取决于时间。 -
作为时间相关案例的后续,需要处理 mtbf/r(故障/修复之间的平均时间)而不是
p和1-p,所有它成为具有平均值(如您所指出的那样可能取决于节点)和不确定性(如果您的日志变得足够长,则减少到零)的可测量量。我指出这一点是因为在这种情况下,问题将与原始问题完全不同(您只是在特定情况下要求简化公式)。 -
感谢您的宝贵意见! “节点独立性”是指单个节点故障可能导致其他节点故障的可能性。您可以假设系统是静态的(即不依赖于时间)。我添加时间变量的原因是为了表明我拥有创建时间相关模型的数据,但这不是必需的;如果可以在没有太大性能影响的情况下使用它,那只是一个额外的好处。
标签: computer-science distributed time-complexity high-availability binomial-cdf