You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2022/07/18 08:26:00 UTC

[jira] [Updated] (CASSANDRA-17759) Creation of a keyspace with RF equal to all nodes including gossipping-only members should fail

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

Stefan Miklosovic updated CASSANDRA-17759:
------------------------------------------
    Description: 
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.

  was:
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 the number of members - irrelevant of their current status, they just have to be members of the ring.


> Creation of a keyspace with RF equal to all nodes including gossipping-only members should fail
> -----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17759
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17759
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Stefan Miklosovic
>            Priority: Normal
>
> 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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org