2015-11-02 78 views
3

我熟悉Database transactions,并花了很多时间调整isolation levels。我从来没有在代码中实现我自己的事务模型。Clojure STM属于哪种类型的交易模型?

我已经通过the source code阅读了Clojure事务实现 - 并试图理解它背后的模型。

我正在阅读a description of a Software Transactional Memory in hardware实现,它促使我认为必须有事务模型的“类别”。

我的问题是:Clojure STM属于哪种类型的交易模型?

回答

3

Mark Volkmann's article about Clojure's STM是关于该主题的一个惊人的信息来源 - 如果您对该主题感兴趣,我强烈建议您阅读它,无论您是在高级设计概述还是低描述级别的实现细节。总之,Clojure的STM的事务模型是基于MVCC和快照隔离的。它有一些特殊的功能(例如the way in which it interacts with threads),但总的来说这个描述应该给你正确的想法。