Skip to content

Commit

Permalink
Rename AutoRepair --> UnifiedRepair
Browse files Browse the repository at this point in the history
  • Loading branch information
jaydeepkumar1984 authored and jaydeep1984 committed Nov 21, 2024
1 parent c6bd7df commit f9f6971
Show file tree
Hide file tree
Showing 50 changed files with 1,122 additions and 1,122 deletions.
14 changes: 7 additions & 7 deletions doc/modules/cassandra/pages/managing/operating/metrics.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1078,16 +1078,16 @@ partitions processed per logged batch
partitions processed per unlogged batch
|===

== Automated Repair Metrics
== Unified Repair Metrics

Metrics specifc to automated repair.
Metrics specifc to unified repair.

Reported name format:

*Metric Name*::
`org.apache.cassandra.metrics.AutoRepair.<MetricName>`
`org.apache.cassandra.metrics.UnifiedRepair.<MetricName>`
*JMX MBean*::
`org.apache.cassandra.metrics:type=AutoRepair name=<MetricName> repairType=<RepairType>`
`org.apache.cassandra.metrics:type=UnifiedRepair name=<MetricName> repairType=<RepairType>`

[cols=",,",options="header",]
|===
Expand Down Expand Up @@ -1118,15 +1118,15 @@ on the node
views considered on the node

|TotalDisabledRepairTables |Gauge<Integer> |Number of tables on which
the automated repair has been disabled on the node
the unified repair has been disabled on the node

|RepairTurnMyTurn |Counter |Represents the node's turn to repair

|RepairTurnMyTurnDueToPriority |Counter |Represents the node's turn to repair
due to priority set in the automated repair
due to priority set in the unified repair

|RepairTurnMyTurnForceRepair |Counter |Represents the node's turn to repair
due to force repair set in the automated repair
due to force repair set in the unified repair


|===
Expand Down
4 changes: 2 additions & 2 deletions src/java/org/apache/cassandra/config/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;

import org.apache.cassandra.repair.autorepair.AutoRepairConfig;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -957,7 +957,7 @@ public static void setClientMode(boolean clientMode)

public volatile boolean password_validator_reconfiguration_enabled = true;
public volatile CustomGuardrailConfig password_validator = new CustomGuardrailConfig();
public volatile AutoRepairConfig auto_repair = new AutoRepairConfig();
public volatile UnifiedRepairConfig unified_repair = new UnifiedRepairConfig();

