Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-16138

Refactor Local Ring Management

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsAdd voteVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments



      Token ring management is one of the most critical parts of Cassandra, yet one of the most overlooked. Some of the problems include but are not limited to:

      These limitations make it difficult to reliably fix bugs like properly supporting node replacement with the same IP address (CASSANDRA-12344), add improvements such as safe ring membership changes, support for networking via identity instead of IP (CASSANDRA-15823) or add new features such as dynamic virtual nodes.

      This ticket aims at refactoring the ring management sub-module (namely TokenMetadata and related classes) to address most of its current limitations in order to support further improvements and new features.

      Some of the requirements of the proposed refactoring are:

      1. Make node-local ring representation fully immutable and snapshottable.
      2. Add content-based versioning to uniquely identify a ring snapshot throughout the cluster.
      3. Make token ring management vnode-centric to support membership operations on individual tokens and simplify token assignment calculations.
      4. Primarily identify ring endpoints by node ID to decouple a node’s identity from its IP address.
      5. Add a local publish/subscribe mechanism for ring change notifications, so other modules can subscribe to it and receive the newest snapshot of the ring after membership changes.
      6. Add testing framework to verify correctness of ring membership operations.
      7. Ensure the refactored sub-module does not change current behavior via comprehensive testing.


        Issue Links


          This comment will be Viewable by All Users Viewable by All Users


            pauloricardomg Paulo Motta Assign to me
            pauloricardomg Paulo Motta
            Paulo Motta




                Issue deployment