Skip to content

Rename Transient replication to witness replication #4174

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: trunk
Choose a base branch
from
2 changes: 1 addition & 1 deletion NEWS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@ New features
cassandra.yaml can be used to configure how long to wait (or whether to wait at all)
and block_for_peers_in_remote_dcs can be used to also block on all but one node in
each remote DC as well. See CASSANDRA-14297 and CASSANDRA-13993 for more information.
- *Experimental* support for Transient Replication and Cheap Quorums introduced by CASSANDRA-14404
- *Experimental* support for Witness Replication and Cheap Quorums introduced by CASSANDRA-14404
The intended audience for this functionality is expert users of Cassandra who are prepared
to validate every aspect of the database for their application and deployment practices. Future
releases of Cassandra will make this feature suitable for a wider audience.
Expand Down
6 changes: 3 additions & 3 deletions conf/cassandra.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2199,9 +2199,9 @@ materialized_views_enabled: false
# SASI indexes are considered experimental and are not recommended for production use.
sasi_indexes_enabled: false

# Enables creation of transiently replicated keyspaces on this node.
# Transient replication is experimental and is not recommended for production use.
transient_replication_enabled: false
# Enables creation of witness replicated keyspaces on this node.
# Witness replication is experimental and is not recommended for production use.
witness_replication_enabled: false

# Enables the used of 'ALTER ... DROP COMPACT STORAGE' statements on this node.
# 'ALTER ... DROP COMPACT STORAGE' is considered experimental and is not recommended for production use.
Expand Down
6 changes: 3 additions & 3 deletions conf/cassandra_latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2058,9 +2058,9 @@ materialized_views_enabled: false
# SASI indexes are considered experimental and are not recommended for production use.
sasi_indexes_enabled: false

# Enables creation of transiently replicated keyspaces on this node.
# Transient replication is experimental and is not recommended for production use.
transient_replication_enabled: false
# Enables creation of witness replicated keyspaces on this node.
# Witness replication is experimental and is not recommended for production use.
witness_replication_enabled: false

# Enables the used of 'ALTER ... DROP COMPACT STORAGE' statements on this node.
# 'ALTER ... DROP COMPACT STORAGE' is considered experimental and is not recommended for production use.
Expand Down
2 changes: 1 addition & 1 deletion doc/modules/cassandra/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
**** xref:cassandra:managing/operating/security.adoc[Security]
**** xref:cassandra:managing/operating/snitch.adoc[Snitches]
**** xref:cassandra:managing/operating/topo_changes.adoc[Topology changes]
**** xref:cassandra:managing/operating/transientreplication.adoc[Transient replication]
**** xref:cassandra:managing/operating/witnessreplication.adoc[Witness replication]
**** xref:cassandra:managing/operating/virtualtables.adoc[Virtual tables]
**** xref:cassandra:managing/operating/password_validation.adoc[Password validation]
**** xref:cassandra:managing/operating/onboarding-to-accord.adoc[]
Expand Down
24 changes: 12 additions & 12 deletions doc/modules/cassandra/pages/architecture/dynamo.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -225,34 +225,34 @@ node has been added to the set of replicas, and if it has not, it is
added to the set. This process continues until `replication_factor`
distinct nodes have been added to the set of replicas.

==== Transient Replication
==== Witness Replication

Transient replication is an experimental feature in Cassandra {40_version} not
Witness replication is an experimental feature in Cassandra {40_version} not
present in the original Dynamo paper. This feature allows configuration of a
subset of replicas to replicate only data that hasn't been incrementally
repaired. This configuration decouples data redundancy from availability.
For instance, if you have a keyspace replicated at RF=3, and alter it to
RF=5 with two transient replicas, you go from tolerating one
RF=5 with two witness replicas, you go from tolerating one
failed replica to tolerating two, without corresponding
increase in storage usage. Now, three nodes will replicate all
the data for a given token range, and the other two will only replicate
data that hasn't been incrementally repaired.

To use transient replication, first enable the option in
To use witness replication, first enable the option in
`cassandra.yaml`. Once enabled, both `SimpleStrategy` and
`NetworkTopologyStrategy` can be configured to transiently replicate
data. Configure it by specifying replication factor as
`<total_replicas>/<transient_replicas` Both `SimpleStrategy` and
`NetworkTopologyStrategy` support configuring transient replication.
`NetworkTopologyStrategy` can be configured to use witness replication.
Configure it by specifying replication factor as
`<total_replicas>/<witness_replicas` Both `SimpleStrategy` and
`NetworkTopologyStrategy` support configuring witness replication.

