|
|
1
16
可能吧 感觉 对你来说就像是黑客攻击,但对我来说,它看起来像是“乐观并发”方法的合法、合理的实现——尝试做任何事情,检测由竞争条件引起的冲突,如果发生冲突,请稍后重试。一些数据库系统地使用它而不是锁定,并且它可以导致更好的性能,除非在 写负载(在现实生活中很少见)。
我建议的一个改进是等一会儿
随机的
时间量—避免“元竞争条件”,即两个进程同时尝试,都找到冲突,然后都重试
再一次
同时,导致“饥饿”。
一个更精细的改进是,如果遇到更多冲突,则延长预期的等待时间——这就是TCP/IP中所称的“指数退避”(您不必以指数方式延长时间,即通过一个常数乘数>当然,每次都是1,但这种方法有很好的数学特性)。它只允许限制 非常 写加载的系统(在尝试写的过程中经常发生多个冲突),在您的特定情况下可能不值得这样做。 |
|
3
0
具有
只是为了确保我处理的是最新的职位编号(在我的情况下,由于一些保留的未使用的职位,该编号可能不是item\u count) |
|
|
blogger13 · 视频租赁店数据库的规范化 1 年前 |
|
|
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
Grenish Rai · Firestore错误“用户文档不存在” 1 年前 |
|
|
Saijo-Shi · PLpgsql中的更新触发器 1 年前 |
|
Dante · Django::配置不当:池不支持持久连接 1 年前 |
|
YouLocalRUser · 删除重复行,保留第一行 1 年前 |