功能性数据库中的事务错误,如果在单个事务中执行多个操作,则 'ts' 字段将会不正确。
作者: mlmhl创建于 2017年2月25日更新于 2018年7月10日
@yoavrubin(俄罗斯)
(笑声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声)(掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) (掌声) 读完后,我对"交易"一节表示怀疑. 我不熟悉克洛朱尔,如果我理解错了,请原谅我,非常感谢。
在交易-on-db ' 功能中,每个操作将在初始-db ' 上执行并最后生成一个名为交易-'的更新数据库,然后将交易-db ' 中最新的一层作为最新一层附后。 我认为如果交易中需要执行一个以上的操作,则在最后一个过程中会出现一个错误. 考虑以下例子:
- “初始db”有两层,第一层为空(
ts'为0'),第二层只有一个实体e',其属性为a',a'值为v1',ts'为1'。 - 在一次交易中执行两次更新业务:第一次更新
a'至v2',第二次更新a'至v3'。 第一次行动将产生一个新的层面,其中a'的价值为v2',ts'为2',prev-ts'为1'。 第二次行动还将产生一个新的层次,其中a'的价值为v3',ts'为3',prev-ts'为2'。 - 以上两次操作后,
接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接接 此时此刻,如果我们援引先入为主 ' 的`演变 ' 职能,我们将陷入无限循环。
以上的例子只是一个可能的错误,如果我们在一次交易中执行两个以上的更新操作,然后引用"evolution-of",我们就会陷入"layer not found"错误.
内容来源: aosabook/500lines