交易(技术上)如何运作?
Posted
技术标签:
【中文标题】交易(技术上)如何运作?【英文标题】:How do transactions (technically) work? 【发布时间】:2013-12-08 18:08:03 【问题描述】:我知道事务是什么以及它的好处和问题是什么——例如,在谈论面向 SQL 的数据库中的 ACID 模型时。到目前为止,一切顺利。
但我想了解它们在技术上是如何工作的。我猜想,无论是数据库还是文件系统,都存在一种如何使事物具有事务性的一般模式。我如何使事情原子化?
不幸的是,在 Google 上查找此内容时,您会发现很多文章解释了如何使用交易,但我确实知道这一点。我想知道他们是如何工作的。
欢迎任何为我指明正确方向的示例、想法、链接、论文或其他东西(甚至是搜索自己的好词)。有什么提示吗?
【问题讨论】:
【参考方案1】:交易基于两个重要概念:
2阶段提交协议 http://en.wikipedia.org/wiki/Two-phase_commit_protocol
和
2 锁相 http://en.wikipedia.org/wiki/Two-phase_locking
【讨论】:
感谢您的链接,他们都完美地解释了我想知道的内容。所以基本上它总是归结为:1. 执行操作,但标记为尚未完成,2. 询问所有参与者这是否有效,以及 3. 如果有效,则提交或回滚。 完全正确。这就是核心概念以上是关于交易(技术上)如何运作?的主要内容,如果未能解决你的问题,请参考以下文章