简化的经典数据库事务可以视为:
- 阅读M件
- 根据这些读数执行一些计算
- 根据这些计算写出N个结果,其中可能包括最初读取的元素。
(同时)执行这些事务时,需要保留ACID属性。
在其他非DBMS并发系统中确实存在相同的要求(基于M个事务读取的N个更新)。
我感兴趣的是找出存在哪些算法来执行/解决这些事务,以及这些算法的相对优势和劣势是什么。你能推荐一些阅读吗?这可能是书籍或在线参考资料/教程。
澄清:
因此,例如,一个幼稚的算法可能是每个事务都获得单个全局锁,实际上是强制执行单个线程并删除并发。稍微复杂一点的算法将是单个项目的读/写锁定,并带有避免死锁的顺序。等等。是否有大量文献记录了解决该问题的各种算法。即使仅指出具有其优点和缺点的单一算法的答案也将是有用的。