cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7839) Support standard EC2 naming conventions in Ec2Snitch
Date Mon, 25 Apr 2016 23:58:12 GMT


Paulo Motta commented on CASSANDRA-7839:

Overall LGTM, can you just do two minor changes:
* add an "Upgrading" notice to {{NEWS.txt}} that legacy clusters using {{Ec2Snitch}} or {{Ec2MultiRegionSnitch}}
must explicitly set {{ec2_naming_scheme=legacy}} on {{}}.
* comment-out {{ec2_naming_scheme=standard}} on {{}}. (since it's
default) and add a short note to change it to legacy if upgrading from a pre-3.6 cluster using
{{Ec2Snitch}} or {{Ec2PropertyFileSnitch}}

I'm not sure if this is too over-cautious, but should we add a bootstrap check (similar to
{{checkForEndpointCollision}}) failing to boostrap a node if it's using the new scheme and
nodes are detected in gossip using the legacy scheme to prevent operator errors going unnoticed?
WDYT [~brandon.williams]? (wrongly configured existing nodes will already be prevented to
start by CASSANDRA-10242).

Submitted a round of CI tests with current patch:

> Support standard EC2 naming conventions in Ec2Snitch
> ----------------------------------------------------
>                 Key: CASSANDRA-7839
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Gregory Ramsperger
>            Assignee: Gregory Ramsperger
>         Attachments: CASSANDRA-7839-aws-naming-conventions.patch
> The EC2 snitches use datacenter and rack naming conventions inconsistent with those presented
in Amazon EC2 APIs as region and availability zone. A discussion of this is found in CASSANDRA-4026.
This has not been changed for valid backwards compatibility reasons. Using SnitchProperties,
it is possible to switch between the legacy naming and the full, AWS-style naming. 
> Proposal:
> * introduce a property (ec2_naming_scheme) to switch naming schemes.
> * default to current/legacy naming scheme
> * add support for a new scheme ("standard") which is consistent AWS conventions
> ** data centers will be the region name, including the number
> ** racks will be the availability zone name, including the region name
> Examples:
> * * legacy* : datacenter is the part of the availability zone name preceding the last
"\-" when the zone ends in \-1 and includes the number if not \-1. Rack is the portion of
the availability zone name following  the last "\-".
> ** us-west-1a => dc: us-west, rack: 1a
> ** us-west-2b => dc: us-west-2, rack: 2b; 
> * *standard* : datacenter is the part of the availability zone name preceding zone letter.
rack is the entire availability zone name.
> ** us-west-1a => dc: us-west-1, rack: us-west-1a
> ** us-west-2b => dc: us-west-2, rack: us-west-2b; 

This message was sent by Atlassian JIRA

View raw message