You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2016/08/30 15:55:55 UTC
[1/6] cassandra git commit: Enable repair -pr and -local together
(fix regression of CASSANDRA-7450)
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.2 acd46ab7c -> 6eff0829d
refs/heads/cassandra-3.0 8303fd1f5 -> 3483418bd
refs/heads/trunk 3f9774403 -> a214e1828
Enable repair -pr and -local together (fix regression of CASSANDRA-7450)
Patch by J�r�me Mainaud; Reviewed by Paulo Motta for CASSANDRA-12522
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6eff0829
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6eff0829
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6eff0829
Branch: refs/heads/cassandra-2.2
Commit: 6eff0829d2b3fe8fcac6622971b66792a4e82fef
Parents: acd46ab
Author: J�r�me Mainaud <je...@mainaud.com>
Authored: Fri Aug 26 20:51:40 2016 -0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:46:01 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74c44f8..0f7cf0e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.8
+ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
* Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/src/java/org/apache/cassandra/repair/messages/RepairOption.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
index d50a2ed..44a1e57 100644
--- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java
+++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
@@ -208,7 +208,7 @@ public class RepairOption
{
throw new IllegalArgumentException("Too many job threads. Max is " + MAX_JOB_THREADS);
}
- if (primaryRange && (!dataCenters.isEmpty() || !hosts.isEmpty()))
+ if (primaryRange && ((!dataCenters.isEmpty() && !option.isInLocalDCOnly()) || !hosts.isEmpty()))
{
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
}
@@ -303,6 +303,10 @@ public class RepairOption
return isSubrangeRepair;
}
+ public boolean isInLocalDCOnly() {
+ return dataCenters.size() == 1 && dataCenters.contains(DatabaseDescriptor.getLocalDataCenter());
+ }
+
@Override
public String toString()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/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 e8ab54e..48a291b 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2801,7 +2801,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
if (option.getDataCenters().isEmpty() && option.getHosts().isEmpty())
option.getRanges().addAll(getPrimaryRanges(keyspace));
// except dataCenters only contain local DC (i.e. -local)
- else if (option.getDataCenters().size() == 1 && option.getDataCenters().contains(DatabaseDescriptor.getLocalDataCenter()))
+ else if (option.isInLocalDCOnly())
option.getRanges().addAll(getPrimaryRangesWithinDC(keyspace));
else
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
index cc6f46a..a0eea4e 100644
--- a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
+++ b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
@@ -97,6 +97,26 @@ public class RepairOptionTest
}
@Test
+ public void testPrWithLocalParseOptions()
+ {
+ DatabaseDescriptor.forceStaticInitialization();
+
+ Map<String, String> options = new HashMap<>();
+ options.put(RepairOption.PARALLELISM_KEY, "parallel");
+ options.put(RepairOption.PRIMARY_RANGE_KEY, "true");
+ options.put(RepairOption.INCREMENTAL_KEY, "false");
+ options.put(RepairOption.COLUMNFAMILIES_KEY, "cf1,cf2,cf3");
+ options.put(RepairOption.DATACENTERS_KEY, "datacenter1");
+
+ RepairOption option = RepairOption.parse(options, Murmur3Partitioner.instance);
+ assertTrue(option.isPrimaryRange());
+
+ Set<String> expectedDCs = new HashSet<>(3);
+ expectedDCs.add("datacenter1");
+ assertEquals(expectedDCs, option.getDataCenters());
+ }
+
+ @Test
public void testIncrementalRepairWithSubrangesIsNotGlobal() throws Exception
{
RepairOption ro = RepairOption.parse(ImmutableMap.of(RepairOption.INCREMENTAL_KEY, "true", RepairOption.RANGES_KEY, "42:42"),
[5/6] cassandra git commit: Merge branch 'cassandra-2.2' into
cassandra-3.0
Posted by al...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3483418b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3483418b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3483418b
Branch: refs/heads/cassandra-3.0
Commit: 3483418bda4eb34b7aab5e9f80c1a0cefbc072b7
Parents: 8303fd1 6eff082
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Aug 30 16:48:31 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:48:31 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index fcbf1e4,0f7cf0e..5349c14
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,49 -1,5 +1,50 @@@
-2.2.8
+3.0.9
+ * Fix file system race condition that may cause LogAwareFileLister to fail to classify files (CASSANDRA-11889)
+ * Fix file handle leaks due to simultaneous compaction/repair and
+ listing snapshots, calculating snapshot sizes, or making schema
+ changes (CASSANDRA-11594)
+ * Fix nodetool repair exits with 0 for some errors (CASSANDRA-12508)
+ * Do not shut down BatchlogManager twice during drain (CASSANDRA-12504)
+ * Disk failure policy should not be invoked on out of space (CASSANDRA-12385)
+ * Calculate last compacted key on startup (CASSANDRA-6216)
+ * Add schema to snapshot manifest, add USING TIMESTAMP clause to ALTER TABLE statements (CASSANDRA-7190)
+ * Fix clean interval not sent to commit log for empty memtable flush (CASSANDRA-12436)
+ * Fix potential resource leak in RMIServerSocketFactoryImpl (CASSANDRA-12331)
+ * Backport CASSANDRA-12002 (CASSANDRA-12177)
+ * Make sure compaction stats are updated when compaction is interrupted (CASSANDRA-12100)
+ * Fix potential bad messaging service message for paged range reads
+ within mixed-version 3.x clusters (CASSANDRA-12249)
+ * Change commitlog and sstables to track dirty and clean intervals (CASSANDRA-11828)
+ * NullPointerException during compaction on table with static columns (CASSANDRA-12336)
+ * Fixed ConcurrentModificationException when reading metrics in GraphiteReporter (CASSANDRA-11823)
+ * Fix upgrade of super columns on thrift (CASSANDRA-12335)
+ * Fixed flacky BlacklistingCompactionsTest, switched to fixed size types and increased corruption size (CASSANDRA-12359)
+ * Rerun ReplicationAwareTokenAllocatorTest on failure to avoid flakiness (CASSANDRA-12277)
+ * Exception when computing read-repair for range tombstones (CASSANDRA-12263)
+ * Lost counter writes in compact table and static columns (CASSANDRA-12219)
+ * AssertionError with MVs on updating a row that isn't indexed due to a null value (CASSANDRA-12247)
+ * Disable RR and speculative retry with EACH_QUORUM reads (CASSANDRA-11980)
+ * Add option to override compaction space check (CASSANDRA-12180)
+ * Faster startup by only scanning each directory for temporary files once (CASSANDRA-12114)
+ * Respond with v1/v2 protocol header when responding to driver that attempts
+ to connect with too low of a protocol version (CASSANDRA-11464)
+ * NullPointerExpception when reading/compacting table (CASSANDRA-11988)
+ * Fix problem with undeleteable rows on upgrade to new sstable format (CASSANDRA-12144)
+ * Fix paging logic for deleted partitions with static columns (CASSANDRA-12107)
+ * Wait until the message is being send to decide which serializer must be used (CASSANDRA-11393)
+ * Fix migration of static thrift column names with non-text comparators (CASSANDRA-12147)
+ * Fix upgrading sparse tables that are incorrectly marked as dense (CASSANDRA-11315)
+ * Fix reverse queries ignoring range tombstones (CASSANDRA-11733)
+ * Avoid potential race when rebuilding CFMetaData (CASSANDRA-12098)
+ * Avoid missing sstables when getting the canonical sstables (CASSANDRA-11996)
+ * Always select the live sstables when getting sstables in bounds (CASSANDRA-11944)
+ * Fix column ordering of results with static columns for Thrift requests in
+ a mixed 2.x/3.x cluster, also fix potential non-resolved duplication of
+ those static columns in query results (CASSANDRA-12123)
+ * Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
+ * Fix EOF exception when altering column type (CASSANDRA-11820)
+Merged from 2.2:
+ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
* Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
[2/6] cassandra git commit: Enable repair -pr and -local together
(fix regression of CASSANDRA-7450)
Posted by al...@apache.org.
Enable repair -pr and -local together (fix regression of CASSANDRA-7450)
Patch by J�r�me Mainaud; Reviewed by Paulo Motta for CASSANDRA-12522
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6eff0829
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6eff0829
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6eff0829
Branch: refs/heads/cassandra-3.0
Commit: 6eff0829d2b3fe8fcac6622971b66792a4e82fef
Parents: acd46ab
Author: J�r�me Mainaud <je...@mainaud.com>
Authored: Fri Aug 26 20:51:40 2016 -0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:46:01 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74c44f8..0f7cf0e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.8
+ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
* Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/src/java/org/apache/cassandra/repair/messages/RepairOption.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
index d50a2ed..44a1e57 100644
--- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java
+++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
@@ -208,7 +208,7 @@ public class RepairOption
{
throw new IllegalArgumentException("Too many job threads. Max is " + MAX_JOB_THREADS);
}
- if (primaryRange && (!dataCenters.isEmpty() || !hosts.isEmpty()))
+ if (primaryRange && ((!dataCenters.isEmpty() && !option.isInLocalDCOnly()) || !hosts.isEmpty()))
{
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
}
@@ -303,6 +303,10 @@ public class RepairOption
return isSubrangeRepair;
}
+ public boolean isInLocalDCOnly() {
+ return dataCenters.size() == 1 && dataCenters.contains(DatabaseDescriptor.getLocalDataCenter());
+ }
+
@Override
public String toString()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/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 e8ab54e..48a291b 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2801,7 +2801,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
if (option.getDataCenters().isEmpty() && option.getHosts().isEmpty())
option.getRanges().addAll(getPrimaryRanges(keyspace));
// except dataCenters only contain local DC (i.e. -local)
- else if (option.getDataCenters().size() == 1 && option.getDataCenters().contains(DatabaseDescriptor.getLocalDataCenter()))
+ else if (option.isInLocalDCOnly())
option.getRanges().addAll(getPrimaryRangesWithinDC(keyspace));
else
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
index cc6f46a..a0eea4e 100644
--- a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
+++ b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
@@ -97,6 +97,26 @@ public class RepairOptionTest
}
@Test
+ public void testPrWithLocalParseOptions()
+ {
+ DatabaseDescriptor.forceStaticInitialization();
+
+ Map<String, String> options = new HashMap<>();
+ options.put(RepairOption.PARALLELISM_KEY, "parallel");
+ options.put(RepairOption.PRIMARY_RANGE_KEY, "true");
+ options.put(RepairOption.INCREMENTAL_KEY, "false");
+ options.put(RepairOption.COLUMNFAMILIES_KEY, "cf1,cf2,cf3");
+ options.put(RepairOption.DATACENTERS_KEY, "datacenter1");
+
+ RepairOption option = RepairOption.parse(options, Murmur3Partitioner.instance);
+ assertTrue(option.isPrimaryRange());
+
+ Set<String> expectedDCs = new HashSet<>(3);
+ expectedDCs.add("datacenter1");
+ assertEquals(expectedDCs, option.getDataCenters());
+ }
+
+ @Test
public void testIncrementalRepairWithSubrangesIsNotGlobal() throws Exception
{
RepairOption ro = RepairOption.parse(ImmutableMap.of(RepairOption.INCREMENTAL_KEY, "true", RepairOption.RANGES_KEY, "42:42"),
[3/6] cassandra git commit: Enable repair -pr and -local together
(fix regression of CASSANDRA-7450)
Posted by al...@apache.org.
Enable repair -pr and -local together (fix regression of CASSANDRA-7450)
Patch by J�r�me Mainaud; Reviewed by Paulo Motta for CASSANDRA-12522
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6eff0829
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6eff0829
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6eff0829
Branch: refs/heads/trunk
Commit: 6eff0829d2b3fe8fcac6622971b66792a4e82fef
Parents: acd46ab
Author: J�r�me Mainaud <je...@mainaud.com>
Authored: Fri Aug 26 20:51:40 2016 -0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:46:01 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 74c44f8..0f7cf0e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.8
+ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
* Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/src/java/org/apache/cassandra/repair/messages/RepairOption.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
index d50a2ed..44a1e57 100644
--- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java
+++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
@@ -208,7 +208,7 @@ public class RepairOption
{
throw new IllegalArgumentException("Too many job threads. Max is " + MAX_JOB_THREADS);
}
- if (primaryRange && (!dataCenters.isEmpty() || !hosts.isEmpty()))
+ if (primaryRange && ((!dataCenters.isEmpty() && !option.isInLocalDCOnly()) || !hosts.isEmpty()))
{
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
}
@@ -303,6 +303,10 @@ public class RepairOption
return isSubrangeRepair;
}
+ public boolean isInLocalDCOnly() {
+ return dataCenters.size() == 1 && dataCenters.contains(DatabaseDescriptor.getLocalDataCenter());
+ }
+
@Override
public String toString()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/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 e8ab54e..48a291b 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2801,7 +2801,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
if (option.getDataCenters().isEmpty() && option.getHosts().isEmpty())
option.getRanges().addAll(getPrimaryRanges(keyspace));
// except dataCenters only contain local DC (i.e. -local)
- else if (option.getDataCenters().size() == 1 && option.getDataCenters().contains(DatabaseDescriptor.getLocalDataCenter()))
+ else if (option.isInLocalDCOnly())
option.getRanges().addAll(getPrimaryRangesWithinDC(keyspace));
else
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eff0829/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
index cc6f46a..a0eea4e 100644
--- a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
+++ b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
@@ -97,6 +97,26 @@ public class RepairOptionTest
}
@Test
+ public void testPrWithLocalParseOptions()
+ {
+ DatabaseDescriptor.forceStaticInitialization();
+
+ Map<String, String> options = new HashMap<>();
+ options.put(RepairOption.PARALLELISM_KEY, "parallel");
+ options.put(RepairOption.PRIMARY_RANGE_KEY, "true");
+ options.put(RepairOption.INCREMENTAL_KEY, "false");
+ options.put(RepairOption.COLUMNFAMILIES_KEY, "cf1,cf2,cf3");
+ options.put(RepairOption.DATACENTERS_KEY, "datacenter1");
+
+ RepairOption option = RepairOption.parse(options, Murmur3Partitioner.instance);
+ assertTrue(option.isPrimaryRange());
+
+ Set<String> expectedDCs = new HashSet<>(3);
+ expectedDCs.add("datacenter1");
+ assertEquals(expectedDCs, option.getDataCenters());
+ }
+
+ @Test
public void testIncrementalRepairWithSubrangesIsNotGlobal() throws Exception
{
RepairOption ro = RepairOption.parse(ImmutableMap.of(RepairOption.INCREMENTAL_KEY, "true", RepairOption.RANGES_KEY, "42:42"),
[6/6] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Posted by al...@apache.org.
Merge branch 'cassandra-3.0' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a214e182
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a214e182
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a214e182
Branch: refs/heads/trunk
Commit: a214e18284217884c2f5c4a80b9550e3b650da47
Parents: 3f97744 3483418
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Aug 30 16:55:27 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:55:27 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a214e182/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index cad06bf,5349c14..6b1acb5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -63,49 -8,12 +63,50 @@@ Merged from 3.0
* Disk failure policy should not be invoked on out of space (CASSANDRA-12385)
* Calculate last compacted key on startup (CASSANDRA-6216)
* Add schema to snapshot manifest, add USING TIMESTAMP clause to ALTER TABLE statements (CASSANDRA-7190)
+Merged from 2.2:
+ * Fail repair on non-existing table (CASSANDRA-12279)
++ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
+
+
+3.8, 3.9
+ * Fix value skipping with counter columns (CASSANDRA-11726)
+ * Fix nodetool tablestats miss SSTable count (CASSANDRA-12205)
+ * Fixed flacky SSTablesIteratedTest (CASSANDRA-12282)
+ * Fixed flacky SSTableRewriterTest: check file counts before calling validateCFS (CASSANDRA-12348)
+ * cqlsh: Fix handling of $$-escaped strings (CASSANDRA-12189)
+ * Fix SSL JMX requiring truststore containing server cert (CASSANDRA-12109)
+ * RTE from new CDC column breaks in flight queries (CASSANDRA-12236)
+ * Fix hdr logging for single operation workloads (CASSANDRA-12145)
+ * Fix SASI PREFIX search in CONTAINS mode with partial terms (CASSANDRA-12073)
+ * Increase size of flushExecutor thread pool (CASSANDRA-12071)
+ * Partial revert of CASSANDRA-11971, cannot recycle buffer in SP.sendMessagesToNonlocalDC (CASSANDRA-11950)
+ * Upgrade netty to 4.0.39 (CASSANDRA-12032, CASSANDRA-12034)
+ * Improve details in compaction log message (CASSANDRA-12080)
+ * Allow unset values in CQLSSTableWriter (CASSANDRA-11911)
+ * Chunk cache to request compressor-compatible buffers if pool space is exhausted (CASSANDRA-11993)
+ * Remove DatabaseDescriptor dependencies from SequentialWriter (CASSANDRA-11579)
+ * Move skip_stop_words filter before stemming (CASSANDRA-12078)
+ * Support seek() in EncryptedFileSegmentInputStream (CASSANDRA-11957)
+ * SSTable tools mishandling LocalPartitioner (CASSANDRA-12002)
+ * When SEPWorker assigned work, set thread name to match pool (CASSANDRA-11966)
+ * Add cross-DC latency metrics (CASSANDRA-11596)
+ * Allow terms in selection clause (CASSANDRA-10783)
+ * Add bind variables to trace (CASSANDRA-11719)
+ * Switch counter shards' clock to timestamps (CASSANDRA-9811)
+ * Introduce HdrHistogram and response/service/wait separation to stress tool (CASSANDRA-11853)
+ * entry-weighers in QueryProcessor should respect partitionKeyBindIndexes field (CASSANDRA-11718)
+ * Support older ant versions (CASSANDRA-11807)
+ * Estimate compressed on disk size when deciding if sstable size limit reached (CASSANDRA-11623)
+ * cassandra-stress profiles should support case sensitive schemas (CASSANDRA-11546)
+ * Remove DatabaseDescriptor dependency from FileUtils (CASSANDRA-11578)
+ * Faster streaming (CASSANDRA-9766)
+ * Add prepared query parameter to trace for "Execute CQL3 prepared query" session (CASSANDRA-11425)
+ * Add repaired percentage metric (CASSANDRA-11503)
+ * Add Change-Data-Capture (CASSANDRA-8844)
+Merged from 3.0:
* Fix clean interval not sent to commit log for empty memtable flush (CASSANDRA-12436)
* Fix potential resource leak in RMIServerSocketFactoryImpl (CASSANDRA-12331)
- * Backport CASSANDRA-12002 (CASSANDRA-12177)
* Make sure compaction stats are updated when compaction is interrupted (CASSANDRA-12100)
- * Fix potential bad messaging service message for paged range reads
- within mixed-version 3.x clusters (CASSANDRA-12249)
* Change commitlog and sstables to track dirty and clean intervals (CASSANDRA-11828)
* NullPointerException during compaction on table with static columns (CASSANDRA-12336)
* Fixed ConcurrentModificationException when reading metrics in GraphiteReporter (CASSANDRA-11823)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a214e182/src/java/org/apache/cassandra/repair/messages/RepairOption.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java
index 1f34973,44a1e57..ced6e43
--- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java
+++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
@@@ -217,11 -208,7 +217,11 @@@ public class RepairOptio
{
throw new IllegalArgumentException("Too many job threads. Max is " + MAX_JOB_THREADS);
}
+ if (!dataCenters.isEmpty() && !hosts.isEmpty())
+ {
+ throw new IllegalArgumentException("Cannot combine -dc and -hosts options.");
+ }
- if (primaryRange && (!dataCenters.isEmpty() || !hosts.isEmpty()))
+ if (primaryRange && ((!dataCenters.isEmpty() && !option.isInLocalDCOnly()) || !hosts.isEmpty()))
{
throw new IllegalArgumentException("You need to run primary range repair on all nodes in the cluster.");
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a214e182/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/a214e182/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
index 665a0b7,27eff56..29d9756
--- a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
+++ b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
@@@ -110,25 -100,26 +110,45 @@@ public class RepairOptionTes
}
@Test
+ public void testPrWithLocalParseOptions()
+ {
- DatabaseDescriptor.forceStaticInitialization();
++ DatabaseDescriptor.daemonInitialization();
+
+ Map<String, String> options = new HashMap<>();
+ options.put(RepairOption.PARALLELISM_KEY, "parallel");
+ options.put(RepairOption.PRIMARY_RANGE_KEY, "true");
+ options.put(RepairOption.INCREMENTAL_KEY, "false");
+ options.put(RepairOption.COLUMNFAMILIES_KEY, "cf1,cf2,cf3");
+ options.put(RepairOption.DATACENTERS_KEY, "datacenter1");
+
+ RepairOption option = RepairOption.parse(options, Murmur3Partitioner.instance);
+ assertTrue(option.isPrimaryRange());
+
+ Set<String> expectedDCs = new HashSet<>(3);
+ expectedDCs.add("datacenter1");
+ assertEquals(expectedDCs, option.getDataCenters());
+ }
+
+ @Test
+ public void testPullRepairParseOptions()
+ {
+ Map<String, String> options = new HashMap<>();
+
+ options.put(RepairOption.PULL_REPAIR_KEY, "true");
+ assertParseThrowsIllegalArgumentExceptionWithMessage(options, "Pull repair can only be performed between two hosts");
+
+ options.put(RepairOption.HOSTS_KEY, "127.0.0.1,127.0.0.2,127.0.0.3");
+ assertParseThrowsIllegalArgumentExceptionWithMessage(options, "Pull repair can only be performed between two hosts");
+
+ options.put(RepairOption.HOSTS_KEY, "127.0.0.1,127.0.0.2");
+ assertParseThrowsIllegalArgumentExceptionWithMessage(options, "Token ranges must be specified when performing pull repair");
+
+ options.put(RepairOption.RANGES_KEY, "0:10");
+ RepairOption option = RepairOption.parse(options, Murmur3Partitioner.instance);
+ assertTrue(option.isPullRepair());
+ }
+
+ @Test
public void testIncrementalRepairWithSubrangesIsNotGlobal() throws Exception
{
RepairOption ro = RepairOption.parse(ImmutableMap.of(RepairOption.INCREMENTAL_KEY, "true", RepairOption.RANGES_KEY, "42:42"),
[4/6] cassandra git commit: Merge branch 'cassandra-2.2' into
cassandra-3.0
Posted by al...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3483418b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3483418b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3483418b
Branch: refs/heads/trunk
Commit: 3483418bda4eb34b7aab5e9f80c1a0cefbc072b7
Parents: 8303fd1 6eff082
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Aug 30 16:48:31 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:48:31 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/repair/messages/RepairOption.java | 6 +++++-
.../cassandra/service/StorageService.java | 2 +-
.../repair/messages/RepairOptionTest.java | 20 ++++++++++++++++++++
4 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index fcbf1e4,0f7cf0e..5349c14
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,49 -1,5 +1,50 @@@
-2.2.8
+3.0.9
+ * Fix file system race condition that may cause LogAwareFileLister to fail to classify files (CASSANDRA-11889)
+ * Fix file handle leaks due to simultaneous compaction/repair and
+ listing snapshots, calculating snapshot sizes, or making schema
+ changes (CASSANDRA-11594)
+ * Fix nodetool repair exits with 0 for some errors (CASSANDRA-12508)
+ * Do not shut down BatchlogManager twice during drain (CASSANDRA-12504)
+ * Disk failure policy should not be invoked on out of space (CASSANDRA-12385)
+ * Calculate last compacted key on startup (CASSANDRA-6216)
+ * Add schema to snapshot manifest, add USING TIMESTAMP clause to ALTER TABLE statements (CASSANDRA-7190)
+ * Fix clean interval not sent to commit log for empty memtable flush (CASSANDRA-12436)
+ * Fix potential resource leak in RMIServerSocketFactoryImpl (CASSANDRA-12331)
+ * Backport CASSANDRA-12002 (CASSANDRA-12177)
+ * Make sure compaction stats are updated when compaction is interrupted (CASSANDRA-12100)
+ * Fix potential bad messaging service message for paged range reads
+ within mixed-version 3.x clusters (CASSANDRA-12249)
+ * Change commitlog and sstables to track dirty and clean intervals (CASSANDRA-11828)
+ * NullPointerException during compaction on table with static columns (CASSANDRA-12336)
+ * Fixed ConcurrentModificationException when reading metrics in GraphiteReporter (CASSANDRA-11823)
+ * Fix upgrade of super columns on thrift (CASSANDRA-12335)
+ * Fixed flacky BlacklistingCompactionsTest, switched to fixed size types and increased corruption size (CASSANDRA-12359)
+ * Rerun ReplicationAwareTokenAllocatorTest on failure to avoid flakiness (CASSANDRA-12277)
+ * Exception when computing read-repair for range tombstones (CASSANDRA-12263)
+ * Lost counter writes in compact table and static columns (CASSANDRA-12219)
+ * AssertionError with MVs on updating a row that isn't indexed due to a null value (CASSANDRA-12247)
+ * Disable RR and speculative retry with EACH_QUORUM reads (CASSANDRA-11980)
+ * Add option to override compaction space check (CASSANDRA-12180)
+ * Faster startup by only scanning each directory for temporary files once (CASSANDRA-12114)
+ * Respond with v1/v2 protocol header when responding to driver that attempts
+ to connect with too low of a protocol version (CASSANDRA-11464)
+ * NullPointerExpception when reading/compacting table (CASSANDRA-11988)
+ * Fix problem with undeleteable rows on upgrade to new sstable format (CASSANDRA-12144)
+ * Fix paging logic for deleted partitions with static columns (CASSANDRA-12107)
+ * Wait until the message is being send to decide which serializer must be used (CASSANDRA-11393)
+ * Fix migration of static thrift column names with non-text comparators (CASSANDRA-12147)
+ * Fix upgrading sparse tables that are incorrectly marked as dense (CASSANDRA-11315)
+ * Fix reverse queries ignoring range tombstones (CASSANDRA-11733)
+ * Avoid potential race when rebuilding CFMetaData (CASSANDRA-12098)
+ * Avoid missing sstables when getting the canonical sstables (CASSANDRA-11996)
+ * Always select the live sstables when getting sstables in bounds (CASSANDRA-11944)
+ * Fix column ordering of results with static columns for Thrift requests in
+ a mixed 2.x/3.x cluster, also fix potential non-resolved duplication of
+ those static columns in query results (CASSANDRA-12123)
+ * Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
+ * Fix EOF exception when altering column type (CASSANDRA-11820)
+Merged from 2.2:
+ * Enable repair -pr and -local together (fix regression of CASSANDRA-7450) (CASSANDRA-12522)
* Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3483418b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------