通过Web应用程序中的异步调用,在Cassandra中对表进行分页是一种有效的方法吗?
我知道您可以再拉一行而不是页面大小,并在客户端上发送该值,以便他们可以将其用作下一次调用的起点,但这会将Cassandra与客户端紧密结合。
这种情况有更好的做法吗?
答案 0 :(得分:1)
TL; DR;就在这里。使用页面状态。
在这里查看:Results pagination in Cassandra (CQL)和此处:http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0
有什么值得解释的,当使用Cassandra 2.0+ autopagination时,作为回应,您将获得页面结果+当前页面状态+下一页状态。那些页面状态是字节数组。要获得下一页,您只需要一直调用结果,但包含页面状态。
注意:页面状态不受保护以免被修改。您可能不希望为客户端公开它,因为修改页面状态可能会返回特定用户无法访问的数据。