是否可以在Cassandra中反序列化pageingState

时间:2018-07-16 17:49:26

标签: cassandra

我的数据存储在多个分区之间。我本打算将数据发送给客户端,但我想对响应进行分页。假设我的第一个分区有100行,第二个分区有100行。我想每页发送10行以及PagingState。客户端会将PagingState发送回服务器,我将使用它来获取运行同一查询的下10条记录。一旦我用完了第一行的100行,我将不得不更改查询。是否可以找到从PagingState执行哪个查询,以便我可以读取PagingState,找到它用于哪个分区,并使用此信息,我可以确定下一个分区应该是什么

1 个答案:

答案 0 :(得分:2)

有可能,但并非一帆风顺或安全。内容在(协议和cassandra)版本之间更改。它的解析也不是那么简单,因为最新使用var ints标记分区键和行标记的大小。在较旧的版本上,它还需要发送一个单元格级别的标记,在某些情况下它仍然会发送以实现向后兼容,因此应该同时处理这两种情况。对于新版本的C *,您需要检查其是否更改。

您始终可以在客户端进行分页,这将使您可以控制它并了解不会在版本上更改的状态。