事务内存中的稳定调度算法解析
1. 事务生成速率的分析
在研究事务调度之前,需要先分析事务生成速率对系统稳定性的影响。当 $\frac{k(k + 1)}{2} > m$ 时,这里设 $n$ 是满足 $\frac{n(n + 1)}{2} \leq m$ 的最大正整数。我们使用一组事务 $T_1, T_2, \cdots, T_{n + 1}$,其中事务 $T_i$ 使用对象 $o_j$ 当且仅当 $j \in A_i$。通过一系列推理可以得到不等式 $\rho \leq \frac{2}{n + 1}$,又因为 $\frac{n(n + 1)}{2} \leq m$ 可推出 $n + 1 = \lfloor\frac{1}{2}(1 + \sqrt{1 + 8m})\rfloor$,进而有 $\frac{2}{n + 1} = \frac{2}{\lfloor\frac{1}{2}(1 + \sqrt{1 + 8m})\rfloor} \leq \frac{2}{\lfloor\sqrt{2m}\rfloor}$。如果 $\rho > \frac{2}{\lfloor\sqrt{2m}\rfloor}$,那么敌手以全功率生成事务时,每一轮至少能生成一个事务,并且在某一轮 $r$ 之后的某一轮能生成两个事务,这会使事务队列无界增长。
2. 集中式调度器
集中式调度器的目标是处理每一轮中所有待处理的事务。它采用集中式的方式,在选择要执行的事务时,能了解所有待处理事务的信息。
- 算法步骤 :
1. 初始化一个空列表 Pending 用于存储所有待处理事务。
2. 每一轮
超级会员免费看
订阅专栏 解锁全文
1115

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



