You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2014/03/06 22:26:04 UTC
[1/3] git commit: Fix potentially repairing with wrong nodes
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 f67b7a477 -> 84626372c
refs/heads/trunk 937189237 -> 8c1e4e089
Fix potentially repairing with wrong nodes
patch by yukim; reviewed by krummas for CASSANDRA-6808
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/84626372
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/84626372
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/84626372
Branch: refs/heads/cassandra-2.1
Commit: 84626372c0ae007bb55e0072d981d856f5a8e72c
Parents: f67b7a4
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Mar 6 15:24:52 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Mar 6 15:24:52 2014 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/service/StorageService.java | 15 ++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84626372/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index af7f2fd..df19467 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,7 @@
* Scrub should not always clear out repaired status (CASSANDRA-5351)
* Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
* Fix ClassCastException for compact table with composites (CASSANDRA-6738)
+ * Fix potentially repairing with wrong nodes (CASSANDRA-6808)
Merged from 2.0:
* Avoid race-prone second "scrub" of system keyspace (CASSANDRA-6797)
* Pool CqlRecordWriter clients by inetaddress rather than Range
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84626372/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index e358f7d..132e674 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2577,9 +2577,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
return;
}
- Set<InetAddress> neighbours = new HashSet<>();
+ Set<InetAddress> allNeighbors = new HashSet<>();
+ Map<Range, Set<InetAddress>> rangeToNeighbors = new HashMap<>();
for (Range<Token> range : ranges)
- neighbours.addAll(ActiveRepairService.getNeighbors(keyspace, range, dataCenters, hosts));
+ {
+ Set<InetAddress> neighbors = ActiveRepairService.getNeighbors(keyspace, range, dataCenters, hosts);
+ rangeToNeighbors.put(range, neighbors);
+ allNeighbors.addAll(neighbors);
+ }
List<ColumnFamilyStore> columnFamilyStores = new ArrayList<>();
for (ColumnFamilyStore cfs : getValidColumnFamilies(false, false, keyspace, columnFamilies))
@@ -2587,7 +2592,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
UUID parentSession = null;
if (!fullRepair)
- parentSession = ActiveRepairService.instance.prepareForRepair(neighbours, ranges, columnFamilyStores);
+ parentSession = ActiveRepairService.instance.prepareForRepair(allNeighbors, ranges, columnFamilyStores);
List<RepairFuture> futures = new ArrayList<>(ranges.size());
for (Range<Token> range : ranges)
@@ -2595,7 +2600,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
RepairFuture future;
try
{
- future = forceKeyspaceRepair(parentSession, range, keyspace, isSequential, neighbours, columnFamilies);
+ future = forceKeyspaceRepair(parentSession, range, keyspace, isSequential, rangeToNeighbors.get(range), columnFamilies);
}
catch (IllegalArgumentException e)
{
@@ -2642,7 +2647,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
}
}
if (!fullRepair)
- ActiveRepairService.instance.finishParentSession(parentSession, neighbours);
+ ActiveRepairService.instance.finishParentSession(parentSession, allNeighbors);
sendNotification("repair", String.format("Repair command #%d finished", cmd), new int[]{cmd, ActiveRepairService.Status.FINISHED.ordinal()});
}
}, null);
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Posted by yu...@apache.org.
Merge branch 'cassandra-2.1' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8c1e4e08
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8c1e4e08
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8c1e4e08
Branch: refs/heads/trunk
Commit: 8c1e4e0897ebcb04ec4277fcdc0f8b0cd74bc1fd
Parents: 9371892 8462637
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Mar 6 15:25:43 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Mar 6 15:25:43 2014 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/service/StorageService.java | 15 ++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c1e4e08/CHANGES.txt
----------------------------------------------------------------------
[2/3] git commit: Fix potentially repairing with wrong nodes
Posted by yu...@apache.org.
Fix potentially repairing with wrong nodes
patch by yukim; reviewed by krummas for CASSANDRA-6808
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/84626372
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/84626372
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/84626372
Branch: refs/heads/trunk
Commit: 84626372c0ae007bb55e0072d981d856f5a8e72c
Parents: f67b7a4
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Mar 6 15:24:52 2014 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Mar 6 15:24:52 2014 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/service/StorageService.java | 15 ++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84626372/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index af7f2fd..df19467 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,7 @@
* Scrub should not always clear out repaired status (CASSANDRA-5351)
* Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
* Fix ClassCastException for compact table with composites (CASSANDRA-6738)
+ * Fix potentially repairing with wrong nodes (CASSANDRA-6808)
Merged from 2.0:
* Avoid race-prone second "scrub" of system keyspace (CASSANDRA-6797)
* Pool CqlRecordWriter clients by inetaddress rather than Range
http://git-wip-us.apache.org/repos/asf/cassandra/blob/84626372/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index e358f7d..132e674 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2577,9 +2577,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
return;
}
- Set<InetAddress> neighbours = new HashSet<>();
+ Set<InetAddress> allNeighbors = new HashSet<>();
+ Map<Range, Set<InetAddress>> rangeToNeighbors = new HashMap<>();
for (Range<Token> range : ranges)
- neighbours.addAll(ActiveRepairService.getNeighbors(keyspace, range, dataCenters, hosts));
+ {
+ Set<InetAddress> neighbors = ActiveRepairService.getNeighbors(keyspace, range, dataCenters, hosts);
+ rangeToNeighbors.put(range, neighbors);
+ allNeighbors.addAll(neighbors);
+ }
List<ColumnFamilyStore> columnFamilyStores = new ArrayList<>();
for (ColumnFamilyStore cfs : getValidColumnFamilies(false, false, keyspace, columnFamilies))
@@ -2587,7 +2592,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
UUID parentSession = null;
if (!fullRepair)
- parentSession = ActiveRepairService.instance.prepareForRepair(neighbours, ranges, columnFamilyStores);
+ parentSession = ActiveRepairService.instance.prepareForRepair(allNeighbors, ranges, columnFamilyStores);
List<RepairFuture> futures = new ArrayList<>(ranges.size());
for (Range<Token> range : ranges)
@@ -2595,7 +2600,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
RepairFuture future;
try
{
- future = forceKeyspaceRepair(parentSession, range, keyspace, isSequential, neighbours, columnFamilies);
+ future = forceKeyspaceRepair(parentSession, range, keyspace, isSequential, rangeToNeighbors.get(range), columnFamilies);
}
catch (IllegalArgumentException e)
{
@@ -2642,7 +2647,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
}
}
if (!fullRepair)
- ActiveRepairService.instance.finishParentSession(parentSession, neighbours);
+ ActiveRepairService.instance.finishParentSession(parentSession, allNeighbors);
sendNotification("repair", String.format("Repair command #%d finished", cmd), new int[]{cmd, ActiveRepairService.Status.FINISHED.ordinal()});
}
}, null);