Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
230 commits
Select commit Hold shift + click to select a range
ae2494c
autorepair v2 framework
jaydeepkumar1984 May 11, 2024
96993e5
cr
jaydeepkumar1984 Jul 23, 2024
de00b62
chop the repair API
jaydeepkumar1984 Jul 27, 2024
8916d31
Add a test case that ensures LocalStrategy.class is ignored from bein…
jaydeepkumar1984 Aug 16, 2024
02e5ea0
Shuffle keyspaces and tables when running auto-repair
jaydeepkumar1984 Aug 16, 2024
d2ecbde
Prevent node restart from scheduling a premature auto-repair cycle
jaydeepkumar1984 Aug 17, 2024
c003060
Implement SucceededTokenRangesCount and FailedTokenRangesCount metric…
jaydeepkumar1984 Aug 17, 2024
9aafd7e
Fix NPE in RepairRunnable.fail
jaydeepkumar1984 Aug 17, 2024
5f73781
Add intial_scheduler_delay option to AutoRepairConfig
jaydeepkumar1984 Aug 17, 2024
ac0039b
Implement nodetool sstablerepairedset
jaydeepkumar1984 Aug 18, 2024
1d54edf
Change SkippedTablesCount metric to SkippedTokenRangesCount
jaydeepkumar1984 Aug 25, 2024
6d7c351
config description
jaydeepkumar1984 Aug 26, 2024
becf9c1
Implement repair retries for auto-repair scheduler
jaydeepkumar1984 Aug 29, 2024
429bda8
Extend nodetool sstablerepairedset to affect all keyspaces when no ke…
jaydeepkumar1984 Aug 30, 2024
f910228
Make repair session timeout configurable
jaydeepkumar1984 Aug 30, 2024
1034390
Comments from Joshua M
jaydeepkumar1984 Sep 6, 2024
d9dfdbc
AutoRepair scheduler InJvm dtest
jaydeepkumar1984 Sep 7, 2024
a5ae289
Increase CircleCI parallelism 1-->4
jaydeepkumar1984 Sep 24, 2024
eeea77e
Fix a test case failure org.apache.cassandra.schema.SchemaKeyspaceTes…
jaydeepkumar1984 Sep 24, 2024
61ee3d8
Trigger automatic CircleCI jobs
jaydeepkumar1984 Sep 24, 2024
4a3c2de
CircleCI ask for a manual approval
jaydeepkumar1984 Sep 24, 2024
232df1c
Fix the JMXStandardsTest::interfaces
jaydeepkumar1984 Sep 25, 2024
48d26ed
Circle AutoStart J8 tests
jaydeepkumar1984 Sep 25, 2024
8b05174
Allow IR to run with MVs and CDC if write path replay is disabled
jaydeepkumar1984 Sep 26, 2024
abde151
Add a nodetool command to get the nodes going through repair
jaydeepkumar1984 Sep 27, 2024
8308698
Adjust a couple of default configuration values
jaydeepkumar1984 Sep 27, 2024
00b1bb1
Rename EMPTY --> NONE for Nodetool autorepairstatus command
jaydeepkumar1984 Sep 27, 2024
35100fa
Minor code refactoring to simplify the repair API by removing the SLE…
jaydeepkumar1984 Sep 28, 2024
c681157
Fix unit test cases DescribeStatementTest & SchemaCQLHelperTest
jaydeepkumar1984 Sep 30, 2024
364a181
Safeguard the setup call to ensure it it done only once
jaydeepkumar1984 Sep 30, 2024
37017c5
Fix InJvm test AutoRepairSchedulerTest
jaydeepkumar1984 Oct 1, 2024
d4c894d
Unit test failures AutoRepairTest.java
jaydeepkumar1984 Oct 1, 2024
be4f7f6
Fix flaky AutoRepairTest::testSetup and AutoRepairTest::testSafeGuard…
jaydeepkumar1984 Oct 8, 2024
662ee23
Fix a test failure inside pylib/cqlshlib/test/test_cqlsh_output.py
jaydeepkumar1984 Oct 8, 2024
919bb13
AutoRepair nodetool throws an exception if the framework is disabled
jaydeepkumar1984 Oct 9, 2024
2ca0adf
Run repair on bootstrapped if configured to do so
jaydeepkumar1984 Oct 9, 2024
2854bcf
Fix broken AutoRepairSchedulerTest.java & AutoRepairStatusTest.java
jaydeepkumar1984 Oct 9, 2024
dbfec67
Comments from Chris Lohfink: move meta tables inside SystemDistribute…
jaydeepkumar1984 Oct 9, 2024
37cb562
Comments from Chris Lohfink: nix automated_ and a typo
jaydeepkumar1984 Oct 9, 2024
8e965b6
Comments from Chris Lohfink: System::currentTimeMillis --> Clock.Glob…
jaydeepkumar1984 Oct 9, 2024
e6c8937
Implement preview repaired auto-repair type
kzalys Oct 11, 2024
6519293
Update IAutoRepairTokenRangeSplitter API to be more flexible
tolbertam Sep 25, 2024
5bbd5a5
Fix a corner-case bug NPE org.apache.cassandra.repair.autorepair.Auto…
jaydeepkumar1984 Oct 12, 2024
69989ee
Update documentation for the newly added metric
jaydeepkumar1984 Oct 14, 2024
0a758ab
Formatting: Add a new line towards the end SystemDistributedKeyspace.…
jaydeepkumar1984 Oct 15, 2024
1bc5068
Revert .circleci/config.yaml settings
jaydeepkumar1984 Oct 17, 2024
a286790
Implement previewRepaired
kzalys Oct 26, 2024
74b2d83
Code formatting: Remove Group from naming
jaydeepkumar1984 Oct 27, 2024
ecc15a1
Enable repair scheduler through nodetool
jaydeepkumar1984 Oct 28, 2024
00f0dff
UnrepairedBytesBasedTokenRangeSplitter prototype
tolbertam Nov 3, 2024
a63d70e
Backport CASSANDRA-17666: Option to disable write path during streami…
jaydeepkumar1984 Nov 4, 2024
a119fee
Option to disable write path during streaming for MV enabled tables; …
jaydeepkumar1984 Nov 4, 2024
e6cf631
cr from tolbertam - replace MV/CDC repair replay JVM properties to ya…
jaydeepkumar1984 Nov 4, 2024
a0b8182
Implement preview repaired metrics
kzalys Nov 7, 2024
e9f0ec7
Add Repair range splitter
clohfink Nov 7, 2024
06e13ca
add assignment priorirty to table options
clohfink Nov 8, 2024
a8979c0
reorder with DefaultAutoRepairTokenSplitter
clohfink Nov 8, 2024
8ff9974
add tests for partition count estimation
clohfink Nov 8, 2024
58efc50
Add license header to RepairRangeSplitter
tolbertam Nov 10, 2024
4eee47d
Simplify access of repair_type_overrides, key by String
tolbertam Nov 10, 2024
3102ffb
Allow partial repair of range, factor in total bytes for IR
tolbertam Nov 11, 2024
19d972b
update warnings based on repair type
clohfink Nov 14, 2024
c7de80b
Improve preview repair metrics
kzalys Nov 21, 2024
f28ce5f
Update CHANGES.txt
kzalys Nov 21, 2024
da44b4b
Merge branch 'auto_repair_v2_on_4_1' into unrepaired_splitter
clohfink Nov 25, 2024
b65155f
Update src/java/org/apache/cassandra/repair/autorepair/AutoRepairConf…
kzalys Nov 26, 2024
a2f3358
Move size comparison up so priority can be factored in
tolbertam Nov 27, 2024
1d26200
Various cleanup
tolbertam Nov 27, 2024
98833ba
Handle EmpySSTableScanner being returned from getScanner
tolbertam Nov 27, 2024
7ca4d28
Minor refactoring around bytesPerSubrange, logging
tolbertam Nov 27, 2024
4a7da18
Cleanup logging of repair assignments
tolbertam Nov 27, 2024
f2fa73f
Remove UnrepairedBytesBasedTokenRangeSplitter
tolbertam Nov 30, 2024
98af286
Refactor RepairRangeSplitter interface to accept all keyspaces
tolbertam Nov 30, 2024
a0165e5
Naming consistency
tolbertam Nov 30, 2024
f1a97ff
Use memtable size for memtable only
tolbertam Nov 30, 2024
4d3ca9c
Fix dtest
tolbertam Dec 2, 2024
98b2a0f
Refactor IAutoRepairTokenRangeSplitter to be Iterator based
tolbertam Dec 2, 2024
7de0979
Add more priority and range splitter tests
tolbertam Dec 2, 2024
ae81384
Address comments
kzalys Dec 4, 2024
f442ce0
Fix preview repair options for system_schema ks
kzalys Dec 4, 2024
af83712
Implement BytesPreviewed and TokenRangesPreviewed metrics
kzalys Dec 4, 2024
5660167
Update test/unit/org/apache/cassandra/repair/autorepair/AutoRepairPar…
kzalys Dec 6, 2024
0372e0d
Address comments
kzalys Dec 6, 2024
20cd6c8
Update metrics docs
kzalys Dec 6, 2024
8198f25
Update metrics
kzalys Dec 6, 2024
3bdbacc
Merge pull request #4 from kzalys/auto_repair_v2_on_4_1
jaydeepkumar1984 Dec 7, 2024
fc8597b
Merge branch 'auto_repair_v2_on_4_1' into unrepaired_splitter
tolbertam Dec 7, 2024
9e10372
Set thread name based on RepairType.getConfigName()
tolbertam Dec 7, 2024
8441332
Nested table params POC
jaydeep1984 Dec 7, 2024
461cb70
Revert "Nested table params POC"
jaydeep1984 Dec 8, 2024
78fa0b5
Flatten the auto_repair table property
jaydeepkumar1984 Dec 8, 2024
1704f18
Merge pull request #3 from tolbertam/unrepaired_splitter
jaydeepkumar1984 Dec 10, 2024
9e63f4e
Fix J8 build failures
jaydeepkumar1984 Dec 12, 2024
1be77a6
Merge pull request #10 from jaydeepkumar1984/auto_repair_v2_on_4_1_j8…
jaydeepkumar1984 Dec 12, 2024
f83f90d
utest: calculate expected tables dynamically instead of a fixed value
tolbertam Dec 15, 2024
f4ce6f2
Merge pull request #11 from jaydeepkumar1984/auto_repair_v2_on_4_1_fi…
jaydeepkumar1984 Dec 17, 2024
1b1601a
Disable FR and IR by default on system_traces.* tables
jaydeepkumar1984 Dec 3, 2024
f43577a
Revert "Disable FR and IR by default on system_traces.* tables"
jaydeep1984 Dec 18, 2024
f06b8c4
Ignore repair for system_traces keyspace
jaydeepkumar1984 Dec 18, 2024
e3f0b4d
cr from Andy T
jaydeepkumar1984 Dec 19, 2024
db2d4e9
Merge pull request #6 from jaydeepkumar1984/auto_repair_v2_on_4_1_cas…
jaydeepkumar1984 Dec 19, 2024
b45c5b5
Fix diff40
jaydeepkumar1984 Dec 19, 2024
fe0b79a
Fix diff41
jaydeepkumar1984 Dec 19, 2024
becdbeb
Implement minimum repair task duration setting for auto-repair scheduler
kzalys Dec 20, 2024
9bfecb1
Cleanup
kzalys Dec 20, 2024
90f07c3
Merge branch 'auto_repair_v2_on_4_1' into auto_repair_v2_on_4_1
kzalys Dec 20, 2024
a2d3405
Cleanup
kzalys Dec 20, 2024
eace2b1
Convert the metrics to TableMeter
jaydeepkumar1984 Dec 20, 2024
67be3c3
Add a global type=ColumnFamily
jaydeep1984 Dec 20, 2024
bd94a3d
Remove an extra empty line
jaydeep1984 Dec 20, 2024
fcf2e33
Revert the cassandra-4.x.xml changes
jaydeepkumar1984 Dec 20, 2024
8256fdf
gauge compatible meter
tolbertam Dec 21, 2024
5d47501
Address comment
kzalys Dec 21, 2024
7426e13
Merge pull request #15 from kzalys/auto_repair_v2_on_4_1
jaydeepkumar1984 Dec 21, 2024
e2e1820
Remove unused imports
jaydeepkumar1984 Dec 21, 2024
ba6818b
Merge pull request #13 from jaydeepkumar1984/auto_repair_v2_on_4_1_JM…
jaydeepkumar1984 Dec 21, 2024
95328ef
Merge pull request #17 from jaydeepkumar1984/auto_repair_v2_on_4_1_ca…
jaydeepkumar1984 Dec 21, 2024
1d8acfd
Make RepairTokenRangeSplitter the default implementation
tolbertam Jan 2, 2025
ebb36cb
JDK 8 support and test rename
tolbertam Jan 2, 2025
7ed3822
Fix newAutoRepairTokenRangeSplitter duplication
tolbertam Jan 2, 2025
76a3fcb
Nit-fixing in existing code
tolbertam Jan 3, 2025
aa6581b
Process feedback
tolbertam Jan 3, 2025
5eb55b2
Fix the the total expected sub-ranges calculation keeping v-nodes in …
jaydeepkumar1984 Jan 5, 2025
736c150
Feedback and update tests
tolbertam Jan 6, 2025
5022dfb
Merge pull request #18 from tolbertam/CASSANDRA-20179-auto_repair_v2_…
jaydeepkumar1984 Jan 6, 2025
1aa3790
Add configuration to cassandra.yaml and cassandra_later.yaml
jaydeepkumar1984 Jan 8, 2025
833d525
Add a doc for AutoRepair feature
jaydeepkumar1984 Jan 8, 2025
dd3faca
cr from Andy
jaydeepkumar1984 Jan 16, 2025
8f2d83c
address cr from Andy
jaydeepkumar1984 Jan 21, 2025
e281b0d
Merge pull request #25 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Jan 22, 2025
189bc3c
Make AutoRepair's repair_by_keyspace default to true instead of false
tolbertam Jan 23, 2025
e8615b9
Merge pull request #28 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Jan 24, 2025
c799a02
partitions_per_assignment to not use repair_session_max_tree_depth
jaydeepkumar1984 Jan 23, 2025
51eee9d
Fix inconsistent spacing in javadoc
jaydeepkumar1984 Jan 23, 2025
f463a9f
Merge pull request #29 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Jan 24, 2025
c540360
AutoRepairServiceMBean should not use custom types for JMX methods
frankgh Jan 25, 2025
15685b7
Address comments
frankgh Jan 25, 2025
920bfec
Fix tests and rename autoRepairConfiguration -> getAutoRepairConfigur…
frankgh Jan 28, 2025
a527801
Merge pull request #32 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Jan 28, 2025
be5e9e1
Leak fix in RepairTokenRangeSplitterTest.java
jaydeepkumar1984 Feb 14, 2025
45e13e0
Fix review comments from Andy
jaydeepkumar1984 Feb 10, 2025
e7351a7
Fix review comments from Jaydeepkumar
jaydeepkumar1984 Feb 11, 2025
9051235
Fix review comments from Andy
jaydeepkumar1984 Feb 11, 2025
d84c59a
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 12, 2025
3cb5e2f
Additional review comments from Andy
jaydeepkumar1984 Feb 13, 2025
1ed3f42
4.1 only Remove Parameterized from RepairTokenRangeSplitterTest
jaydeepkumar1984 Feb 14, 2025
fe49025
Merge pull request #39 from jaydeepkumar1984/auto_repair_v2_on_4_1_on…
jaydeepkumar1984 Feb 14, 2025
ffa6961
Additional review comments from Jaydeepkumar
jaydeepkumar1984 Feb 13, 2025
b314fbd
Incorporate NEWS.txt review comment
jaydeepkumar1984 Feb 14, 2025
eebc931
Merge pull request #41 from jaydeepkumar1984/auto_repair_v2_on_4_1_on…
jaydeepkumar1984 Feb 14, 2025
ab68d11
Fix race condition in auto-repair scheduler
kzalys Jan 30, 2025
f3c26e1
Fix rebase errors
kzalys Feb 24, 2025
31da728
Address comments
kzalys Feb 24, 2025
f25ef87
Address comments
kzalys Feb 24, 2025
4a60683
Fix formatting
kzalys Feb 24, 2025
e000e4f
Merge pull request #34 from kzalys/CASSANDRA-20265
jaydeepkumar1984 Feb 25, 2025
4ff5d75
A new table property should be wrapped inside a config
jaydeepkumar1984 Feb 21, 2025
e7ce6b9
Skip displaying the table property if AutoRepair is disabled
jaydeepkumar1984 Feb 21, 2025
7c1ce43
Fix broken tests
jaydeepkumar1984 Feb 21, 2025
5cc5816
Extend DescribeStatementTest to cover properties when AutoRepair sche…
jaydeepkumar1984 Feb 21, 2025
6d89f59
Account for vnodes with repair_by_keyspace in RepairTokenRangeSplitter
tolbertam Mar 3, 2025
aca1d61
Make work with JDK11 (and JDK8)
tolbertam Mar 3, 2025
fd81672
Type & Remove whitespace
jaydeepkumar1984 Mar 4, 2025
6e1a356
Ensure the main config obj has been initialized before checking the y…
jaydeepkumar1984 Mar 6, 2025
c9cf27a
Use the last repair stat to confirm that the repair ran indeed instea…
jaydeepkumar1984 Mar 6, 2025
eb49eb1
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
99f9891
Incorporate the code review comments
jaydeepkumar1984 Mar 6, 2025
f603c45
Group all public statements together
jaydeepkumar1984 Mar 6, 2025
d03a71e
No need for try/catch in the test case
jaydeepkumar1984 Mar 6, 2025
3988cf8
make it Java8 compatible
jaydeepkumar1984 Mar 9, 2025
5fbab47
Merge pull request #48 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Mar 10, 2025
7a9d1dd
Avoid micros splitting of token ranges for FixedSplitTokenRangeSplitter
jaydeepkumar1984 Mar 7, 2025
05bdb8e
Make the number_of_subranges parameterized in test case
jaydeepkumar1984 Mar 8, 2025
f0237f7
Auto Repair Documentation improvements, bytes_per_assignment to 50GiB
tolbertam Mar 8, 2025
9b78e2b
Revert tombstones.adoc no op changes.
tolbertam Mar 8, 2025
4088243
Add documentation for reject_repair_compaction_threshold
tolbertam Mar 8, 2025
c208f7d
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
93f7723
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
da58371
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
1abb1a5
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
82d3d2c
Update conf/cassandra.yaml
tolbertam Mar 9, 2025
55433de
Doc and conf fixes, initial IR enablement guidance
tolbertam Mar 9, 2025
6aef878
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
764d016
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
tolbertam Mar 9, 2025
2623823
Review comments from Andy
jaydeepkumar1984 Mar 9, 2025
36c598a
Add v-nodes and non v-nodes test cases
jaydeepkumar1984 Mar 9, 2025
94cb75e
Adjust the comment
jaydeepkumar1984 Mar 9, 2025
e3070bb
Add the missing nodetool way to update repair_by_keyspace
jaydeepkumar1984 Mar 10, 2025
3aa18ab
Use common setup code for FixedSplitTokenRangeSplitterTest*.java
jaydeepkumar1984 Mar 10, 2025
3bf9b44
Fix FixedSplitTokenRangeSplitterHelper.java failure
jaydeepkumar1984 Mar 10, 2025
5334955
Update num_of_subranges
tolbertam Mar 10, 2025
f53fbd7
Address review comments: update comment/remove dead code
jaydeepkumar1984 Mar 10, 2025
be58673
Adjust comment for DEFAULT_NUMBER_OF_SUBRANGES and NUMBER_OF_SUBRANGES
jaydeepkumar1984 Mar 11, 2025
8fd000e
Adjust as per 4.1 branch code
jaydeepkumar1984 Mar 13, 2025
ffb1c97
Merge pull request #50 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Mar 13, 2025
7b62e39
Move auto-repair retry policy config to repair-type level
kzalys Mar 12, 2025
8476738
Rebase
kzalys Mar 13, 2025
91e2e2e
Update docs
kzalys Mar 13, 2025
60b0eae
Merge pull request #52 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Mar 16, 2025
9b20caa
Avoid returning MY_TURN when replicas are actively taking their turn
tolbertam Mar 13, 2025
82e6554
Merge pull request #53 from jaydeepkumar1984/auto_repair_v2_on_4_1_CA…
jaydeepkumar1984 Mar 19, 2025
642cde4
Add toString to AutoRepairConfig.java
jaydeepkumar1984 Mar 30, 2025
b370818
Merge pull request #56 from jaydeepkumar1984/auto_repair_v2_on_4_1_ca…
jaydeepkumar1984 Apr 3, 2025
a4eabcf
Create AutoRepair executors only if enabled and a few other nits
jaydeepkumar1984 Apr 6, 2025
b0b756c
Merge pull request #59 from jaydeepkumar1984/auto_repair_v2_on_4_1_ca…
jaydeepkumar1984 Apr 11, 2025
42f751f
parens in next line
jaydeepkumar1984 Apr 7, 2025
2cb582a
Merge pull request #60 from jaydeepkumar1984/auto_repair_v2_on_4_1_ca…
jaydeepkumar1984 Apr 15, 2025
5bcb2e5
Update doc/modules/cassandra/pages/managing/operating/metrics.adoc
jaydeepkumar1984 Apr 21, 2025
3b9e193
Update src/java/org/apache/cassandra/repair/autorepair/RepairTokenRan…
jaydeepkumar1984 Apr 21, 2025
2fbd54f
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
be32a2e
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
15242bd
Update src/java/org/apache/cassandra/schema/AutoRepairParams.java
jaydeepkumar1984 Apr 21, 2025
db25cba
Validate disk headroom for IR and a couple of comment updates
jaydeepkumar1984 Apr 21, 2025
22b204f
Format { on the new line
jaydeepkumar1984 Apr 21, 2025
a48a40d
Update doc/modules/cassandra/pages/managing/operating/metrics.adoc
jaydeepkumar1984 Apr 22, 2025
25a4e4d
Merge pull request #64 from jaydeepkumar1984/auto_repair_v2_on_4_1_ba…
jaydeepkumar1984 Apr 23, 2025
5e37373
Increasing default for auto_repair.sstable_upper_threshold considerin…
jaydeepkumar1984 Apr 24, 2025
512a9d4
Fix AutoRepair Flaky InJvm dtest
jaydeepkumar1984 May 5, 2025
44e960b
Fix a bug in AutoRepair duration metric calculation if schedule finis…
jaydeepkumar1984 May 6, 2025
ac6ebc4
Merge pull request #65 from jaydeepkumar1984/auto_repair_v2_on_4_1_ca…
jaydeepkumar1984 May 7, 2025
afdffb4
Stop AutoRepair monitoring thread upon Cassandra shutdown
jaydeepkumar1984 May 16, 2025
ae29409
Safeguard Full repair against disk protection
himanshujindal Aug 12, 2025
3229f58
Stop repair scheduler if two major versions are detected
himanshujindal Aug 12, 2025
7345bed
Improved observability in AutoRepair to report both expected vs. actu…
jaydeepkumar1984 Apr 27, 2025
02b9c89
Merge pull request #66 from jaydeepkumar1984/auto_repair_v2_on_4_1_20…
jaydeepkumar1984 Sep 21, 2025
f3448ce
Fix initial auto-repairs skipped by too soon check
pauloricardomg Jan 13, 2026
84ce9f4
Set SYSTEM_DISTRIBUTED_DEFAULT_RF=1 in AutoRepairTest to enable CAS o…
sampreethb Jul 1, 2026
ebc10e9
Merge pull request #69 from sampreethb/sampreethb/CASSANDRA-21115/aut…
jaydeepkumar1984 Jul 2, 2026
16476c9
Remove unused AutoRepairService import in AutoRepairTest
sampreethb Jul 2, 2026
6157d4d
Merge pull request #70 from sampreethb/sampreethb/CASSANDRA-21115-che…
jaydeepkumar1984 Jul 2, 2026
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
8 changes: 8 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
4.1.6
* Fix initial auto-repairs skipped by too soon check (CASSANDRA-21115)
* Improved observability in AutoRepair to report both expected vs. actual repair bytes and expected vs. actual keyspaces (CASSANDRA-20581)
* Stop repair scheduler if two major versions are detected (CASSANDRA-20048)
* AutoRepair: Safeguard Full repair against disk protection(CASSANDRA-20045)
* Stop AutoRepair monitoring thread upon Cassandra shutdown (CASSANDRA-20623)
* Fix race condition in auto-repair scheduler (CASSANDRA-20265)
* Implement minimum repair task duration setting for auto-repair scheduler (CASSANDRA-20160)
* Implement preview_repaired auto-repair type (CASSANDRA-20046)
* Refresh stale paxos commit (CASSANDRA-19617)
* Reduce info logging from automatic paxos repair (CASSANDRA-19445)
* Support legacy plain_text_auth section in credentials file removed unintentionally (CASSANDRA-19498)
Expand Down
9 changes: 9 additions & 0 deletions NEWS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@ restore snapshots created with the previous major version using the
'sstableloader' tool. You can upgrade the file format of your snapshots
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.

4.1.3
=====

Expand Down
186 changes: 186 additions & 0 deletions conf/cassandra.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,18 @@ partitioner: org.apache.cassandra.dht.Murmur3Partitioner
# containing a CDC-enabled table if at space limit in cdc_raw_directory).
cdc_enabled: false

# Specify whether writes to the CDC-enabled tables should be blocked when CDC data on disk has reached to the limit.
# When setting to false, the writes will not be blocked and the oldest CDC data on disk will be deleted to
# ensure the size constraint. The default is true.
# cdc_block_writes: true

# Specify whether CDC mutations are replayed through the write path on streaming, e.g. repair.
# When enabled, CDC data streamed to the destination node will be written into commit log first. When setting to false,
# the streamed CDC 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 CDC log.
# cdc_on_repair_enabled: true

# CommitLogSegments are moved to this directory on flush if cdc_enabled: true and the
# segment contains mutations for a CDC-enabled table. This should be placed on a
# separate spindle than the data directories. If not set, the default directory is
Expand Down Expand Up @@ -1674,6 +1686,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 @@ -1846,3 +1865,170 @@ drop_compact_storage_enabled: false
# heartbeat_file: /var/lib/cassandra/data/cassandra-heartbeat
# excluded_keyspaces: # comma separated list of keyspaces to exclude from the check
# excluded_tables: # comma separated list of keyspace.table pairs to exclude from the check


# 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 repair. It is useful to avoid disks filling up during
# repair as anti-compaction during 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)
# then set the ratio to 0.0
# repair_disk_headroom_reject_ratio: 0.2;

# This is the deprecated config which was used to safeguard incremental repairs. Use repair_disk_headroom_reject_ratio
# instead as it safeguards against all repairs.
# 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
# # By default repair is disabled if there are mixed major versions detected - which would happen
# # if a major version upgrade is being performed on the cluster, but a user can enable it using this flag
# mixed_major_version_repair_enabled: false
# # 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: 50000
# # 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