From 3947355307921016e834a8c00035122b90779481 Mon Sep 17 00:00:00 2001 From: hezhengdong <2685273579@qq.com> Date: Sat, 20 Jun 2026 15:15:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(ch8):=20=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=A9=BA=E8=A1=8C=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=9C=89?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/zh/ch8.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/zh/ch8.md b/content/zh/ch8.md index 063552b..8a976b0 100644 --- a/content/zh/ch8.md +++ b/content/zh/ch8.md @@ -877,9 +877,7 @@ SELECT * FROM bookings 1. 当应用程序想要开始分布式事务时,它从协调器请求事务 ID。此事务 ID 是全局唯一的。 2. 应用程序在每个参与者上开始单节点事务,并将全局唯一的事务 ID 附加到单节点事务。所有读写都在这些单节点事务之一中完成。如果在此阶段出现任何问题(例如,节点崩溃或请求超时),协调器或任何参与者都可以中止。 3. 当应用程序准备提交时,协调器向所有参与者发送准备请求,标记有全局事务 ID。如果这些请求中的任何一个失败或超时,协调器向所有参与者发送该事务 ID 的中止请求。 -4. 当参与者收到准备请求时,它确保它可以在任何情况下明确提交事务。 - - 这包括将所有事务数据写入磁盘(崩溃、电源故障或磁盘空间不足不是稍后拒绝提交的可接受借口),并检查任何冲突或约束违规。通过向协调器回复"是",节点承诺在请求时无错误地提交事务。换句话说,参与者放弃了中止事务的权利,但没有实际提交它。 +4. 当参与者收到准备请求时,它确保它可以在任何情况下明确提交事务。这包括将所有事务数据写入磁盘(崩溃、电源故障或磁盘空间不足不是稍后拒绝提交的可接受借口),并检查任何冲突或约束违规。通过向协调器回复"是",节点承诺在请求时无错误地提交事务。换句话说,参与者放弃了中止事务的权利,但没有实际提交它。 5. 当协调器收到所有准备请求的响应时,它对是否提交或中止事务做出明确决定(仅当所有参与者投票"是"时才提交)。协调器必须将该决定写入其磁盘上的事务日志,以便在随后崩溃时知道它是如何决定的。这称为*提交点*。 6. 一旦协调器的决定被写入磁盘,提交或中止请求就会发送给所有参与者。如果此请求失败或超时,协调器必须永远重试,直到成功。没有回头路:如果决定是提交,那么必须执行该决定,无论需要多少次重试。如果参与者在此期间崩溃,事务将在恢复时提交——因为参与者投票"是",它在恢复时不能拒绝提交。