有没有办法找到Cassandra中的INSERT / UPDATE命令导致创建新行或更新旧行?

时间:2013-05-20 21:41:33

标签: cassandra

问题

有没有办法在Cassandra中找出INSERT / UPDATE命令导致创建新行或更新旧行?

背景

我问的原因是因为我们希望保持表中行数的计数。

谢谢!

3 个答案:

答案 0 :(得分:4)

从根本上说,如果不放弃大量性能,你就无法做到这一点,因为你会削弱存储引擎的日志结构特性,并且因为你需要锁定以避免与其他客户进行竞争。如果你可以做得很好,Cassandra会开箱即用!

因此,“正确”的解决方案是弄清楚如何在没有精确行数的情况下生活,或者根据应用程序的行为做出假设(“99%的情况下,此类更新适用于新行“),或两者兼而有之。

答案 1 :(得分:0)

您可以在执行更新/插入之前查询Cassandra。如果查询指示存在行,则表示它将是更新而不是插入。

答案 2 :(得分:0)

Noob发言

您可以使用计数器。这仅适用于较长的值,这将增加而不是覆盖该值。