Cassandra:页面存在多长时间?

时间:2017-04-21 08:13:20

标签: java cassandra paging cassandra-3.0

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元数据。

问题

  • 可以'页'指数在卡桑德拉到期?
  • 它存在多长时间(默认情况下)?

1 个答案:

答案 0 :(得分:3)

不,Cassandra Driver的分页状态不会过期。

因为每次使用分页状态进行查询时,cassandra每次都会执行您的查询。它不存储您的结果。分页状态只是告诉cassandra驱动程序想要数据的索引。

  

由于内部实现细节,PagingState实例不能跨本机协议版本移植。在以下情况中,这可能会成为一个问题:

  • 您正在使用驱动程序2.0.x和Cassandra 2.0.x,因此使用本机协议v2;
  • 用户为包含序列化分页状态的Web服务的链接添加书签;
  • 升级服务器堆栈以使用驱动程序2.1.x和Cassandra 2.1.x,因此您现在使用的是协议v3;

  • 用户尝试重新加载他们的书签,但是分页状态是使用协议v2序列化的,因此尝试重用它会失败。

来源:http://docs.datastax.com/en/developer/java-driver/3.2/manual/paging/