我paginate使用PagingState通过大量数据(大约500 000 000行),并在此过程中做一些商业智能。为了能够恢复这个过程,我创建了这个表...
/**
* This table stores temporary paging state
*/
CREATE TABLE IF NOT EXISTS lp_operations.paging_state (
id text, // ID of process
pos bigint, // current position
page text, // paging state
info text, // info json
finished tinyint, // finished
PRIMARY KEY (id)
) WITH default_time_to_live = 28800; // 8 hours
..其中我存储当前页面(PagingState的字符串表示)和与计算相关的JSON元数据。
问题
答案 0 :(得分:3)
不,Cassandra Driver的分页状态不会过期。
因为每次使用分页状态进行查询时,cassandra每次都会执行您的查询。它不存储您的结果。分页状态只是告诉cassandra驱动程序想要数据的索引。
由于内部实现细节,PagingState实例不能跨本机协议版本移植。在以下情况中,这可能会成为一个问题:
升级服务器堆栈以使用驱动程序2.1.x和Cassandra 2.1.x,因此您现在使用的是协议v3;
用户尝试重新加载他们的书签,但是分页状态是使用协议v2序列化的,因此尝试重用它会失败。
来源:http://docs.datastax.com/en/developer/java-driver/3.2/manual/paging/