Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-8799

Pagination support in CQL and henceforth in the drivers

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Normal
    • Resolution: Duplicate
    • None
    • None
    • None

    Description

      Currently Cassandra doesn't support pagination(explicit) and henceforth the drivers either.

      To achieve the same the client has to do the workaround as mentioned in the below blog (section Cql3 pagination)
      http://datastax.com/dev/blog/cql3-table-support-in-hadoop-pig-and-hive

      Before raising this enhancement, I initiated a discussion in Cassandra users forum and Java driver users forum as below:

      http://www.mail-archive.com/user@cassandra.apache.org/msg40864.html

      Even if it is not possible to support Pagination, I would like to know the technical reasons.

      Pagination support is important in any database query and especially in NoSQL as we deal with large number of rows. It is very common usecase as well.

      As I mentioned in the forum discussion, the pagination support is best done in the Casssandra core like TOP, ROWNUM, LIMIT in SQL. (LIMIT is already supported in Cassandra)

      If it is not possible to support pagination in CQL, could it be supported in Java driver (other drivers as well)?, as it is already supporting the implicit pagination through https://issues.apache.org/jira/browse/CASSANDRA-4415. The Multipage.FetchingState can be made immutable and returned on each page query and the driver cache it in the session level or expose it to the client to cache it to continue the iteration to the next page.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ajaygarga Ajay
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: