Details
-
New Feature
-
Status: Resolved
-
Normal
-
Resolution: Later
-
None
-
None
-
None
Description
Once we have the locator abstracted (with the gossiper being a
particular concrete implementation), we want to change the locator
abstraction to not express changes in ring topology on a per-node
basis; rather we want to use an abstraction which communicates two
arbitrary ring states; one state for the read set, and one for the
write set.
Once this abstraction is in place, the (pluggable) locator will be
able to make bulk changes to a ring at once. Main points:
- Must be careful in handling consistency level during ring
transitions, such that a given node in the read set corresponds to a
specific node in the write set. This will impose some restrictions
on completion of transitions, to avoid code complexity, so it is an
important point.
- All code outside of gossip (and any other locator that works
similarly) will be agnostic about individual changes to nodes, and
will instead only be notified when new ring states are available (in
aggregate). This makes the change non-trivial because all code that
currently is oriented around individual node changes always
producing a valid ring, will have to be changed.
Attachments
Issue Links
- depends upon
-
CASSANDRA-3834 make locator pluggable/abstract
- Resolved
- is related to
-
CASSANDRA-3901 write endpoints are not treated correctly, breaking consistency guarantees
- Resolved
-
CASSANDRA-3892 improve TokenMetadata abstraction, naming - audit current uses
- Resolved
- relates to
-
CASSANDRA-3483 Support bringing up a new datacenter to existing cluster without repair
- Resolved