/**
* The variants of paxos implementation and semantics supported by Cassandra.
Expand Down
6 changes: 3 additions & 3 deletions src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
import org.apache.cassandra.locator.InetAddressAndPort;
import org.apache.cassandra.locator.Replica;
import org.apache.cassandra.locator.SeedProvider;
import org.apache.cassandra.repair.autorepair.AutoRepairConfig;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairConfig;
import org.apache.cassandra.security.AbstractCryptoProvider;
import org.apache.cassandra.security.EncryptionContext;
import org.apache.cassandra.security.JREProvider;
Expand Down Expand Up @@ -5361,9 +5361,9 @@ public static boolean isPasswordValidatorReconfigurationEnabled()
return conf.password_validator_reconfiguration_enabled;
}

public static AutoRepairConfig getAutoRepairConfig()
public static UnifiedRepairConfig getUnifiedRepairConfig()
{
return conf.auto_repair;
return conf.unified_repair;
}

public static double getIncrementalRepairDiskHeadroomRejectRatio()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@

import org.apache.cassandra.cql3.statements.PropertyDefinitions;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.repair.autorepair.AutoRepairConfig;
import org.apache.cassandra.schema.AutoRepairParams;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairConfig;
import org.apache.cassandra.schema.UnifiedRepairParams;
import org.apache.cassandra.schema.CachingParams;
import org.apache.cassandra.schema.CompactionParams;
import org.apache.cassandra.schema.CompressionParams;
Expand Down Expand Up @@ -154,10 +154,10 @@ private TableParams build(TableParams.Builder builder)
builder.readRepair(ReadRepairStrategy.fromString(getString(READ_REPAIR)));

if (hasOption(Option.REPAIR_FULL))
builder.automatedRepairFull(AutoRepairParams.fromMap(AutoRepairConfig.RepairType.full, getMap(Option.REPAIR_FULL)));
builder.unifiedRepairFull(UnifiedRepairParams.fromMap(UnifiedRepairConfig.RepairType.full, getMap(Option.REPAIR_FULL)));

if (hasOption(Option.REPAIR_INCREMENTAL))
builder.automatedRepairIncremental(AutoRepairParams.fromMap(AutoRepairConfig.RepairType.incremental, getMap(Option.REPAIR_INCREMENTAL)));
builder.unifiedRepairIncremental(UnifiedRepairParams.fromMap(UnifiedRepairConfig.RepairType.incremental, getMap(Option.REPAIR_INCREMENTAL)));

return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public class CassandraMetricsRegistry extends MetricRegistry
.add(ThreadPoolMetrics.TYPE_NAME)
.add(TrieMemtableMetricsView.TYPE_NAME)
.add(UnweightedCacheMetrics.TYPE_NAME)
.add(AutoRepairMetrics.TYPE_NAME)
.add(UnifiedRepairMetrics.TYPE_NAME)
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@
import com.codahale.metrics.Counter;
import com.codahale.metrics.Gauge;
import com.google.common.annotations.VisibleForTesting;
import org.apache.cassandra.repair.autorepair.AutoRepairConfig.RepairType;
import org.apache.cassandra.repair.autorepair.AutoRepairUtils;
import org.apache.cassandra.repair.autorepair.AutoRepair;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairConfig.RepairType;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairUtils;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepair;

import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics;
import static org.apache.cassandra.utils.LocalizeString.toLowerCaseLocalized;

/**
* Metrics related to AutoRepair.
* Metrics related to UnifiedRepair.
*/
public class AutoRepairMetrics
public class UnifiedRepairMetrics
{
public static final String TYPE_NAME = "autorepair";
public static final String TYPE_NAME = "unifiedrepair";
public Gauge<Integer> repairsInProgress;
public Gauge<Integer> nodeRepairTimeInSec;
public Gauge<Integer> clusterRepairTimeInSec;
Expand All @@ -47,47 +47,47 @@ public class AutoRepairMetrics
public Gauge<Integer> totalMVTablesConsideredForRepair;
public Gauge<Integer> totalDisabledRepairTables;

public AutoRepairMetrics(RepairType repairType)
public UnifiedRepairMetrics(RepairType repairType)
{
AutoRepairMetricsFactory factory = new AutoRepairMetricsFactory(repairType);
UnifiedRepairMetricsFactory factory = new UnifiedRepairMetricsFactory(repairType);

repairsInProgress = Metrics.register(factory.createMetricName("RepairsInProgress"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).isRepairInProgress() ? 1 : 0;
return UnifiedRepair.instance.getRepairState(repairType).isRepairInProgress() ? 1 : 0;
}
});

nodeRepairTimeInSec = Metrics.register(factory.createMetricName("NodeRepairTimeInSec"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getNodeRepairTimeInSec();
return UnifiedRepair.instance.getRepairState(repairType).getNodeRepairTimeInSec();
}
});

clusterRepairTimeInSec = Metrics.register(factory.createMetricName("ClusterRepairTimeInSec"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getClusterRepairTimeInSec();
return UnifiedRepair.instance.getRepairState(repairType).getClusterRepairTimeInSec();
}
});

skippedTokenRangesCount = Metrics.register(factory.createMetricName("SkippedTokenRangesCount"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getSkippedTokenRangesCount();
return UnifiedRepair.instance.getRepairState(repairType).getSkippedTokenRangesCount();
}
});

skippedTablesCount = Metrics.register(factory.createMetricName("SkippedTablesCount"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getSkippedTablesCount();
return UnifiedRepair.instance.getRepairState(repairType).getSkippedTablesCount();
}
});

Expand All @@ -96,23 +96,23 @@ public Integer getValue()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getLongestUnrepairedSec();
return UnifiedRepair.instance.getRepairState(repairType).getLongestUnrepairedSec();
}
});

succeededTokenRangesCount = Metrics.register(factory.createMetricName("SucceededTokenRangesCount"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getSucceededTokenRangesCount();
return UnifiedRepair.instance.getRepairState(repairType).getSucceededTokenRangesCount();
}
});

failedTokenRangesCount = Metrics.register(factory.createMetricName("FailedTokenRangesCount"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getFailedTokenRangesCount();
return UnifiedRepair.instance.getRepairState(repairType).getFailedTokenRangesCount();
}
});

Expand All @@ -124,20 +124,20 @@ public Integer getValue()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getTotalMVTablesConsideredForRepair();
return UnifiedRepair.instance.getRepairState(repairType).getTotalMVTablesConsideredForRepair();
}
});

totalDisabledRepairTables = Metrics.register(factory.createMetricName("TotalDisabledRepairTables"), new Gauge<Integer>()
{
public Integer getValue()
{
return AutoRepair.instance.getRepairState(repairType).getTotalDisabledTablesRepairCount();
return UnifiedRepair.instance.getRepairState(repairType).getTotalDisabledTablesRepairCount();
}
});
}

