我想要做的是对我的Cassandra“表”进行查询,不仅获取当前匹配的数据,还获取未来添加的任何数据。
我有一个应用程序,数据不断添加到“表”中,我有很多“客户”,他们有兴趣获取这些数据。
因此查询的初始结果将是与客户端查询匹配的当前数据,然后我希望在添加时继续接收数据。每个客户端可能正在进行不同的查询。
我希望在查询中注册一个回调,这样我就可以收到不需要轮询的数据。
这对Cassandra来说是否可能?
谢谢。
P.S。从我的阅读来看,似乎MongoDB确实支持这个功能。
答案 0 :(得分:1)
目前你不能在Cassandra做到这一点,但Cassandra 2.0中的新触发器功能可能会满足您的需求。当2.0出现时(很快)它只会是实验性的。
答案 1 :(得分:0)
MongoDB确实有一个可能符合要求的功能。它被称为"tailable cursor",只能用于上限集合,即一个像环形缓冲区一样工作并“忘记”旧数据的集合。在tailable游标耗尽整个集合之后,下一次读取尝试将阻塞,直到新数据可用。
您可以通过实现一个读取器线程轻松地将其转换为回调模式,应用程序的其余部分可以使用该线程注册其回调。