Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
Description
It is non-intuitive that get_count materializes the entire slice-to-count on the coordinator node (to perform read repair and > CL.ONE consistency). Even experienced users have been known to cause memory problems by requesting large counts.
The user cannot page the count himself, because you need a start and stop column to do that, and get_count only returns an integer.
So the best fix is for us to do the paging under the hood, in CassandraServer. Add a limit to the slicepredicate they specify, and page through it.
We could add a global setting for count_slice_size, and document that counts of more columns than that will have higher latency (because they make multiple calls through StorageProxy for the pages).