[ https://issues.apache.org/jira/browse/CASSANDRA-11559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Lourie reassigned CASSANDRA-11559: --------------------------------------- Assignee: Alex Lourie > Enhance node representation > --------------------------- > > Key: CASSANDRA-11559 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11559 > Project: Cassandra > Issue Type: Sub-task > Components: Distributed Metadata > Reporter: Paulo Motta > Assignee: Alex Lourie > Priority: Minor > > 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. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org