小编Ben*_*rer的帖子

并发团体预订的策略?

考虑一个座位预订数据库。有 n 个座位的列表,每个座位都有一个属性is_booked。0 表示不是,1 表示是。任何更高的数字都会出现超额预订。

在不允许超额预订的情况下进行多次交易(每个交易将同时预订一组 y 个座位)的策略是什么?

我会简单地选择所有未预订的座位,选择其中 y 个随机选择的一组,全部预订,然后检查该预订是否正确(也就是 is_booked 的数量不超过一个,这将表示预订了座位的另一笔交易和提交),然后提交。否则中止并重试。

这是在 Postgres 中的 Read Committed 隔离级别上运行的。

postgresql database-design concurrency

9
推荐指数
1
解决办法
1567
查看次数

标签 统计

concurrency ×1

database-design ×1

postgresql ×1