Cassandra 中的原子概率计数和集合成员资格

Atomic probabilistic counting and set membership in Cassandra

我希望使用布隆过滤器和 hyperloglog 等结构进行概率计数和设置成员资格。

是否支持通过用户定义的函数或类似函数在服务器端使用此类数据结构并对其执行原子操作?或者我有什么方法可以添加具有此类功能的扩展?

(我可以通过另一个系统获取数据并批量更新以减少争用,但如果所有这些都可以在数据库服务器中处理,那就简单多了。)

您必须在客户端实施它们。常见的方法是每隔 X 分钟 serialize/insert 您保存在系统内存中的 HLL,然后将它们合并到感兴趣范围内的读取中(可能在 X 分钟后的不同时间段使用 RRD 类型方法)。这不是很耐用,因此根据用例,它可能意味着更复杂的东西。

尽管它似乎非常适合 C*,但我认为最大的问题之一是删除,但您或许可以解决这些问题。这里有 C* 端实现的概念证明:

http://vilkeliskis.com/blog/2013/12/28/hacking_cassandra.html

您可能会开始工作 "well enough"。 https://issues.apache.org/jira/browse/CASSANDRA-8861 可能值得一看。