gpt4 book ai didi

concurrency - 聚合应该涉及数据库中的读锁吗?

转载 作者:行者123 更新时间:2023-12-04 17:17:30 28 4
gpt4 key购买 nike

我读了 Eric Evan 关于 的书国内长途 , 章聚合 .

在处理 Order/OrderLine 示例时,说明:

When both users have saved their changes, an Order will be stored in the database that violates the invariant of the domain model. An important business rule has been broken. And nobody even knows. Clearly, locking a single line-item isn’t an adequate safeguard. If, instead, we locked an entire Order at a time, the problem would have been prevented.



我很清楚聚合的本质是用单个包装的数据库事务来保护不变量。

但是是否应该指定每个聚合 在数据库端带有读锁 在多个用户同时修改此聚合时防止潜在的并发问题(竞争条件)?

真正的意义制作骨料的方法是 为读锁收集一些元素 在数据库端?

对此的任何澄清都会让我感到高兴。

最佳答案

不,两者是正交的:

聚合设计的目标是建立一个一致性边界并保护该边界内的不变量。锁定设计的目标是在应用程序中启用适当级别的并发。

这意味着对于相同的聚合设计,不同的锁定机制可能是有意义的(取决于应用程序的非功能需求)。

关于concurrency - 聚合应该涉及数据库中的读锁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com