面向对象的镜像稳定存储与Ada事务支持
1. 镜像写入操作所需时间
通过使用状态自动机并为基本操作分配概率,我们可以估算完成镜像写入所需的时间。
- 无崩溃故障时的时间 :假设两个存储单元A和B连接到相似的设备。在无任何崩溃故障的情况下,镜像写入操作的执行时间(即最佳时间)计算公式如下:
[t_{normal} = 3t_l + 2t_d]
其中,(t_l) 是设置日志所需的时间,(t_d) 是将数据写入A或B所需的时间。
- 有崩溃故障时的时间 :从单次崩溃中恢复,需要重启应用程序的时间 (t_{restart}),加上一次重新镜像操作的时间 (t_d),以及一次日志重置的时间 (t_l)。但这只是一个上限,因为崩溃可能在重新镜像操作完成之前发生。如果 (n) 表示崩溃故障的总数,那么在状态自动机中花费的时间受以下限制:
[t_{crash} < t_{normal} + n( t_{restart}+ t_l + t_d )]
- 结论 :如果认为设置日志所需的时间与写入数据副本所需的时间相比可以忽略不计,那么上述公式可简化为:
[t_{normal} \approx 2t_d]
这意味着镜像存储所需的时间是传统存储的两倍。但由于实际存储设备速度较快,在大多数情况下这是可以接受的。
2. 转移概率
-
转移矩阵 :设 (p_l) 为设置日志时发生崩溃的概率,(p_d) 为写入数据副本时发生崩溃的概率。我们可以为状态自动机
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



