Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
Description
With CASSANDRA-4415 if a coordinator fails or gets slow, causing the NEXT request to timeout, the client application won't be able to complete its browsing of the result. That implies that most of the time when the developer will rely on cursors he will have to write some logic to handle a retry request for results starting where the iteration failed. This will quickly become painful.
Ideally the driver should handle this failover by itself by transparently issuing this retry query when NEXT fail, but as the driver doesn't understand CQL queries, the only thing it's aware of is the number of rows already read. Therefore we should allow an optional parameter <initial_row_number> in QUERY and EXECUTE messages that would allow a kind of stateless failover of cursors.
With such an option, developers wouldn't have to write any failover/retry logic on failure as they would know that everything has already been tried by the driver.