[
https://issues.apache.org/jira/browse/CASSANDRA-17759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Miklosovic updated CASSANDRA-17759:
------------------------------------------
Test and Documentation Plan: in-jvm dtest
Status: Patch Available (was: Open)
Branch for 3.11 is here:
[https://github.com/apache/cassandra/pull/1738]
build:
[https://app.circleci.com/pipelines/github/instaclustr/cassandra/1134/workflows/7c8f8ad6-58ac-4f91-b11c-d9e2b3b72087]
I am looking of a preliminear review, if the approach is agreed on, I will copy
this solution to all other branches.
> Altering / creating of a keyspace on insufficient number of replicas should
> filter out gosspping only members
> -------------------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-17759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17759
> Project: Cassandra
> Issue Type: New Feature
> Components: Legacy/CQL
> Reporter: Stefan Miklosovic
> Assignee: Stefan Miklosovic
> Priority: Normal
> Fix For: 3.11.x, 4.0.x, 4.1.x, 4.x
>
>
> When there is a CQL CREATE / ALTER KEYSPACE query executed on a
> gossipping-only member of a cluster (-Dcassandra.join_ring=false) where the
> replication factor is bigger than the number of the nodes, there is currently
> a warning emitted, which is ok, but this number also includes the gossipping
> node itself. This is incorrect as such a node is not part of a ring hence it
> does not hold any data.
> This is not happening on "data" nodes (members of the ring) as from data
> nodes perspective, gossipping-only members are not visible.
> We should filter gossipping-only members out of the computation.
> EDIT:
> For the sake of the completeness, I leave here the original description of
> this ticket:
> The original issue for which we refused to do any action:
> Imagine there is a 5-node cluster where two nodes are gossipping-only members
> (-Dcassandra.join_ring=false) - or in other words, 3 data nodes and 2
> "coordinator" nodes.
> Coordinator nodes are capable to speak CQL as well so requests can be
> executed against them. If we create a keyspace against such node, like
> "create keyspace ks1 with replication =
> {class = "NTS", "dc1": 5}
> , this query succeeds but if we set CONSISTENCY to ALL in cqlsh and we try to
> insert some data into a table of such keyspace, it will fail - because it
> does not have enough replicas. It has only 3.
> If this query is executed on data node (a proper member of a ring), this
> should fail too. I think there is a mechanism how to do this, like by
> Guardrails but there is no check which would include gossipping-only members
> into consideration.
> Ideally, we might introduce a check which would check that the replication
> factor is at most as big as the number of members - irrelevant of their
> current status, they just have to be members of the ring.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]