public void recordTurn(AutoRepairUtils.RepairTurn turn)
public void recordTurn(UnifiedRepairUtils.RepairTurn turn)
{
switch (turn)
{
Expand All @@ -156,13 +156,13 @@ public void recordTurn(AutoRepairUtils.RepairTurn turn)
}

@VisibleForTesting
protected static class AutoRepairMetricsFactory implements MetricNameFactory
protected static class UnifiedRepairMetricsFactory implements MetricNameFactory
{
private static final String TYPE = "AutoRepair";
private static final String TYPE = "UnifiedRepair";
@VisibleForTesting
protected final String repairType;

protected AutoRepairMetricsFactory(RepairType repairType)
protected UnifiedRepairMetricsFactory(RepairType repairType)
{
this.repairType = toLowerCaseLocalized(repairType.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@

package org.apache.cassandra.metrics;

import org.apache.cassandra.repair.autorepair.AutoRepairConfig.RepairType;
import org.apache.cassandra.repair.unifiedrepair.UnifiedRepairConfig.RepairType;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class AutoRepairMetricsManager
public class UnifiedRepairMetricsManager
{
private static final Map<RepairType, AutoRepairMetrics> metrics = new ConcurrentHashMap<>();
private static final Map<RepairType, UnifiedRepairMetrics> metrics = new ConcurrentHashMap<>();

public static AutoRepairMetrics getMetrics(RepairType repairType)
public static UnifiedRepairMetrics getMetrics(RepairType repairType)
{
return metrics.computeIfAbsent(repairType, k -> new AutoRepairMetrics(repairType));
return metrics.computeIfAbsent(repairType, k -> new UnifiedRepairMetrics(repairType));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cassandra.repair.autorepair;
package org.apache.cassandra.repair.unifiedrepair;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.apache.cassandra.service.AutoRepairService;
import org.apache.cassandra.service.UnifiedRepairService;

import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
import org.apache.cassandra.service.StorageService;

import static org.apache.cassandra.repair.autorepair.AutoRepairUtils.splitEvenly;
import static org.apache.cassandra.repair.unifiedrepair.UnifiedRepairUtils.splitEvenly;

public class DefaultAutoRepairTokenSplitter implements IAutoRepairTokenRangeSplitter
public class DefaultUnifiedRepairTokenSplitter implements IUnifiedRepairTokenRangeSplitter
{
@Override
public List<RepairAssignment> getRepairAssignments(AutoRepairConfig.RepairType repairType, boolean primaryRangeOnly, String keyspaceName, List<String> tableNames)
public List<RepairAssignment> getRepairAssignments(UnifiedRepairConfig.RepairType repairType, boolean primaryRangeOnly, String keyspaceName, List<String> tableNames)
{
AutoRepairConfig config = AutoRepairService.instance.getAutoRepairConfig();
UnifiedRepairConfig config = UnifiedRepairService.instance.getUnifiedRepairConfig();
List<RepairAssignment> repairAssignments = new ArrayList<>();

Collection<Range<Token>> tokens = StorageService.instance.getPrimaryRanges(keyspaceName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cassandra.repair.autorepair;
package org.apache.cassandra.repair.unifiedrepair;


import java.util.List;
Expand All @@ -24,22 +24,22 @@
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;

public interface IAutoRepairTokenRangeSplitter
public interface IUnifiedRepairTokenRangeSplitter
{

/**
* Split the token range you wish to repair into multiple assignments.
* The autorepair framework will repair the list of returned subrange in a sequence.
* The unifiedrepair framework will repair the list of returned subrange in a sequence.
* @param repairType The type of repair being executed
* @param primaryRangeOnly Whether to repair only this node's primary ranges or all of its ranges.
* @param keyspaceName The keyspace being repaired
* @param tableNames The tables to repair
* @return repair assignments broken up by range, keyspace and tables.
*/
List<RepairAssignment> getRepairAssignments(AutoRepairConfig.RepairType repairType, boolean primaryRangeOnly, String keyspaceName, List<String> tableNames);
List<RepairAssignment> getRepairAssignments(UnifiedRepairConfig.RepairType repairType, boolean primaryRangeOnly, String keyspaceName, List<String> tableNames);

/**
* Defines a repair assignment to be issued by the autorepair framework.
* Defines a repair assignment to be issued by the unifiedrepair framework.
*/
class RepairAssignment
{
Expand Down
Loading

0 comments on commit f9f6971

Please sign in to comment.