Skip to content

Background reconciliation - replica#4761

Open
frankgh wants to merge 7 commits intoapache:cep-45-mutation-trackingfrom
frankgh:CASSANDRA-20378
Open

Background reconciliation - replica#4761
frankgh wants to merge 7 commits intoapache:cep-45-mutation-trackingfrom
frankgh:CASSANDRA-20378

Conversation

@frankgh
Copy link
Copy Markdown
Contributor

@frankgh frankgh commented Apr 21, 2026

patch by Francisco Guerrero; reviewed by TBD for CASSANDRA-20378

@frankgh frankgh force-pushed the CASSANDRA-20378 branch 2 times, most recently from 3e041d0 to 78aef1e Compare April 22, 2026 14:13
patch by Francisco Guerrero; reviewed by TBD for CASSANDRA-20378
@bdeggleston bdeggleston self-requested a review April 30, 2026 18:48

private static class BackgroundReconciler
{
private static final long RECONCILE_INTERVAL_MILLIS = 1_000;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think should probably be a config property / hot prop

{
private static final long RECONCILE_INTERVAL_MILLIS = 1_000;

private volatile boolean isPaused = false;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

enabling/disabling should also be configurable and jmx adjustable. That said, we should log a warning if we startup with mutation tracking keyspaces, or create them at runtime and background reconciliation is disabled

{
try
{
List<Offsets.Immutable> missing = shard.collectLocallyMissingOffsets();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We need to take care to not spam nodes with the same mutation requests over and over here. Asking a node that's falling behind for multiple copies of the same mutation is going to help tip it over. Additionally, and I'm not sure to what degree this is actually a problem, but without a cool off period for new mutations here, we're going have some amount of fetches that are already on the way caused by races between mutation summary receipts and organic mutation receipt.

That said, it may be best to open a followup JIRA for these improvements instead of adding to the scope of this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants