Follower reads are consistent reads at historical timestamps from follower
replicas. They make the non-leader replicas in a range suitable sources for
historical reads. Historical reads include both
AS OF SYSTEM TIME queries
as well as transactions with a read timestamp sufficiently in the past (for
example long-running analytics queries).
The key enabling technology is the exchange of closed timestamp updates
between stores. A closed timestamp update (CT update) is a store-wide
timestamp together with (sparse) per-range information on the Raft progress.
Follower replicas use local state built up from successive received CT updates
to ascertain that they have all the state necessary to serve consistent reads
at and below the leaseholder store’s closed timestamp.
Follower reads are only possible for epoch-based leases, which includes all user
ranges but excludes some system ranges (such as the addressing metadata ranges).