|
1
8
是的,这是可能的;它被称为 distributed transaction 。它是通过以下方式实现的 two-phase commit 在MySQL和PostgreSQL(以及我所听说的所有RDBMS)中。 其思想是在两个并发数据库会话上启动事务。当您必须在一个事务中回滚时,您也会在另一个事务中回滚。 一旦你完成了工作 准备 两项交易。这是一个特殊的过程,它完成了实际提交以外的所有工作,因此可以保证后续提交工作正常。此外,必须持久化这样一个准备好的事务,以便它能够在崩溃中生存下来。 如果数据库上的准备步骤失败,则回滚这两个事务。 一旦成功准备好所有事务,就可以提交它们。这永远不会失败,因为所有的“艰苦工作”都是在准备过程中完成的。 您需要一个协调该工作的组件。该组件称为 事务管理器 并且必须保持每个事务的状态,以便即使工作因崩溃或其他原因中断,也可以继续处理。此组件确保提交或回滚所有事务。 PostgreSQL和MySQL中的SQL语句不同:
有关详细信息,请参阅文档 PostgreSQL 和 MySQL . |
|
|
Jess The Witch · GCP云功能中处理延迟任务的模式 1 年前 |
|
Plup · 连接失败时,PyMongo异步客户端未引发异常 1 年前 |
|
|
user1233894 · 尝试从全局函数传递值 1 年前 |
|
|
Fabiano Taioli · 管理单线程Rust中的阻塞函数 2 年前 |
|
|
river7816 · 为什么spdlog不在async函数中打印 2 年前 |