Transiently replicated keyspaces only support tables created with
Tables with witness replicas only support tables created with
`read_repair` set to `NONE`; monotonic reads are not currently
supported. You also can't use `LWT`, logged batches, or counters in {40_version}.
You will possibly never be able to use materialized views with
transiently replicated keyspaces and probably never be able to use
keyspaces using witness replication and probably never be able to use
secondary indices with them.

Transient replication is an experimental feature that is not ready
Witness replication is an experimental feature that is not ready
for production use. The expected audience is experienced users of
Cassandra capable of fully validating a deployment of their particular
application. That means you have the experience to check that operations like reads,
Expand All @@ -261,7 +261,7 @@ your queries, data, configuration, operational practices, and
availability requirements.

Anticipated additional features in `4.next` are support for monotonic reads with
transient replication, as well as LWT, logged batches, and counters.
witness replication, as well as LWT, logged batches, and counters.

=== Data Versioning

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ persisted

=== Version 4

* na (4.0-rc1): uncompressed chunks, pending repair session, isTransient, checksummed SSTable metadata file, new Bloom filter format
* na (4.0-rc1): uncompressed chunks, pending repair session, isWitness, checksummed SSTable metadata file, new Bloom filter format
* nb (4.0.0): originating host id

=== Version 5
Expand Down
8 changes: 4 additions & 4 deletions doc/modules/cassandra/pages/developing/cql/ddl.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,13 @@ will result in:
include::cassandra:example$RESULTS/autoexpand_exclude_dc.result[]
----

If xref:new/transientreplication.adoc[transient replication] has been enabled, transient replicas can be
If xref:new/witnessreplication.adoc[witness replication] has been enabled, witness replicas can be
configured for both `SimpleStrategy` and `NetworkTopologyStrategy` by
defining replication factors in the format
`'<total_replicas>/<transient_replicas>'`
`'<total_replicas>/<witness_replicas>'`

For instance, this keyspace will have 3 replicas in DC1, 1 of which is
transient, and 5 replicas in DC2, 2 of which are transient:
a witness, and 5 replicas in DC2, 2 of which are witnesses:

[source,cql]
----
Expand Down Expand Up @@ -592,7 +592,7 @@ include::cassandra:example$CQL/spec_retry_values.cql[]
----

The `additional_write_policy` setting specifies the threshold at which a cheap
quorum write will be upgraded to include transient replicas.
quorum write will be upgraded to include witness replicas.

[[cql-compaction-options]]
===== Compaction options
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ our parameters (incrementally, post https://issues.apache.org/jira/browse/CASSAN
|enable_user_defined_functions |user_defined_functions_enabled |-
|enable_scripted_user_defined_functions |scripted_user_defined_functions_enabled |-
|enable_materialized_views |materialized_views_enabled |-
|enable_transient_replication |transient_replication_enabled |-
|enable_witness_replication |witness_replication_enabled |-
|enable_sasi_indexes |sasi_indexes_enabled |-
|enable_drop_compact_storage |drop_compact_storage_enabled |-
|enable_user_defined_functions_threads |user_defined_functions_threads_enabled |-
Expand Down
2 changes: 1 addition & 1 deletion doc/modules/cassandra/pages/managing/operating/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* xref:cassandra:managing/operating/auto_repair.adoc[Auto Repair]
* xref:cassandra:managing/operating/security.adoc[Security]
* xref:cassandra:managing/operating/topo_changes.adoc[Topology changes]
* xref:cassandra:managing/operating/transientreplication.adoc[Transient replication]
* xref:cassandra:managing/operating/witnessreplication.adoc[Witness replication]
* xref:cassandra:managing/operating/virtualtables.adoc[Virtual tables]
* xref:cassandra:managing/operating/password_validation.adoc[Password validation]
* xref:cassandra:managing/operating/onboarding-to-accord.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ name | value
auto_snapshot | true
automatic_sstable_upgrade | false
cluster_name | Test Cluster
enable_transient_replication | false
enable_witness_replication | false
hinted_handoff_enabled | true
hints_directory | /home/ec2-user/cassandra/data/hints
incremental_backups | false
Expand Down Expand Up @@ -679,4 +679,4 @@ results in:
127.0.0.1 | 37310 | ready | DataStax Python Driver | 3.21.0.post0 | localhost | 4 | 8 | null | False | null | anonymous

(2 rows)
----
----
Loading