rangefeed: remove catchup iterator creation from processor work loop #111040
Labels
A-kv-replication
Relating to Raft, consensus, and coordination.
C-enhancement
Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
Currently iterator creation is deferred to registration step to simplify iterator lifecycle management.
It must be closed if we failed to create rangefeed registration for any reason.
raftMu is held throughout the whole rangefeed request handling op so there's no issue with getting inconsistent view between iterator and events.
By moving iterator creation out of processor work loop, we remove all io dependent operation from scheduler thus removing possibilies of starving neighbour rangefeeds for extended periods of time.
This issue could be particularly bad at startup when multiple rangefeeds start at the same time.
Jira issue: CRDB-31737
Epic CRDB-26372
The text was updated successfully, but these errors were encountered: