[jira] [Updated] (CASSANDRA-11559) Enhance node representation

2021-07-02 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-11559:
-
Status: Open  (was: Patch Available)

> Enhance node representation
> ---
>
> Key: CASSANDRA-11559
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11559
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Legacy/Distributed Metadata
>Reporter: Paulo Motta (Deprecated)
>Assignee: Alex Lourie
>Priority: Low
>
> 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
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-11559) Enhance node representation

2018-03-26 Thread Alex Lourie (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Lourie updated CASSANDRA-11559:

Status: Patch Available  (was: In Progress)

https://github.com/apache/cassandra/compare/trunk...alourie:CASSANDRA-11559#files_bucket

> 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



[jira] [Updated] (CASSANDRA-11559) Enhance node representation

2016-04-12 Thread Paulo Motta (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paulo Motta updated CASSANDRA-11559:

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.

  was:
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}} class, 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.


> 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
>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