【问题标题】:Any method to get stateless pagination in cassandra?在 cassandra 中获得无状态分页的任何方法?
【发布时间】:2015-10-25 21:40:18
【问题描述】:

假设我有一个 web 服务,并且我有一个方法可以返回网页的一组记录。此方法获取 1 个参数,它是页码,因此我可以输入该号码并获取该页码的结果

如果您将 StackOverflow 用于 example

查看所有问题时有一个URL参数, 那么如果我的记录是使用聚类键排序的,那么使用 Cassandra 实现此目的的方法是什么。

【问题讨论】:

    标签: java cassandra datastax


    【解决方案1】:

    查看this page in our doc(使用左上角的下拉菜单切换到您的驱动程序版本)。

    简而言之:Cassandra 支持保存上一页的状态并使用它从下一页重新启动。

    开箱即用不支持偏移查询(从随机页面开始);有很多方法可以模仿它们,前提是您接受性能影响(基本上每次都会跳过前 n 个结果)。

    【讨论】:

    • 关于这一点的另一件事是,我可以保存分页状态并再次使用它们吗,假设我想要第 5 页,我从保存分页状态的位置加载分页状态并使用该分页状态。即使表中的记录数量发生变化,它也会起作用吗?
    • 分页状态由以下内容构成:当前分区键、当前单元格名称(基本上是当前行的 id)以及剩余行数(如果您的查询有 LIMIT)。因此,对于给定的分页状态,您将始终从同一行重新开始。如果在此期间添加/删除了行,那么这可能与您从头开始重新迭代 5 页所获得的行不同。
    • 假设由于某些异常(比如ReadTimeoutException),我得到的结果集为空,因此我无法获取 PagingState 对象,但我想跳过此页面并仍移动到下一页。有没有办法做到这一点?在这种情况下,我该如何移动到下一页?
    • @abi_pat 你不能。如果你没有从服务端获取分页状态,那么在客户端是没有办法生成的。
    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多