在问题的简化版本中,我有两个更新单个行的事务:
malloc()
和
n
问题在于我们查询UPDATE A SET X = 1
是因为SELECT X FROM A
UPDATE A SET Y = 3
的正确值对它有数据依赖性,但实际的公式尚不清楚。可能是X
,其中Y
是用户输入。
假设此行上的争用较高,大多数更新是独立的,因此我们希望它们尽可能并发。行版本控制的常见方法会引入很高的错误冲突,因为每个事务都会检查以前的版本是否保持不变。
应用程序如何表达这种数据依赖性?
更新行是否有助于确保这一点?例如:
Y = X + c
理想情况下,我希望相同的解决方案能与c
方法一起使用,在这种方法中,应用程序将在本地解决大多数冲突并一次发布一个更新。