Make repair no-op when RF=1

patch by yukim; reviewed by krummas for CASSANDRA-7864
This commit is contained in:
Yuki Morishita 2014-09-05 10:22:33 -05:00
parent 77b036a876
commit 46ef9628fa
2 changed files with 4 additions and 3 deletions

View File

@ -8,6 +8,7 @@
(CASSANDRA-7722)
* Always send Paxos commit to all replicas (CASSANDRA-7479)
* Make disruptor_thrift_server invocation pool configurable (CASSANDRA-7594)
* Make repair no-op when RF=1 (CASSANDRA-7864)
2.0.10

View File

@ -2404,7 +2404,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
public int forceRepairAsync(final String keyspace, final boolean isSequential, final Collection<String> dataCenters, final Collection<String> hosts, final Collection<Range<Token>> ranges, final String... columnFamilies)
{
if (Keyspace.SYSTEM_KS.equals(keyspace) || ranges.isEmpty())
if (ranges.isEmpty() || Keyspace.open(keyspace).getReplicationStrategy().getReplicationFactor() < 2)
return 0;
final int cmd = nextRepairCommand.incrementAndGet();
@ -2428,7 +2428,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
public int forceRepairAsync(String keyspace, boolean isSequential, boolean isLocal, Collection<Range<Token>> ranges, String... columnFamilies)
{
if (Keyspace.SYSTEM_KS.equals(keyspace) || ranges.isEmpty())
if (ranges.isEmpty() || Keyspace.open(keyspace).getReplicationStrategy().getReplicationFactor() < 2)
return 0;
final int cmd = nextRepairCommand.incrementAndGet();
@ -2497,7 +2497,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
public void forceKeyspaceRepairRange(final String keyspaceName, final Collection<Range<Token>> ranges, boolean isSequential, boolean isLocal, final String... columnFamilies) throws IOException
{
if (Keyspace.SYSTEM_KS.equalsIgnoreCase(keyspaceName))
if (ranges.isEmpty() || Keyspace.open(keyspaceName).getReplicationStrategy().getReplicationFactor() < 2)
return;
createRepairTask(nextRepairCommand.incrementAndGet(), keyspaceName, ranges, isSequential, isLocal, columnFamilies).run();
}