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