Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
Description
Index and filtering queries have historically always been treated as range reads. However, when they are restricted to a partition, there is no reason they cannot be handled like single-partition reads, flowing through StorageProxy#fetchRows(). The benefit of doing this is that we may be able to take advantage of digest reads. The caveat is that this may not be possible (or worthwhile) when, for instance, SAI queries do not use strict filtering. When strict filtering is not active, we may need to filter combined replica results at the coordinator even when there isn’t a digest mismatch. When there is a digest mismatch, replica filtering protection will kick in during the read repair process and safely resolve this.
tl;dr We can safely treat partition-restricted index/SAI/filtering queries as single-partition reads, but initially it may be safest to do this only when strict filtering is enabled.