gpt4 book ai didi

consistency - Datomic:在 Peer 上,Connection.db() 是否在 Connection.transact() 之后读取您的写入

转载 作者:行者123 更新时间:2023-12-02 01:05:33 30 4
gpt4 key购买 nike

考虑以下发生在 Datomic Peer 中的操作:

(require '[datomic.api :as d])

(let [;; running a transaction and awaiting completion
tx-res @(d/transact-async conn tx-data)
;; reading the current database value
db1 (d/db conn)]
,,,)

在 Datomic 的一致性模型中,我可以期望 tx-res 所做的更改在 db1 中可见吗?

(我知道 :db-after (d/sync conn t),但是依赖于读取你在连接上的写入是可行的,例如用于在连接上进行连续写入而无需携带数据库值)。

最佳答案

瓦尔,

是的,db1 将包含事务中所做的更改。但是,这种方法被认为是不好的做法,因为您正在读取相同的值两次(tx-res 已经具有生成的 db 的值)。此外,您不能保证 db1 与事务中的 :db-after相同的数据库值。

我们强烈建议使用从事务返回的 :db-after 进行后续读取。

-编码(marshal)

关于consistency - Datomic:在 Peer 上,Connection.db() 是否在 Connection.transact() 之后读取您的写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693495/

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