Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsAdd voteVotersWatch issueWatchersConvert to IssueMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Low
    • Resolution: Unresolved
    • None
    • None

    Description

      We currently represent nodes as InetAddress objects on TokenMetadata, what causes difficulties when replacing a node with the same address (see CASSANDRA-8523 and CASSANDRA-9244).

      Since CASSANDRA-4120 we index hosts by UUID in gossip, so I think it's time to move that representation to TokenMetadata.

      I propose representing nodes as InetAddress, UUID pairs on TokenMetadata, encapsulated in a VirtualNode interface, so it will backward compatible with the current representation, while still allowing us to enhance it in the future with additional metadata (and improved vnode handling) if needed.

      This change will probably affect interfaces of internal classes like TokenMetadata and AbstractReplicationStrategy, so I'd like to hear from integrators and other developers if it's possible to change these without major hassle or if we need to wait until 4.0.

      Besides updating TokenMetadata and AbstractReplicationStrategy (and subclasses), we will also need to replace all InetAddress uses with VirtualNode.getEndpoint() calls on StorageService and related classes and tests. We would probably already be able to replace some TokenMetadata.getHostId(InetAddress endpoint) calls with VirtualNode.getHostId().

      While we will still be dealing with InetAddress on StorageService in this initial stage, in the future I think we should pass VirtualNode instances around and only translate from VirtualNode to InetAddress in the network layer.

      Public interfaces like IEndpointSnitch will not be affected by this.

      Attachments

        Issue Links

        Activity

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

          People

            alourie Alex Lourie Assign to me
            pauloricardomg Paulo Motta
            Alex Lourie

            Dates

              Created:
              Updated:

              Slack

                Issue deployment