You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ariel Weisberg (JIRA)" <ji...@apache.org> on 2018/02/07 17:39:00 UTC
[jira] [Updated] (CASSANDRA-7544) Allow storage port to be
configurable per node
[ https://issues.apache.org/jira/browse/CASSANDRA-7544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ariel Weisberg updated CASSANDRA-7544:
--------------------------------------
Status: Patch Available (was: Reopened)
RE replicatingNodes this has always been unsafe. Previously it was iterated in {{StringUtils.join}} I'm not sure if we should throw CME if it occurs or just ignore concurrent modifications. This is only used by nodetool for monitoring, but it might be used in an automated fashion.
Proposed changes here https://github.com/aweisberg/cassandra/tree/cassandra-7544-fixes
I went with iterating it safely, but throwing CME if CME is detected. We need to iterate safely even if we intend to throw CME.
> Allow storage port to be configurable per node
> ----------------------------------------------
>
> Key: CASSANDRA-7544
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7544
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Sam Overton
> Assignee: Ariel Weisberg
> Priority: Major
> Fix For: 4.0
>
>
> Currently storage_port must be configured identically on all nodes in a cluster and it is assumed that this is the case when connecting to a remote node.
> This prevents running in any environment that requires multiple nodes to be able to bind to the same network interface, such as with many automatic provisioning/deployment frameworks.
> The current solutions seems to be
> * use a separate network interface for each node deployed to the same box. This puts a big requirement on IP allocation at large scale.
> * allow multiple clusters to be provisioned from the same resource pool, but restrict allocation to a maximum of one node per host from each cluster, assuming each cluster is running on a different storage port.
> It would make operations much simpler in these kind of environments if the environment provisioning the resources could assign the ports to be used when bringing up a new node on shared hardware.
> The changes required would be at least the following:
> 1. configure seeds as IP:port instead of just IP
> 2. gossip the storage port as part of a node's ApplicationState
> 3. refer internally to nodes by hostID instead of IP, since there will be multiple nodes with the same IP
> (1) & (2) are mostly trivial and I already have a patch for these. The bulk of the work to enable this is (3), and I would structure this as a separate pre-requisite patch.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org