mirror of
https://github.com/Vonng/ddia.git
synced 2026-06-21 00:47:05 +08:00
fix(ch8): 删除多余空行,修复有序列表显示问题
This commit is contained in:
parent
900a2550dc
commit
3947355307
1 changed files with 1 additions and 3 deletions
|
|
@ -877,9 +877,7 @@ SELECT * FROM bookings
|
|||
1. 当应用程序想要开始分布式事务时,它从协调器请求事务 ID。此事务 ID 是全局唯一的。
|
||||
2. 应用程序在每个参与者上开始单节点事务,并将全局唯一的事务 ID 附加到单节点事务。所有读写都在这些单节点事务之一中完成。如果在此阶段出现任何问题(例如,节点崩溃或请求超时),协调器或任何参与者都可以中止。
|
||||
3. 当应用程序准备提交时,协调器向所有参与者发送准备请求,标记有全局事务 ID。如果这些请求中的任何一个失败或超时,协调器向所有参与者发送该事务 ID 的中止请求。
|
||||
4. 当参与者收到准备请求时,它确保它可以在任何情况下明确提交事务。
|
||||
|
||||
这包括将所有事务数据写入磁盘(崩溃、电源故障或磁盘空间不足不是稍后拒绝提交的可接受借口),并检查任何冲突或约束违规。通过向协调器回复"是",节点承诺在请求时无错误地提交事务。换句话说,参与者放弃了中止事务的权利,但没有实际提交它。
|
||||
4. 当参与者收到准备请求时,它确保它可以在任何情况下明确提交事务。这包括将所有事务数据写入磁盘(崩溃、电源故障或磁盘空间不足不是稍后拒绝提交的可接受借口),并检查任何冲突或约束违规。通过向协调器回复"是",节点承诺在请求时无错误地提交事务。换句话说,参与者放弃了中止事务的权利,但没有实际提交它。
|
||||
5. 当协调器收到所有准备请求的响应时,它对是否提交或中止事务做出明确决定(仅当所有参与者投票"是"时才提交)。协调器必须将该决定写入其磁盘上的事务日志,以便在随后崩溃时知道它是如何决定的。这称为*提交点*。
|
||||
6. 一旦协调器的决定被写入磁盘,提交或中止请求就会发送给所有参与者。如果此请求失败或超时,协调器必须永远重试,直到成功。没有回头路:如果决定是提交,那么必须执行该决定,无论需要多少次重试。如果参与者在此期间崩溃,事务将在恢复时提交——因为参与者投票"是",它在恢复时不能拒绝提交。
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue