> I assume it's because of iterators in read-time, which go over results do > merging/reducing/collating results one-by-one that is not so well suited for > jumping to arbitrary offsets, given the practically huge number of columns > involved, right? No really, you can have a slice that starts in the middle of a row of 10 million columns just by using a start column.
Having a slice operation that is constrained in size improves the overall throughout of the server and reduces the (jvm) GC churn in the server. Cheers ----------------- Aaron Morton Freelance Cassandra Developer New Zealand @aaronmorton http://www.thelastpickle.com On 16/11/2012, at 7:02 PM, Ravikumar Govindarajan <ravikumar.govindara...@gmail.com> wrote: > Thanks Ed, for the clarifications > > Yes you are correct that the apps have to handle repeatable reads and not the > databases themselves when using absolute offsets, but SQL databases do > provide such an option at app's peril!!! > > "Slices have a fixed size, this ensures that the the "query" does not execute > for arbitrary lengths of time." > > I assume it's because of iterators in read-time, which go over results do > merging/reducing/collating results one-by-one that is not so well suited for > jumping to arbitrary offsets, given the practically huge number of columns > involved, right? Did I understand it correctly? > > We are now faced with persisting the page with both first & last-key for > prev/next navigation. The problem gets quickly complex, when there we have to > support multiple pages per user. I just wanted to know, if there any known > work-arounds for this. > > -- > Ravi > > On Thu, Nov 15, 2012 at 9:03 PM, Edward Capriolo <edlinuxg...@gmail.com> > wrote: > There are several reasons. First there is no "absolute offset". The > rows are sorted by the data. If someone inserts new data between your > query and this query the rows have changed. > > Unless you doing select queries inside a transaction with repeatable > read and your database supports this the query you mention does not > really have "absolute offsets " either. The results of the query can > change between reads. > > In cassandra we do not execute large queries (that might results to > temp tables or whatever) and allow you to page them. Slices have a > fixed size, this ensures that the the "query" does not execute for > arbitrary lengths of time. > > > On Thu, Nov 15, 2012 at 6:39 AM, Ravikumar Govindarajan > <ravikumar.govindara...@gmail.com> wrote: > > Usually we do a SELECT * FROM .... ORDER BY .... LIMIT 26,25 for pagination > > purpose, but specifying offset is not available for range queries in > > cassandra. > > > > I always have to specify a start-key to achieve this. Are there reasons for > > choosing such an approach rather than providing an absolute offset? > > > > -- > > Ravi >