Cloud Bigtable docs on Single-row Transactions says:
Cloud Bigtable还支持某些写操作,这将需要 其他数据库中的交易:
读-修改-写操作,包括增量和追加。一种 read-modify-write操作读取现有值;增量或 附加到现有值;并将更新后的值写入 表。
检查并变异操作,也称为条件操作 突变或有条件的写入。在检查和变异操作中, Cloud Bigtable会检查一行以查看其是否满足指定条件。 如果满足条件,则Cloud Bigtable会将新值写入该行。
因此,如果我理解正确,那么如果我使用“读-修改-写”或“检查并突变”操作,则需要启用单行事务。
这些操作是CheckAndMutateRow之类的API方法,对吗? 那么,如果程序使用该方法并且未启用单行事务怎么办?该应用程序会失败吗?方向正确吗?
我的目标是了解如何,何时何地(在应用程序中)利用应用程序配置文件上的单行交易设置。
谢谢!
Gabriel
答案 0 :(得分:3)
仅当从应用程序调用CheckAndMutateRow或ReadModifyWriteRow时,才应启用单行事务,因为在未启用设置的情况下,这些调用将失败。如果您不使用它们,我什至会禁用,因为这会减少使用复制时看到的警告数量。
请注意,Jeff在评论中指出,默认情况下已启用这些功能,特别是如果您的实例是使用单个群集创建的。这仅仅是为了避免损坏旧版客户端,因为在启动复制之前,这种区别并不重要。
有关此设置为何存在的更多信息,请参阅here部分,有关使用复制时单行事务之间的冲突。
答案 1 :(得分:-4)
因此,如果我理解正确,那么如果我使用“读-修改-写”或“检查并突变”操作,则需要启用单行事务。
那是不正确的。使用这些API可以进行单行交易,您无需事先启用任何功能。
这些操作是API方法,例如CheckAndMutateRow,对吧?
是的
那么,如果程序使用该方法并且未启用单行事务怎么办?
没有什么可以启用的。调用这些API会对您要更改的行进行原子操作。
应用程序会失败吗?
这不适用,请参见上文。