gpt4 book ai didi

google-cloud-datastore - Google Cloud Datastore 是否支持计数器等原子操作?

转载 作者:行者123 更新时间:2023-12-01 09:56:04 24 4
gpt4 key购买 nike

Google Cloud Datastore 是否支持计数器等原子操作?我在文档中没有看到任何相关内容,我注意到更新基本上是获取整个对象,更新一个字段,然后将整个对象发送回去,这似乎会使原子操作变得不可能。 https://cloud.google.com/datastore/docs/concepts/entities#Datastore_Updating_an_entity

最佳答案

不是直接的,但您可以使用 transactions 模拟原子增量操作.在最简单的情况下,您使用单个实体并通过事务性读+写递增。如果有并发增量,这样的事务将失败,因此计数器不能很好地扩展。相反,您可以使用 [('Counter', 'MyCounterX'), ('Elt', 'k')] 形式的键对 n 个实体进行操作。对于某些数字 k 和属性“计数”:

要递增,请选择 1 到 n 之间的随机数,然后尝试事务性读+写。如果键不存在,则在给定键上写入一个新实体,count=1。如果交易失败,您可以使用新的随机数重试。您还可以包含应用程序的逻辑,以便在它开始频繁发生争用时动态增加 n。

要检索计数,请使用 root [('Counter', 'MyCounterX')] 和对 Count 属性的投影执行祖先查询,然后将所有计数相加。

您可以在第二个块中看到实现此功能的代码 here .

关于google-cloud-datastore - Google Cloud Datastore 是否支持计数器等原子操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117498/

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