【问题标题】:Can I atomically increment a column value in BigTable?我可以原子地增加 BigTable 中的列值吗?
【发布时间】:2019-01-17 06:21:46
【问题描述】:

BigTable 是否支持类似于 Redis 中的INCR 的原子增量操作?

在 BT 的 Golang 库中有这个函数 - https://godoc.org/cloud.google.com/go/bigtable#ReadModifyWrite.Increment。但是,我可以看到一个应用程序的两个实例尝试同时增加的情况,但由于竞争条件它只增加了一次。

【问题讨论】:

    标签: google-cloud-bigtable


    【解决方案1】:
    推荐的答案 Google Cloud

    Bigtable 操作在行级别是原子操作 - 您不会遇到此 API 调用的竞争条件。

    【讨论】:

    • 谢谢。使用库中的增量函数,增量不是发生在客户端而不是服务器端吗?那么,如果两个客户端同时递增,他们最终会在自己的原子操作中将相同的数字写入 BigTable 吗?
    • 该函数发生在服务器端。
    • 请注意,ReadModifyWrite 复制了 RDBMS 中序列的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2018-08-14
    • 2012-04-15
    • 2020-01-16
    • 2022-12-04
    • 2018-12-17
    • 2010-11-28
    相关资源
    最近更新 更多