Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
260 commits
Select commit Hold shift + click to select a range
7b7d160
config description
jaydeepkumar1984 Aug 26, 2024
a908bb1
Implement repair retries for auto-repair scheduler
kzalys Aug 29, 2024
c7eceb9
Extend nodetool sstablerepairedset to affect all keyspaces when no ke…
kzalys Aug 30, 2024
95e6605
Make repair session timeout configurable
jaydeepkumar1984 Aug 30, 2024
203b35c
Comments from Joshua M
jaydeepkumar1984 Sep 6, 2024
7b4a96d
AutoRepair scheduler InJvm dtest
jaydeepkumar1984 Sep 7, 2024
b261be0
Increase CircleCI parallelism 1-->4
jaydeepkumar1984 Sep 24, 2024
89a1199
Fix a test case failure org.apache.cassandra.schema.SchemaKeyspaceTes…
jaydeepkumar1984 Sep 24, 2024
c886358
Trigger automatic CircleCI jobs
jaydeepkumar1984 Sep 24, 2024
0f4d41f
CircleCI ask for a manual approval
jaydeepkumar1984 Sep 24, 2024
8272926
Fix the JMXStandardsTest::interfaces
kzalys Sep 25, 2024
a1dbabb
Circle AutoStart J8 tests
jaydeep1984 Sep 25, 2024
fb988da
Allow IR to run with MVs and CDC if write path replay is disabled
kzalys Sep 26, 2024
c701b80
Add a nodetool command to get the nodes going through repair
kzalys Sep 27, 2024
713c84a
Adjust a couple of default configuration values
jaydeepkumar1984 Sep 27, 2024
a3bae80
Rename EMPTY --> NONE for Nodetool autorepairstatus command
jaydeepkumar1984 Sep 27, 2024
36667f2
Minor code refactoring to simplify the repair API by removing the SLE…
jaydeepkumar1984 Sep 28, 2024
8d65b2d
Adjust AutoRepair on 5.0
jaydeepkumar1984 Sep 30, 2024
55b706c
Fix unit test cases DescribeStatementTest & SchemaCQLHelperTest
jaydeepkumar1984 Sep 30, 2024
36442de
Safeguard the setup call to ensure it it done only once
jaydeepkumar1984 Sep 30, 2024
33d6e49
Fix InJvm test AutoRepairSchedulerTest
jaydeepkumar1984 Oct 1, 2024
42f32c0
Unit test failures AutoRepairTest.java
jaydeepkumar1984 Oct 1, 2024
233640f
5.0 formatting
jaydeepkumar1984 Oct 3, 2024
7c48984
Fix flaky AutoRepairTest::testSetup and AutoRepairTest::testSafeGuard…
jaydeepkumar1984 Oct 8, 2024
87190c4
Fix a test failure inside pylib/cqlshlib/test/test_cqlsh_output.py
kzalys Oct 8, 2024
a21c016
AutoRepair nodetool throws an exception if the framework is disabled
jaydeepkumar1984 Oct 9, 2024
fda44af
Run repair on bootstrapped if configured to do so
jaydeepkumar1984 Oct 9, 2024
d26b24f
Fix broken AutoRepairSchedulerTest.java & AutoRepairStatusTest.java
jaydeepkumar1984 Oct 9, 2024
43c0f99
Comments from Chris Lohfink: nix automated_ and a typo
jaydeepkumar1984 Oct 9, 2024
69267a4
Comments from Chris Lohfink: System::currentTimeMillis --> Clock.Glob…
jaydeepkumar1984 Oct 9, 2024
6fd372e
Update IAutoRepairTokenRangeSplitter API to be more flexible
tolbertam Sep 25, 2024
2ccdc37
Fix a corner-case bug NPE org.apache.cassandra.repair.autorepair.Auto…
jaydeepkumar1984 Oct 12, 2024
d35fb4b
Update documentation for the newly added metric
jaydeepkumar1984 Oct 14, 2024
01a68e5
Fix the failed StorageServiceServerTest test cases
jaydeepkumar1984 Oct 15, 2024
9c901e0
Formatting: Add a new line towards the end SystemDistributedKeyspace.…
jaydeepkumar1984 Oct 15, 2024
490ac25
Formatting: Add a new line towards the end IAutoRepairTokenRangeSplit…
jaydeepkumar1984 Oct 15, 2024
ad9ef82
Formatting: YamlConfigurationLoader.java & CassandraStreamReceiver.java
jaydeepkumar1984 Oct 15, 2024
be0377b
Revert .circleci/config.yaml settings
jaydeepkumar1984 Oct 17, 2024
e1724de
Code formatting: Remove Group from naming
jaydeepkumar1984 Oct 27, 2024
c3f7c68
Enable repair scheduler through nodetool
jaydeepkumar1984 Oct 28, 2024
fdaed59
Increment system_distributed GENERATION
jaydeepkumar1984 Oct 29, 2024
e2031a4
Option to disable write path during streaming for MV enabled tables; …
jaydeepkumar1984 Nov 4, 2024
5c27c93
cr from tolbertam - replace MV/CDC repair replay JVM properties to ya…
jaydeepkumar1984 Nov 4, 2024
096b898
ant checkstyle: toLowerCase-->toLowerCaseLocalized
jaydeepkumar1984 Nov 6, 2024
d98cfa1
code formatting: DatabaseDescriptor.java
jaydeepkumar1984 Nov 6, 2024
c9142fa
Rename AutoRepair --> UnifiedRepair
jaydeepkumar1984 Nov 21, 2024
510ce5f
Revert "Rename AutoRepair --> UnifiedRepair"
jaydeep1984 Nov 21, 2024
6e88789
Implement preview repaired metrics
kzalys Nov 7, 2024
5683acd
Improve preview repair metrics
kzalys Nov 21, 2024
62a3526
Update src/java/org/apache/cassandra/repair/autorepair/AutoRepairConf…
kzalys Nov 26, 2024
6b89ff0
Address comments
kzalys Dec 4, 2024
f21377a
Fix preview repair options for system_schema ks
kzalys Dec 4, 2024
f61c798
Implement BytesPreviewed and TokenRangesPreviewed metrics
kzalys Dec 4, 2024
a560d48
Update test/unit/org/apache/cassandra/repair/autorepair/AutoRepairPar…
kzalys Dec 6, 2024
03d0410
Address comments
kzalys Dec 6, 2024
35fb100
Update metrics docs
kzalys Dec 6, 2024
f444067
Update metrics
kzalys Dec 6, 2024
2cca086
UnrepairedBytesBasedTokenRangeSplitter prototype
tolbertam Nov 3, 2024
51eb7fc
Add Repair range splitter
clohfink Nov 7, 2024
807d6ed
add assignment priorirty to table options
clohfink Nov 8, 2024
2b70565
reorder with DefaultAutoRepairTokenSplitter
clohfink Nov 8, 2024
c53d550
add tests for partition count estimation
clohfink Nov 8, 2024
2a70b23
Add license header to RepairRangeSplitter
tolbertam Nov 10, 2024
8868074
Simplify access of repair_type_overrides, key by String
tolbertam Nov 10, 2024
6d47310
Allow partial repair of range, factor in total bytes for IR
tolbertam Nov 11, 2024
61e7a3d
update warnings based on repair type
clohfink Nov 14, 2024
3947795
Move size comparison up so priority can be factored in
tolbertam Nov 27, 2024
faed922
Various cleanup
tolbertam Nov 27, 2024
a2cb72d
Handle EmpySSTableScanner being returned from getScanner
tolbertam Nov 27, 2024
5ee5e66
Minor refactoring around bytesPerSubrange, logging
tolbertam Nov 27, 2024
4f35fe2
Cleanup logging of repair assignments
tolbertam Nov 27, 2024
56c686c
Remove UnrepairedBytesBasedTokenRangeSplitter
tolbertam Nov 30, 2024
053d3ac
Refactor RepairRangeSplitter interface to accept all keyspaces
tolbertam Nov 30, 2024
25ca077
Naming consistency
tolbertam Nov 30, 2024
4592e8d
Use memtable size for memtable only
tolbertam Nov 30, 2024
22f8bdb
Fix dtest
tolbertam Dec 2, 2024
317d318
Refactor IAutoRepairTokenRangeSplitter to be Iterator based
tolbertam Dec 2, 2024
0e1b290
Add more priority and range splitter tests
tolbertam Dec 2, 2024
671a653
Refactor a missed change during the rebase
jaydeepkumar1984 Dec 10, 2024
32c701a
Set thread name based on RepairType.getConfigName()
tolbertam Dec 7, 2024
589c021
Flatten the auto_repair table property
jaydeepkumar1984 Dec 8, 2024
48ab043
Fix ant checkstyle errors
jaydeepkumar1984 Dec 10, 2024
4cc3fa2
Ignore keyspaces with MetaStrategy
jaydeepkumar1984 Dec 10, 2024
6d5d648
Adjust BigTableScanner.getScanner as per 5.1 API set
jaydeep1984 Dec 10, 2024
f18b983
Fix antcheckstyle
jaydeepkumar1984 Dec 10, 2024
0036bff
Fix ant test-latest failures for RepairRangeSplitterTest-latest_jdk17…
jaydeepkumar1984 Dec 12, 2024
32ae5ea
utest: calculate expected tables dynamically instead of a fixed value
tolbertam Dec 15, 2024
939c962
Ignore repair for system_traces keyspace
jaydeepkumar1984 Dec 18, 2024
48d3ee6
CR from Andy T
jaydeepkumar1984 Dec 19, 2024
f68838c
Fix diff40
jaydeepkumar1984 Dec 19, 2024
3ce847a
Fix diff41
jaydeepkumar1984 Dec 19, 2024
7e58066
Convert the metrics to TableMeter
jaydeepkumar1984 Dec 20, 2024
8d53dbd
Add a global type=ColumnFamily
jaydeep1984 Dec 20, 2024
a2fa469
Remove an extra empty line
jaydeep1984 Dec 20, 2024
b4040e5
Revert the cassandra-4.x.xml changes
jaydeepkumar1984 Dec 20, 2024
3d59a7a
gauge compatible meter
tolbertam Dec 21, 2024
54fa247
Implement minimum repair task duration setting for auto-repair scheduler
kzalys Dec 20, 2024
8d8ed47
Cleanup
kzalys Dec 20, 2024
18171b3
Cleanup
kzalys Dec 20, 2024
7915e55
Address comment
kzalys Dec 21, 2024
b60f6ce
Remove unused imports
jaydeepkumar1984 Dec 21, 2024
97f764a
formatting
jaydeepkumar1984 Dec 21, 2024
c5b8768
Make RepairTokenRangeSplitter the default implementation
tolbertam Jan 2, 2025
94df667
JDK 8 support and test rename
tolbertam Jan 2, 2025
43bf6e3
Fix newAutoRepairTokenRangeSplitter duplication
tolbertam Jan 2, 2025
318a69e
Nit-fixing in existing code
tolbertam Jan 3, 2025
2a9aae0
Process feedback
tolbertam Jan 3, 2025
c30f5cf
Fix the the total expected sub-ranges calculation keeping v-nodes in …
jaydeepkumar1984 Jan 5, 2025
b3462b2
Feedback and update tests
tolbertam Jan 6, 2025
b3620f1
Remove unused import in RepairTokenRangeSplitterTest.java
jaydeepkumar1984 Jan 7, 2025
9b03111
Add configuration to cassandra.yaml and cassandra_later.yaml
jaydeepkumar1984 Jan 8, 2025
7a3c36e
Add a doc for AutoRepair feature
jaydeepkumar1984 Jan 8, 2025
b5ddfa8
cr from Andy
jaydeepkumar1984 Jan 16, 2025
0da1c04
address cr from Andy
jaydeepkumar1984 Jan 21, 2025
6d124c6
partitions_per_assignment to not use repair_session_max_tree_depth
tolbertam Jan 23, 2025
f8eb10f
Fix inconsistent spacing in javadoc
tolbertam Jan 23, 2025
9a13bd8
Make AutoRepair's repair_by_keyspace default to true instead of false
tolbertam Jan 23, 2025
b938185
AutoRepairServiceMBean should not use custom types for JMX methods
frankgh Jan 25, 2025
6a6d51d
Address comments
frankgh Jan 25, 2025
f51f29b
Fix tests and rename autoRepairConfiguration -> getAutoRepairConfigur…
frankgh Jan 28, 2025
7f1b4a2
Adjust based on the latest trunk
jaydeepkumar1984 Jan 29, 2025
5686864
Remove commented code; use TokenRingUtils.getPrimaryRangesForEndpoint…
jaydeepkumar1984 Feb 4, 2025
1442b58
Update RepairTokenRangeSplitter to work with BTI-formatted SSTables
tolbertam Feb 11, 2025
8c46cd5
Avoid possible division by zero
tolbertam Feb 11, 2025
3bbf35f
Test with Bti and Big format sstables
tolbertam Feb 11, 2025
c32e612
Assert correct format selected
tolbertam Feb 11, 2025
4b2380d
Fix review comments from Andy
jaydeepkumar1984 Feb 10, 2025
e98bb69
Fix review comments from Jaydeepkumar
jaydeepkumar1984 Feb 11, 2025
f225ad6
Fix review comments from Andy
jaydeepkumar1984 Feb 11, 2025
2e9cea6
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 12, 2025
65df16d
Additional review comments from Andy
jaydeepkumar1984 Feb 13, 2025
b9e11a1
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 13, 2025
9a73fc5
Incorporate NEWS.txt review comment
jaydeepkumar1984 Feb 14, 2025
efa146e
A new table property should be wrapped inside a config
jaydeepkumar1984 Feb 21, 2025
cf291f8
Skip displaying the table property if AutoRepair is disabled
jaydeepkumar1984 Feb 21, 2025
c41c7d6
Fix broken tests
jaydeepkumar1984 Feb 21, 2025
ef0d0ad
Extend DescribeStatementTest to cover properties when AutoRepair sche…
jaydeepkumar1984 Feb 21, 2025
4f2af32
Fix race condition in auto-repair scheduler
kzalys Jan 30, 2025
75f4471
Address comments
kzalys Feb 24, 2025
3f6b987
Address comments
kzalys Feb 24, 2025
90f40b3
Fix formatting
kzalys Feb 24, 2025
2ba3cdd
Account for vnodes with repair_by_keyspace in RepairTokenRangeSplitter
tolbertam Mar 3, 2025
88a75d8
Make work with JDK11 (and JDK8)
tolbertam Mar 3, 2025
6af203c
Adjust as per latest trunk as of 03-Mar-2025
jaydeepkumar1984 Mar 3, 2025
4366f83
Type & Remove whitespace
jaydeepkumar1984 Mar 4, 2025
4315623
Ensure the main config obj has been initialized before checking the y…
jaydeepkumar1984 Mar 6, 2025
0857a9f
Use the last repair stat to confirm that the repair ran indeed instea…
jaydeepkumar1984 Mar 6, 2025
63a9aac
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
56d6ce0
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
66bfb3a
Group all public statements together
jaydeepkumar1984 Mar 6, 2025
ef5b838
No need for try/catch in the test case
jaydeepkumar1984 Mar 6, 2025
855bfbe
Avoid micros splitting of token ranges for FixedSplitTokenRangeSplitter
jaydeepkumar1984 Mar 7, 2025
bc55345
Make the number_of_subranges parameterized in test case
jaydeepkumar1984 Mar 8, 2025
a6e432b
Review comments from Andy
jaydeepkumar1984 Mar 9, 2025
fcb05ee
Add v-nodes and non v-nodes test cases
jaydeepkumar1984 Mar 9, 2025
418a87a
Adjust the comment
jaydeepkumar1984 Mar 9, 2025
cc00a4e
Add the missing nodetool way to update repair_by_keyspace
jaydeepkumar1984 Mar 10, 2025
bf43c97
Use common setup code for FixedSplitTokenRangeSplitterTest*.java
jaydeepkumar1984 Mar 10, 2025
b373f26
Fix FixedSplitTokenRangeSplitterHelper.java failure
jaydeepkumar1984 Mar 10, 2025
0f8c890
Address review comments: update comment/remove dead code
jaydeepkumar1984 Mar 10, 2025
952bb2f
Adjust comment for DEFAULT_NUMBER_OF_SUBRANGES and NUMBER_OF_SUBRANGES
jaydeepkumar1984 Mar 11, 2025
bb944f0
Auto Repair Documentation improvements, bytes_per_assignment to 50GiB
tolbertam Mar 8, 2025
f876899
Revert tombstones.adoc no op changes.
tolbertam Mar 8, 2025
9658c03
Add documentation for reject_repair_compaction_threshold
tolbertam Mar 8, 2025
76d6018
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
bc0ee37
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
5799849
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
0991fa5
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
85f09ca
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
ccdc23d
Doc and conf fixes, initial IR enablement guidance
tolbertam Mar 9, 2025
3cd0c85
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
f6ef769
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
f6399d3
Update num_of_subranges
tolbertam Mar 10, 2025
a1fc228
Move auto-repair retry policy config to repair-type level
kzalys Mar 12, 2025
703427e
Update docs
kzalys Mar 13, 2025
4f0a40c
Avoid returning MY_TURN when replicas are actively taking their turn
tolbertam Mar 13, 2025
5197fdc
Add toString to AutoRepairConfig.java
jaydeepkumar1984 Mar 30, 2025
a775b50
Create AutoRepair executors only if enabled and a few other nits
jaydeepkumar1984 Apr 6, 2025
17e0d9a
parens in next line
jaydeepkumar1984 Apr 7, 2025
85a0473
Adjust based on the latest trunk
jaydeepkumar1984 Jan 29, 2025
cd42a84
Remove commented code; use TokenRingUtils.getPrimaryRangesForEndpoint…
jaydeepkumar1984 Feb 4, 2025
cf57ad6
Update RepairTokenRangeSplitter to work with BTI-formatted SSTables
tolbertam Feb 11, 2025
8deeaea
Avoid possible division by zero
tolbertam Feb 11, 2025
1d16ab1
Test with Bti and Big format sstables
tolbertam Feb 11, 2025
6108532
Assert correct format selected
tolbertam Feb 11, 2025
2d48bfd
Fix review comments from Andy
jaydeepkumar1984 Feb 10, 2025
5436ffb
Fix review comments from Jaydeepkumar
jaydeepkumar1984 Feb 11, 2025
2c96a67
Fix review comments from Andy
jaydeepkumar1984 Feb 11, 2025
a292b04
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 12, 2025
c4f4063
Additional review comments from Andy
jaydeepkumar1984 Feb 13, 2025
2290b21
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 13, 2025
908c9c1
Incorporate NEWS.txt review comment
jaydeepkumar1984 Feb 14, 2025
c76349b
A new table property should be wrapped inside a config
jaydeepkumar1984 Feb 21, 2025
cce1faf
Skip displaying the table property if AutoRepair is disabled
jaydeepkumar1984 Feb 21, 2025
934892d
Fix broken tests
jaydeepkumar1984 Feb 21, 2025
e0b2c69
Extend DescribeStatementTest to cover properties when AutoRepair sche…
jaydeepkumar1984 Feb 21, 2025
6cd5019
Fix race condition in auto-repair scheduler
kzalys Jan 30, 2025
f6dbf1c
Address comments
kzalys Feb 24, 2025
d2aaf40
Address comments
kzalys Feb 24, 2025
d30e50e
Fix formatting
kzalys Feb 24, 2025
58cdd1c
Account for vnodes with repair_by_keyspace in RepairTokenRangeSplitter
tolbertam Mar 3, 2025
0161f3a
Make work with JDK11 (and JDK8)
tolbertam Mar 3, 2025
603b77f
Adjust as per latest trunk as of 03-Mar-2025
jaydeepkumar1984 Mar 3, 2025
4dd1532
Type & Remove whitespace
jaydeepkumar1984 Mar 4, 2025
e6846ae
Ensure the main config obj has been initialized before checking the y…
jaydeepkumar1984 Mar 6, 2025
7a3475f
Use the last repair stat to confirm that the repair ran indeed instea…
jaydeepkumar1984 Mar 6, 2025
0b759a8
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
a929963
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
5ca4502
Group all public statements together
jaydeepkumar1984 Mar 6, 2025
8081ef3
No need for try/catch in the test case
jaydeepkumar1984 Mar 6, 2025
5b7ab53
Avoid micros splitting of token ranges for FixedSplitTokenRangeSplitter
jaydeepkumar1984 Mar 7, 2025
2f71ca4
Make the number_of_subranges parameterized in test case
jaydeepkumar1984 Mar 8, 2025
e09dd0d
Review comments from Andy
jaydeepkumar1984 Mar 9, 2025
c56204f
Add v-nodes and non v-nodes test cases
jaydeepkumar1984 Mar 9, 2025
b6f760c
Adjust the comment
jaydeepkumar1984 Mar 9, 2025
913e503
Add the missing nodetool way to update repair_by_keyspace
jaydeepkumar1984 Mar 10, 2025
a4d1bf3
Use common setup code for FixedSplitTokenRangeSplitterTest*.java
jaydeepkumar1984 Mar 10, 2025
a6bf366
Fix FixedSplitTokenRangeSplitterHelper.java failure
jaydeepkumar1984 Mar 10, 2025
785aba9
Address review comments: update comment/remove dead code
jaydeepkumar1984 Mar 10, 2025
75b45f0
Adjust comment for DEFAULT_NUMBER_OF_SUBRANGES and NUMBER_OF_SUBRANGES
jaydeepkumar1984 Mar 11, 2025
c9b4065
Auto Repair Documentation improvements, bytes_per_assignment to 50GiB
tolbertam Mar 8, 2025
9acc02c
Revert tombstones.adoc no op changes.
tolbertam Mar 8, 2025
91ba32c
Add documentation for reject_repair_compaction_threshold
tolbertam Mar 8, 2025
aa383be
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
51b05c4
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
775fd7b
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
f08b2ca
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
3ada7be
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
706b390
Doc and conf fixes, initial IR enablement guidance
tolbertam Mar 9, 2025
b809c4a
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
5c58c2e
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
45edb04
Update num_of_subranges
tolbertam Mar 10, 2025
317dfbb
Move auto-repair retry policy config to repair-type level
kzalys Mar 12, 2025
1af049a
Update docs
kzalys Mar 13, 2025
c56f326
Avoid returning MY_TURN when replicas are actively taking their turn
tolbertam Mar 13, 2025
f7c862d
Add toString to AutoRepairConfig.java
jaydeepkumar1984 Mar 30, 2025
d6b7a46
Create AutoRepair executors only if enabled and a few other nits
jaydeepkumar1984 Apr 6, 2025
729b0d3
parens in next line
jaydeepkumar1984 Apr 7, 2025
beb8b61
Adjust based on the latest trunk
jaydeepkumar1984 Apr 18, 2025
89b4ab6
Merge branch 'trunk_cep_37_rebase_on_apr_17_2025' into trunk_cep_37
jaydeepkumar1984 Apr 18, 2025
ab6fe8e
Merge branch 'trunk' into trunk_cep_37
jaydeepkumar1984 Apr 21, 2025
9e9c035
Update doc/modules/cassandra/pages/managing/operating/metrics.adoc
jaydeepkumar1984 Apr 21, 2025
eff68db
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
jaydeepkumar1984 Apr 21, 2025
44a1694
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
a957d90
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
0abf12a
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
5f4a938
Validate disk headroom for IR and a couple of comment updates
jaydeepkumar1984 Apr 21, 2025
ab6c770
Format { on the new line
jaydeepkumar1984 Apr 21, 2025
6649d27
Merge pull request #63 from jaydeepkumar1984/trunk_cep_37_cassandra_2…
jaydeepkumar1984 Apr 21, 2025
34bf406
Update doc/modules/cassandra/pages/managing/operating/metrics.adoc
jaydeepkumar1984 Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions NEWS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ using the provided 'sstableupgrade' tool.
New features
------------
[The following is a placeholder, to be revised asap]
- CEP-37 Auto Repair is a fully automated scheduler that provides repair orchestration within Apache Cassandra. This
significantly reduces operational overhead by eliminating the need for operators to deploy external tools to submit
and manage repairs. See
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37+Apache+Cassandra+Unified+Repair+Solution for more
details on the motivation and design.
- CEP-21 Transactional Cluster Metadata introduces a distributed log for linearizing modifications to cluster
metadata. In the first instance, this encompasses cluster membership, token ownership and schema metadata. See
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21%3A+Transactional+Cluster+Metadata for more detail on
Expand Down
166 changes: 166 additions & 0 deletions conf/cassandra.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2184,6 +2184,13 @@ report_unconfirmed_repaired_data_mismatches: false
# Materialized views are considered experimental and are not recommended for production use.
materialized_views_enabled: false

# Specify whether Materialized View mutations are replayed through the write path on streaming, e.g. repair.
# When enabled, Materialized View data streamed to the destination node will be written into commit log first. When setting to false,
# the streamed Materialized View data is written into SSTables just the same as normal streaming. The default is true.
# If this is set to false, streaming will be considerably faster however it's possible that, in extreme situations
# (losing > quorum # nodes in a replica set), you may have data in your SSTables that never makes it to the Materialized View.
# materialized_views_on_repair_enabled: true

# Enables SASI index creation on this node.
# SASI indexes are considered experimental and are not recommended for production use.
sasi_indexes_enabled: false
Expand Down Expand Up @@ -2667,3 +2674,162 @@ storage_compatibility_mode: NONE
#
# # how quickly the fast path is reconfigured when nodes go up/down
# fast_path_update_delay: 5s

# Prevents preparing a repair session or beginning a repair streaming session if pending compactions is over
# the given value. Defaults to disabled.
# reject_repair_compaction_threshold: 1024

# At least 20% of disk must be unused to run incremental repair. It is useful to avoid disks filling up during
# incremental repair as anti-compaction during incremental repair may contribute to additional space temporarily.
# if you want to disable this feature (the recommendation is not to, but if you want to disable it for whatever reason)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think like reject_repair_compaction_threshold, we should default this to not do anything as to not change the behavior (should not reject repairs by default, users should have to opt into it). Was thinking and I realized that there can be a possible downside of this feature, which is if you disable IR while you are low on disk, you might not be able to compact away shadowed data or tombstones because data exists in both the repaired/unrepaired set and can't be compacted together.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just adding another comment here in case this was missed. I think it may be reasonable to keep this default behavior, but we should just make note of this somewhere in the NEWS entry or upgrade guide.

# then set the ratio to 0.0
# incremental_repair_disk_headroom_reject_ratio: 0.2;

# Configuration for Auto Repair Scheduler.
#
# This feature is disabled by default.
#
# See: https://cassandra.apache.org/doc/latest/cassandra/managing/operating/auto_repair.html for an overview of this
# feature.
#
# auto_repair:
# # Enable/Disable the auto-repair scheduler.
# # If set to false, the scheduler thread will not be started.
# # If set to true, the repair scheduler thread will be created. The thread will
# # check for secondary configuration available for each repair type (full, incremental,
# # and preview_repaired), and based on that, it will schedule repairs.
# enabled: true
# repair_type_overrides:
# full:
# # Enable/Disable full auto-repair
# enabled: true
# # Minimum duration between repairing the same node again. This is useful for tiny clusters,
# # such as clusters with 5 nodes that finish repairs quickly. This means that if the scheduler completes one
# # round on all nodes in less than this duration, it will not start a new repair round on a given node until
# # this much time has passed since the last repair completed. Consider increasing to a larger value to reduce
# # the impact of repairs, however note that one should attempt to run repairs at a smaller interval than
# # gc_grace_seconds to avoid potential data resurrection.
# min_repair_interval: 24h
# token_range_splitter:
# # Implementation of IAutoRepairTokenRangeSplitter; responsible for splitting token ranges
# # for repair assignments.
# #
# # Out of the box, Cassandra provides org.apache.cassandra.repair.autorepair.{RepairTokenRangeSplitter,
# # FixedTokenRangeSplitter}.
# #
# # - RepairTokenRangeSplitter (default) attempts to intelligently split ranges based on data size and partition
# # count.
# # - FixedTokenRangeSplitter splits into fixed ranges based on the 'number_of_subranges' option.
# # class_name: org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter
#
# # Optional parameters can be specified in the form of:
# # parameters:
# # param_key1: param_value1
# parameters:
# # The target and maximum amount of compressed bytes that should be included in a repair assignment.
# # This scopes the amount of work involved in a repair and includes the data covering the range being
# # repaired.
# bytes_per_assignment: 50GiB
# # The maximum number of bytes to cover in an individual schedule. This serves as
# # a mechanism to throttle the work done in each repair cycle. You may reduce this
# # value if the impact of repairs is causing too much load on the cluster or increase it
# # if writes outpace the amount of data being repaired. Alternatively, adjust the
# # min_repair_interval.
# # This is set to a large value for full repair to attempt to repair all data per repair schedule.
# max_bytes_per_schedule: 100000GiB
# incremental:
# enabled: false
# # Incremental repairs operate over unrepaired data and should finish quickly. Running incremental repair
# # frequently keeps the unrepaired set smaller and thus causes repairs to operate over a smaller set of data,
# # so a more frequent schedule such as 1h is recommended.
# # NOTE: Please consult
# # https://cassandra.apache.org/doc/latest/cassandra/managing/operating/auto_repair.html#enabling-ir
# # for guidance on enabling incremental repair on ane exiting cluster.
# min_repair_interval: 24h
# token_range_splitter:
# parameters:
# # Configured to attempt repairing 50GiB of compressed data per repair.
# # This throttles the amount of incremental repair and anticompaction done per schedule after incremental
# # repairs are turned on.
# bytes_per_assignment: 50GiB
# # Restricts the maximum number of bytes to cover in an individual schedule to the configured
# # max_bytes_per_schedule value (defaults to 100GiB for incremental).
# # Consider increasing this value if more data is written than this limit within the min_repair_interval.
# max_bytes_per_schedule: 100GiB
# preview_repaired:
# # Performs preview repair over repaired SSTables, useful to detect possible inconsistencies in the repaired
# # data set.
# enabled: false
# min_repair_interval: 24h
# token_range_splitter:
# parameters:
# bytes_per_assignment: 50GiB
# max_bytes_per_schedule: 100000GiB
# # Time interval between successive checks to see if ongoing repairs are complete or if it is time to schedule
# # repairs.
# repair_check_interval: 5m
# # Minimum duration for the execution of a single repair task. This prevents the scheduler from overwhelming
# # the node by scheduling too many repair tasks in a short period of time.
# repair_task_min_duration: 5s
# # The scheduler needs to adjust its order when nodes leave the ring. Deleted hosts are tracked in metadata
# # for a specified duration to ensure they are indeed removed before adjustments are made to the schedule.
# history_clear_delete_hosts_buffer_interval: 2h
# # NOTE: Each of the below settings can be overridden per repair type under repair_type_overrides
# global_settings:
# # If true, attempts to group tables in the same keyspace into one repair; otherwise, each table is repaired
# # individually.
# repair_by_keyspace: true
# # Number of threads to use for each repair job scheduled by the scheduler. Similar to the -j option in nodetool
# # repair.
# number_of_repair_threads: 1
# # Number of nodes running repair in parallel. If parallel_repair_percentage is set, the larger value is used.
# parallel_repair_count: 3
# # Percentage of nodes in the cluster running repair in parallel. If parallel_repair_count is set, the larger value
# # is used.
# parallel_repair_percentage: 3
# # Whether to allow a node to take its turn running repair while one or more of its replicas are running repair.
# # Defaults to false, as running repairs concurrently on replicas can increase load and also cause anticompaction
# # conflicts while running incremental repair.
# allow_parallel_replica_repair: false
# # An addition to allow_parallel_replica_repair that also blocks repairs when replicas (including this node itself)
# # are repairing in any schedule. For example, if a replica is executing full repairs, a value of false will
# # prevent starting incremental repairs for this node. Defaults to true and is only evaluated when
# # allow_parallel_replica_repair is false.
# allow_parallel_replica_repair_across_schedules: true
# # Repairs materialized views if true.
# materialized_view_repair_enabled: false
# # Delay before starting repairs after a node restarts to avoid repairs starting immediately after a restart.
# initial_scheduler_delay: 5m
# # Timeout for retrying stuck repair sessions.
# repair_session_timeout: 3h
# # Force immediate repair on new nodes after they join the ring.
# force_repair_new_node: false
# # Threshold to skip repairing tables with too many SSTables. Defaults to 10,000 SSTables to avoid penalizing good
# # tables.
# sstable_upper_threshold: 10000
# # Maximum time allowed for repairing one table on a given node. If exceeded, the repair proceeds to the
# # next table.
# table_max_repair_time: 6h
# # Avoid running repairs in specific data centers. By default, repairs run in all data centers. Specify data
# # centers to exclude in this list. Note that repair sessions will still consider all replicas from excluded
# # data centers. Useful if you have keyspaces that are not replicated in certain data centers, and you want to
# # not run repair schedule in certain data centers.
# ignore_dcs: []
# # Repair only the primary ranges owned by a node. Equivalent to the -pr option in nodetool repair. Defaults
# # to true. General advice is to keep this true.
# repair_primary_token_range_only: true
# # Maximum number of retries for a repair session.
# repair_max_retries: 3
# # Backoff time before retrying a repair session.
# repair_retry_backoff: 30s
# token_range_splitter:
# # Splitter implementation to generate repair assignments. Defaults to RepairTokenRangeSplitter.
# class_name: org.apache.cassandra.repair.autorepair.RepairTokenRangeSplitter
# parameters:
# # Maximum number of partitions to include in a repair assignment. Used to reduce number of partitions
# # present in merkle tree leaf nodes to avoid overstreaming.
# partitions_per_assignment: 1048576
# # Maximum number of tables to include in a repair assignment. This reduces the number of repairs,
# # especially in keyspaces with many tables. The splitter avoids batching tables together if they
# # exceed other configuration parameters like bytes_per_assignment or partitions_per_assignment.
# max_tables_per_assignment: 64
Loading