docs/RFCS/20150729_range_replica_naming.md
Consistently use the word range to refer to a portion of the global sorted map (i.e. an entire raft consensus group, and replica to refer to a single copy of the range's data.
We currently use the word "range" informally to refer to both the
consensus group and the data owned by one member of the group, while
in code the storage.Range type refers to the latter. This was a
deliberate at the time because (at least in code) the latter is more
common than the former. However, resolving certain issues related to
replication and splits requires us to be precise about the difference,
so I propose separating the two usages to improve clarity.
Rename the type storage.Range to storage.Replica, and range_*.go
to replica_*.go. Rename RaftID to RangeID (the name RaftID was
chosen to avoid the ambiguity inherent in our old use of "range"). A
new Range type may be created to house pieces of Replica that do
in fact belong at the level of the range (for example, the
AdminSplit, AdminMerge, and ChangeReplicas methods)
This reverses a previously-made decision and moves/renames a lot of code.
Keep Range for a single replica and use Raft or Group when
naming things that relate to the whole group.