I know that "Prev/Next" is good solution for web applications. But when I want to access data from another application or when I want to access pages randomly...
Cassandra supports the recommended approach from: http://www.percona.com/ppc2009/PPC2009_mysql_pagination.pdf
For large numbers of items, skip + limit is extremely inefficent.
From: "Michal Augustın" <email@example.com>
Sent: Sunday, September 5, 2010 5:39am
Subject: skip + limit support in GetSlice
probably this is feature request. Simply, I would like to have support for
standard pagination (skip + limit) in GetSlice Thrift method. Is this
feature on the road map?
Now, I have to perform GetSlice call, that starts on "" and "limit" is set
to "skip" value. Then I read the last column name returned and subsequently
perform the final GetSlice call - I use the last column name as "start" and
set "limit" to "limit" value.
This workaround is not very efficient when I need to skip a lot of columns
(so "skip" is high) - then a lot of data must be transferred via network. So
I think that support for Skip in GetSlice would be very useful (to avoid
high network traffic).
The implementation could be very straightforward (same as the workaround) or
maybe it could be more efficient - I think that whole row (so all columns)
must fit into memory so if we have all columns in memory...