有没有办法找出Cassandra中的INSERT/UPDATE命令导致创建新行或更新新行的原因



问题

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

背景

我之所以这么问,是因为我们希望保留表中行数的计数。

谢谢!

从根本上说,在不放弃大量性能的情况下,您无法做到这一点,这既是因为您会削弱存储引擎的日志结构特性,也是因为您需要锁定以避免与其他客户端发生竞争。如果你能表现出色,卡桑德拉会开箱即用!

因此,"正确"的解决方案是找出如何在没有确切行数的情况下生存,或者根据应用程序正在做的事情做出假设("99%的情况下,这种更新是针对新行的"(,或者两者兼而有之。

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

Noob讲话

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

最新更新