Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
        src/java/org/apache/cassandra/service/StorageService.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dea5fa78
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dea5fa78
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dea5fa78

Branch: refs/heads/cassandra-2.1
Commit: dea5fa78a0ca94626656bbfbf101e4b152e8d6ed
Parents: c6b509d 46ef962
Author: Yuki Morishita <yu...@apache.org>
Authored: Fri Sep 5 10:28:07 2014 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Fri Sep 5 10:28:07 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/dea5fa78/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/dea5fa78/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 5c6dbd6,12d6420..fb4e6e6
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2462,25 -2398,19 +2462,25 @@@ public class StorageService extends Not
          {
              throw new IllegalArgumentException("You need to run primary range 
repair on all nodes in the cluster.");
          }
 -        final Collection<Range<Token>> ranges = primaryRange ? 
getLocalPrimaryRanges(keyspace) : getLocalRanges(keyspace);
 -        return forceRepairAsync(keyspace, isSequential, dataCenters, hosts, 
ranges, columnFamilies);
 +        Collection<Range<Token>> ranges = primaryRange ? 
getLocalPrimaryRanges(keyspace) : getLocalRanges(keyspace);
 +
 +        return forceRepairAsync(keyspace, isSequential, dataCenters, hosts, 
ranges, fullRepair, columnFamilies);
      }
  
 -    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)
 +    public int forceRepairAsync(String keyspace, boolean isSequential, 
Collection<String> dataCenters, Collection<String> hosts, 
Collection<Range<Token>> ranges, boolean fullRepair, 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();
 +        int cmd = nextRepairCommand.incrementAndGet();
          if (ranges.size() > 0)
          {
 -            new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, columnFamilies)).start();
 +            if (!FBUtilities.isUnix() && isSequential)
 +            {
 +                logger.warn("Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.");
 +                isSequential = false;
 +            }
 +            new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, fullRepair, columnFamilies)).start();
          }
          return cmd;
      }
@@@ -2492,16 -2422,16 +2492,16 @@@
          {
              throw new IllegalArgumentException("You need to run primary range 
repair on all nodes in the cluster.");
          }
 -        final Collection<Range<Token>> ranges = primaryRange ? 
getLocalPrimaryRanges(keyspace) : getLocalRanges(keyspace);
 -        return forceRepairAsync(keyspace, isSequential, isLocal, ranges, 
columnFamilies);
 +        Collection<Range<Token>> ranges = primaryRange ? 
getLocalPrimaryRanges(keyspace) : getLocalRanges(keyspace);
 +        return forceRepairAsync(keyspace, isSequential, isLocal, ranges, 
fullRepair, columnFamilies);
      }
  
 -    public int forceRepairAsync(String keyspace, boolean isSequential, 
boolean isLocal, Collection<Range<Token>> ranges, String... columnFamilies)
 +    public int forceRepairAsync(String keyspace, boolean isSequential, 
boolean isLocal, Collection<Range<Token>> ranges, boolean fullRepair, 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();
 +        int cmd = nextRepairCommand.incrementAndGet();
          if (!FBUtilities.isUnix() && isSequential)
          {
              logger.warn("Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.");

Reply via email to