事务应用分析与灾难容忍存储解决方案
1. 事务应用分析
在事务应用中,不同的工作负载对事务管理器(TM)和竞争管理器(CM)算法的性能表现有显著差异。以下是对几种常见工作负载的最佳和最差算法的实证评估:
| 工作负载 | 最佳 TM | 最差 TM | 最佳 CM | 最差 CM |
| — | — | — | — | — |
| 哈希表 | EagerAcq | WriteInPlace | ExpBackoff | Delay |
| 链表 | WriteInPlace | EagerAcq | KillAtt | Adaptive |
| 红黑树 | Inv. write | EagerAcq | Delay | Adaptive |
| AVL SF 树 | none | none | ExpBackoff | Delay |
| 跳表 | WrInPlace | EagerAcq | KillAtt | Adaptive |
| 双端队列 | WrInPlace | InWrite | ExpBackoff | KillAtt |
从这个表格中我们可以看出,不同工作负载的最佳和最差算法各不相同。例如,链表和双端队列就存在明显差异:
- 链表的复杂度与双端队列不同。
- 这两种工作负载无法通过相同的算法实现性能最大化。链表在使用“Kill Attacker”竞争管理器时性能最佳,而该管理器却会使双端队列的性能降至最低。
- 链表的性能结果会因使用的算法不同而有很大差异,而双端队列在任何并发控制组合下都能有不错的表现。
有趣的是,相同的算法(EagerAcq + Adap
超级会员免费看
订阅专栏 解锁全文
46

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



