From d8f729be5e30c2dff250d0a84984d7e290dc2511 Mon Sep 17 00:00:00 2001 From: Zhaoyang Date: Sat, 1 Jan 2022 11:20:23 +0800 Subject: [PATCH] Update ch12.md --- ch12.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch12.md b/ch12.md index e41ac27..763f7cf 100644 --- a/ch12.md +++ b/ch12.md @@ -617,7 +617,7 @@ ACID事务通常既提供及时性(例如线性一致性)也提供完整性 然而另一个需要了解的事实是,许多真实世界的应用实际上可以摆脱这种形式,接受弱得多的唯一性: -* 如果两个人同时注册了相同的用户名或预订了相同的座位,你可以给其中一个人发消息道歉,并要求他们选择一个不同的用户名。这种纠正错误的变化被称为**补偿性事务(compensating transaction)**【59,60】。 +* 如果两个人同时注册了相同的用户名或预订了相同的座位,你可以给其中一个人发消息道歉,并要求他们换一个不同的用户名或座位。这种纠正错误的变化被称为**补偿性事务(compensating transaction)**【59,60】。 * 如果客户订购的物品多于仓库中的物品,你可以下单补仓,并为延误向客户道歉,向他们提供折扣。实际上,这么说吧,如果叉车在仓库中轧过了你的货物,剩下的货物比你想象的要少,那么你也是得这么做【61】。因此,既然道歉工作流无论如何已经成为你商业过程中的一部分了,那么对库存物品数目添加线性一致的约束可能就没必要了。 * 与之类似,许多航空公司都会超卖机票,打着一些旅客可能会错过航班的算盘;许多旅馆也会超卖客房,抱着部分客人可能会取消预订的期望。在这些情况下,出于商业原因而故意违反了“一人一座”的约束;当需求超过供给的情况出现时,就会进入补偿流程(退款、升级舱位/房型、提供隔壁酒店的免费的房间)。即使没有超卖,为了应对由恶劣天气或员工罢工导致的航班取消,你还是需要道歉与补偿流程 —— 从这些问题中恢复仅仅是商业活动的正常组成部分。 * 如果有人从账户超额取款,银行可以向他们收取透支费用,并要求他们偿还欠款。通过限制每天的提款总额,银行的风险是有限的。