有没有办法找出cassandra中的insert/update命令导致创建新行或更新旧行的原因?

6rvt4ljy  于 2021-06-15  发布在  Cassandra
关注(0)|答案(3)|浏览(294)

问题

有没有办法找出cassandra中的insert/update命令导致创建新行或更新旧行的原因?

背景

我之所以问这个问题是因为我们想保持表中行数的计数。
谢谢!

wrrgggsh

wrrgggsh1#

您可以在执行更新/插入之前查询cassandra。如果查询指示存在一行,您就知道这将是一个更新而不是插入。

5f0d552i

5f0d552i2#

从根本上讲,如果不牺牲大量性能,您就无法做到这一点,因为这样会破坏存储引擎的日志结构特性,而且您需要锁定以避免与其他客户机的竞争。如果你能做得很好,Cassandra会开箱即用!
因此,“正确”的解决方案是找出如何在没有精确行数的情况下生存,或者根据应用程序正在做的事情做出假设(“99%的时间,这种更新是针对新行的”),或者两者兼而有之。

93ze6v8z

93ze6v8z3#

我是诺布
你可以利用柜台。这只适用于长值,它将递增而不是覆盖该值。

相关问题