You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by pa...@apache.org on 2017/02/15 12:54:10 UTC
[1/9] cassandra git commit: Use keyspace replication settings on
system.size_estimates table
Repository: cassandra
Updated Branches:
refs/heads/cassandra-3.0 76ad028f6 -> f02f154e4
refs/heads/cassandra-3.11 515e4a227 -> ef9df6e05
refs/heads/trunk a0827fb2e -> 31eac784f
Use keyspace replication settings on system.size_estimates table
Patch by Chris Lohfink; Reviewed by Paulo Motta for CASSANDRA-9639
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/af7b20bd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/af7b20bd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/af7b20bd
Branch: refs/heads/cassandra-3.0
Commit: af7b20bd0ea0d1e80553c519510c9ad9f29af64a
Parents: 76ad028
Author: Chris Lohfink <cl...@gmail.com>
Authored: Thu Jan 26 09:43:47 2017 -0600
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:27:25 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 2 +
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
3 files changed, 30 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b19550a..732e14b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.11
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
* Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 4248a6e..a5ee496 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -30,6 +30,8 @@ Upgrading
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
3.0.10
=====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
index 0b31b87..ebe3f9a 100644
--- a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
+++ b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
@@ -69,12 +69,10 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
logger.trace("Recording size estimates");
- // find primary token ranges for the local node.
- Collection<Token> localTokens = StorageService.instance.getLocalTokens();
- Collection<Range<Token>> localRanges = metadata.getPrimaryRangesFor(localTokens);
-
for (Keyspace keyspace : Keyspace.nonLocalStrategy())
{
+ Collection<Range<Token>> localRanges = StorageService.instance.getPrimaryRangesForEndpoint(keyspace.getName(),
+ FBUtilities.getBroadcastAddress());
for (ColumnFamilyStore table : keyspace.getColumnFamilyStores())
{
long start = System.nanoTime();
@@ -91,37 +89,39 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
@SuppressWarnings("resource")
private void recordSizeEstimates(ColumnFamilyStore table, Collection<Range<Token>> localRanges)
{
- List<Range<Token>> unwrappedRanges = Range.normalize(localRanges);
// for each local primary range, estimate (crudely) mean partition size and partitions count.
Map<Range<Token>, Pair<Long, Long>> estimates = new HashMap<>(localRanges.size());
- for (Range<Token> range : unwrappedRanges)
+ for (Range<Token> localRange : localRanges)
{
- // filter sstables that have partitions in this range.
- Refs<SSTableReader> refs = null;
- long partitionsCount, meanPartitionSize;
-
- try
+ for (Range<Token> unwrappedRange : localRange.unwrap())
{
- while (refs == null)
+ // filter sstables that have partitions in this range.
+ Refs<SSTableReader> refs = null;
+ long partitionsCount, meanPartitionSize;
+
+ try
+ {
+ while (refs == null)
+ {
+ Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
+ SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
+ Range<PartitionPosition> r = Range.makeRowRange(unwrappedRange);
+ Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
+ refs = Refs.tryRef(canonicalSSTables);
+ }
+
+ // calculate the estimates.
+ partitionsCount = estimatePartitionsCount(refs, unwrappedRange);
+ meanPartitionSize = estimateMeanPartitionSize(refs);
+ }
+ finally
{
- Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
- SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
- Range<PartitionPosition> r = Range.makeRowRange(range);
- Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
- refs = Refs.tryRef(canonicalSSTables);
+ if (refs != null)
+ refs.release();
}
- // calculate the estimates.
- partitionsCount = estimatePartitionsCount(refs, range);
- meanPartitionSize = estimateMeanPartitionSize(refs);
- }
- finally
- {
- if (refs != null)
- refs.release();
+ estimates.put(unwrappedRange, Pair.create(partitionsCount, meanPartitionSize));
}
-
- estimates.put(range, Pair.create(partitionsCount, meanPartitionSize));
}
// atomically update the estimates.
[6/9] cassandra git commit: ninja: improve subrange repair error
message
Posted by pa...@apache.org.
ninja: improve subrange repair error message
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f02f154e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f02f154e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f02f154e
Branch: refs/heads/trunk
Commit: f02f154e47be13dd481fe7afe18183c615f39c71
Parents: af7b20b
Author: Paulo Motta <pa...@gmail.com>
Authored: Wed Feb 15 10:15:43 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:29:09 2017 -0200
----------------------------------------------------------------------
src/java/org/apache/cassandra/service/ActiveRepairService.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f02f154e/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 97c5c0a..11d4617 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -220,7 +220,10 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else if (range.intersects(toRepair))
{
- throw new IllegalArgumentException("Requested range intersects a local range but is not fully contained in one; this would lead to imprecise repair");
+ throw new IllegalArgumentException(String.format("Requested range %s intersects a local range (%s) " +
+ "but is not fully contained in one; this would lead to " +
+ "imprecise repair. keyspace: %s", toRepair.toString(),
+ range.toString(), keyspaceName));
}
}
if (rangeSuperSet == null || !replicaSets.containsKey(rangeSuperSet))
[9/9] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Posted by pa...@apache.org.
Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/31eac784
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/31eac784
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/31eac784
Branch: refs/heads/trunk
Commit: 31eac784f1bae9ec3509d7a7726d9b8725764fa0
Parents: a0827fb ef9df6e
Author: Paulo Motta <pa...@apache.org>
Authored: Wed Feb 15 10:53:21 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:53:21 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 11 ++--
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
.../cassandra/service/ActiveRepairService.java | 5 +-
4 files changed, 40 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/31eac784/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 6016674,ee5a5cb..6efcaa3
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -37,8 -7,8 +37,9 @@@
* More fixes to the TokenAllocator (CASSANDRA-12990)
* NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
Merged from 3.0:
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
+ * Obfuscate password in stress-graphs (CASSANDRA-12233)
* Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
* Reloading logback.xml does not work (CASSANDRA-13173)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/31eac784/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 9c183f6,fc27526..d936dbe
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -13,40 -13,15 +13,45 @@@ restore snapshots created with the prev
'sstableloader' tool. You can upgrade the file format of your snapshots
using the provided 'sstableupgrade' tool.
+4.0
+===
+
+New features
+------------
+ - Support for arithmetic operations between `timestamp`/`date` and `duration` has been added.
+ See CASSANDRA-11936
+ - Support for arithmetic operations on number has been added. See CASSANDRA-11935
+
- 3.11
- ====
-
+Upgrading
+---------
+ - Cassandra 4.0 removed support for the deprecated Thrift interface. Amongst
+ Tother things, this imply the removal of all yaml option related to thrift
+ ('start_rpc', rpc_port, ...).
+ - Cassandra 4.0 removed support for any pre-3.0 format. This means you
+ cannot upgrade from a 2.x version to 4.0 directly, you have to upgrade to
+ a 3.0.x/3.x version first (and run upgradesstable). In particular, this
+ mean Cassandra 4.0 cannot load or read pre-3.0 sstables in any way: you
+ will need to upgrade those sstable in 3.0.x/3.x first.
+ - Cassandra will no longer allow invalid keyspace replication options, such
+ as invalid datacenter names for NetworkTopologyStrategy. Operators MUST
+ add new nodes to a datacenter before they can set set ALTER or CREATE
+ keyspace replication policies using that datacenter. Existing keyspaces
+ will continue to operate, but CREATE and ALTER will validate that all
+ datacenters specified exist in the cluster.
+ - Cassandra 4.0 fixes a problem with incremental repair which caused repaired
+ data to be inconsistent between nodes. The fix changes the behavior of both
+ full and incremental repairs. For full repairs, data is no longer marked
+ repaired. For incremental repairs, anticompaction is run at the beginning
+ of the repair, instead of at the end.
+ 3.11.0
+ ======
+
+ Upgrading
+ ---------
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
+
3.10
====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/31eac784/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/31eac784/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
[3/9] cassandra git commit: Use keyspace replication settings on
system.size_estimates table
Posted by pa...@apache.org.
Use keyspace replication settings on system.size_estimates table
Patch by Chris Lohfink; Reviewed by Paulo Motta for CASSANDRA-9639
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/af7b20bd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/af7b20bd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/af7b20bd
Branch: refs/heads/trunk
Commit: af7b20bd0ea0d1e80553c519510c9ad9f29af64a
Parents: 76ad028
Author: Chris Lohfink <cl...@gmail.com>
Authored: Thu Jan 26 09:43:47 2017 -0600
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:27:25 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 2 +
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
3 files changed, 30 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b19550a..732e14b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.11
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
* Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 4248a6e..a5ee496 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -30,6 +30,8 @@ Upgrading
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
3.0.10
=====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
index 0b31b87..ebe3f9a 100644
--- a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
+++ b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
@@ -69,12 +69,10 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
logger.trace("Recording size estimates");
- // find primary token ranges for the local node.
- Collection<Token> localTokens = StorageService.instance.getLocalTokens();
- Collection<Range<Token>> localRanges = metadata.getPrimaryRangesFor(localTokens);
-
for (Keyspace keyspace : Keyspace.nonLocalStrategy())
{
+ Collection<Range<Token>> localRanges = StorageService.instance.getPrimaryRangesForEndpoint(keyspace.getName(),
+ FBUtilities.getBroadcastAddress());
for (ColumnFamilyStore table : keyspace.getColumnFamilyStores())
{
long start = System.nanoTime();
@@ -91,37 +89,39 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
@SuppressWarnings("resource")
private void recordSizeEstimates(ColumnFamilyStore table, Collection<Range<Token>> localRanges)
{
- List<Range<Token>> unwrappedRanges = Range.normalize(localRanges);
// for each local primary range, estimate (crudely) mean partition size and partitions count.
Map<Range<Token>, Pair<Long, Long>> estimates = new HashMap<>(localRanges.size());
- for (Range<Token> range : unwrappedRanges)
+ for (Range<Token> localRange : localRanges)
{
- // filter sstables that have partitions in this range.
- Refs<SSTableReader> refs = null;
- long partitionsCount, meanPartitionSize;
-
- try
+ for (Range<Token> unwrappedRange : localRange.unwrap())
{
- while (refs == null)
+ // filter sstables that have partitions in this range.
+ Refs<SSTableReader> refs = null;
+ long partitionsCount, meanPartitionSize;
+
+ try
+ {
+ while (refs == null)
+ {
+ Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
+ SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
+ Range<PartitionPosition> r = Range.makeRowRange(unwrappedRange);
+ Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
+ refs = Refs.tryRef(canonicalSSTables);
+ }
+
+ // calculate the estimates.
+ partitionsCount = estimatePartitionsCount(refs, unwrappedRange);
+ meanPartitionSize = estimateMeanPartitionSize(refs);
+ }
+ finally
{
- Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
- SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
- Range<PartitionPosition> r = Range.makeRowRange(range);
- Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
- refs = Refs.tryRef(canonicalSSTables);
+ if (refs != null)
+ refs.release();
}
- // calculate the estimates.
- partitionsCount = estimatePartitionsCount(refs, range);
- meanPartitionSize = estimateMeanPartitionSize(refs);
- }
- finally
- {
- if (refs != null)
- refs.release();
+ estimates.put(unwrappedRange, Pair.create(partitionsCount, meanPartitionSize));
}
-
- estimates.put(range, Pair.create(partitionsCount, meanPartitionSize));
}
// atomically update the estimates.
[2/9] cassandra git commit: Use keyspace replication settings on
system.size_estimates table
Posted by pa...@apache.org.
Use keyspace replication settings on system.size_estimates table
Patch by Chris Lohfink; Reviewed by Paulo Motta for CASSANDRA-9639
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/af7b20bd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/af7b20bd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/af7b20bd
Branch: refs/heads/cassandra-3.11
Commit: af7b20bd0ea0d1e80553c519510c9ad9f29af64a
Parents: 76ad028
Author: Chris Lohfink <cl...@gmail.com>
Authored: Thu Jan 26 09:43:47 2017 -0600
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:27:25 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 2 +
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
3 files changed, 30 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b19550a..732e14b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.11
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
* Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 4248a6e..a5ee496 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -30,6 +30,8 @@ Upgrading
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
3.0.10
=====
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af7b20bd/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
index 0b31b87..ebe3f9a 100644
--- a/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
+++ b/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
@@ -69,12 +69,10 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
logger.trace("Recording size estimates");
- // find primary token ranges for the local node.
- Collection<Token> localTokens = StorageService.instance.getLocalTokens();
- Collection<Range<Token>> localRanges = metadata.getPrimaryRangesFor(localTokens);
-
for (Keyspace keyspace : Keyspace.nonLocalStrategy())
{
+ Collection<Range<Token>> localRanges = StorageService.instance.getPrimaryRangesForEndpoint(keyspace.getName(),
+ FBUtilities.getBroadcastAddress());
for (ColumnFamilyStore table : keyspace.getColumnFamilyStores())
{
long start = System.nanoTime();
@@ -91,37 +89,39 @@ public class SizeEstimatesRecorder extends MigrationListener implements Runnable
@SuppressWarnings("resource")
private void recordSizeEstimates(ColumnFamilyStore table, Collection<Range<Token>> localRanges)
{
- List<Range<Token>> unwrappedRanges = Range.normalize(localRanges);
// for each local primary range, estimate (crudely) mean partition size and partitions count.
Map<Range<Token>, Pair<Long, Long>> estimates = new HashMap<>(localRanges.size());
- for (Range<Token> range : unwrappedRanges)
+ for (Range<Token> localRange : localRanges)
{
- // filter sstables that have partitions in this range.
- Refs<SSTableReader> refs = null;
- long partitionsCount, meanPartitionSize;
-
- try
+ for (Range<Token> unwrappedRange : localRange.unwrap())
{
- while (refs == null)
+ // filter sstables that have partitions in this range.
+ Refs<SSTableReader> refs = null;
+ long partitionsCount, meanPartitionSize;
+
+ try
+ {
+ while (refs == null)
+ {
+ Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
+ SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
+ Range<PartitionPosition> r = Range.makeRowRange(unwrappedRange);
+ Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
+ refs = Refs.tryRef(canonicalSSTables);
+ }
+
+ // calculate the estimates.
+ partitionsCount = estimatePartitionsCount(refs, unwrappedRange);
+ meanPartitionSize = estimateMeanPartitionSize(refs);
+ }
+ finally
{
- Iterable<SSTableReader> sstables = table.getTracker().getView().select(SSTableSet.CANONICAL);
- SSTableIntervalTree tree = SSTableIntervalTree.build(sstables);
- Range<PartitionPosition> r = Range.makeRowRange(range);
- Iterable<SSTableReader> canonicalSSTables = View.sstablesInBounds(r.left, r.right, tree);
- refs = Refs.tryRef(canonicalSSTables);
+ if (refs != null)
+ refs.release();
}
- // calculate the estimates.
- partitionsCount = estimatePartitionsCount(refs, range);
- meanPartitionSize = estimateMeanPartitionSize(refs);
- }
- finally
- {
- if (refs != null)
- refs.release();
+ estimates.put(unwrappedRange, Pair.create(partitionsCount, meanPartitionSize));
}
-
- estimates.put(range, Pair.create(partitionsCount, meanPartitionSize));
}
// atomically update the estimates.
[4/9] cassandra git commit: ninja: improve subrange repair error
message
Posted by pa...@apache.org.
ninja: improve subrange repair error message
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f02f154e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f02f154e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f02f154e
Branch: refs/heads/cassandra-3.0
Commit: f02f154e47be13dd481fe7afe18183c615f39c71
Parents: af7b20b
Author: Paulo Motta <pa...@gmail.com>
Authored: Wed Feb 15 10:15:43 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:29:09 2017 -0200
----------------------------------------------------------------------
src/java/org/apache/cassandra/service/ActiveRepairService.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f02f154e/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 97c5c0a..11d4617 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -220,7 +220,10 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else if (range.intersects(toRepair))
{
- throw new IllegalArgumentException("Requested range intersects a local range but is not fully contained in one; this would lead to imprecise repair");
+ throw new IllegalArgumentException(String.format("Requested range %s intersects a local range (%s) " +
+ "but is not fully contained in one; this would lead to " +
+ "imprecise repair. keyspace: %s", toRepair.toString(),
+ range.toString(), keyspaceName));
}
}
if (rangeSuperSet == null || !replicaSets.containsKey(rangeSuperSet))
[8/9] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by pa...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ef9df6e0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef9df6e0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef9df6e0
Branch: refs/heads/trunk
Commit: ef9df6e053f6d094f8f031a80612c1a63482d351
Parents: 515e4a2 f02f154
Author: Paulo Motta <pa...@apache.org>
Authored: Wed Feb 15 10:48:22 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:48:22 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 4 +-
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
.../cassandra/service/ActiveRepairService.java | 5 +-
4 files changed, 34 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 8164a52,732e14b..ee5a5cb
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,14 -1,7 +1,15 @@@
-3.0.11
+3.11.0
+ * Obfuscate password in stress-graphs (CASSANDRA-12233)
+ * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
+ * nodetool stopdaemon errors out (CASSANDRA-13030)
+ * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
+ * Fix primary index calculation for SASI (CASSANDRA-12910)
+ * More fixes to the TokenAllocator (CASSANDRA-12990)
+ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
+Merged from 3.0:
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
- * Hint related logging should include the IP address of the destination in addition to
+ * Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
* Reloading logback.xml does not work (CASSANDRA-13173)
* Lightweight transactions temporarily fail after upgrade from 2.1 to 3.0 (CASSANDRA-13109)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 35ef9a5,a5ee496..fc27526
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -19,139 -18,32 +19,139 @@@ using the provided 'sstableupgrade' too
Upgrading
---------
- - Nothing specific to this release, but please read all notes back to your
- current version if you are upgrading.
- - Support for alter types of already defined tables and of UDTs fields has been disabled.
- If it is necessary to return a different type, please use casting instead. See
- CASSANDRA-12443 for more details.
- - Specifying the default_time_to_live option when creating or altering a
- materialized view was erroneously accepted (and ignored). It is now
- properly rejected.
- - Only Java and JavaScript are now supported UDF languages.
- The sandbox in 3.0 already prevented the use of script languages except Java
- and JavaScript.
- - Compaction now correctly drops sstables out of CompactionTask when there
- isn't enough disk space to perform the full compaction. This should reduce
- pending compaction tasks on systems with little remaining disk space.
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
-3.0.10
-=====
+3.10
+====
-Upgrading
----------
- - memtable_allocation_type: offheap_buffers is no longer allowed to be specified in the 3.0 series.
- This was an oversight that can cause segfaults. Offheap was re-introduced in 3.4 see CASSANDRA-11039
- and CASSANDRA-9472 for details.
+New features
+------------
+ - New `DurationType` (cql duration). See CASSANDRA-11873
+ - Runtime modification of concurrent_compactors is now available via nodetool
+ - Support for the assignment operators +=/-= has been added for update queries.
+ - An Index implementation may now provide a task which runs prior to joining
+ the ring. See CASSANDRA-12039
+ - Filtering on partition key columns is now also supported for queries without
+ secondary indexes.
+ - A slow query log has been added: slow queries will be logged at DEBUG level.
+ For more details refer to CASSANDRA-12403 and slow_query_log_timeout_in_ms
+ in cassandra.yaml.
+ - Support for GROUP BY queries has been added.
+ - A new compaction-stress tool has been added to test the throughput of compaction
+ for any cassandra-stress user schema. see compaction-stress help for how to use.
+ - Compaction can now take into account overlapping tables that don't take part
+ in the compaction to look for deleted or overwritten data in the compacted tables.
+ Then such data is found, it can be safely discarded, which in turn should enable
+ the removal of tombstones over that data.
+
+ The behavior can be engaged in two ways:
+ - as a "nodetool garbagecollect -g CELL/ROW" operation, which applies
+ single-table compaction on all sstables to discard deleted data in one step.
+ - as a "provide_overlapping_tombstones:CELL/ROW/NONE" compaction strategy flag,
+ which uses overlapping tables as a source of deletions/overwrites during all
+ compactions.
+ The argument specifies the granularity at which deleted data is to be found:
+ - If ROW is specified, only whole deleted rows (or sets of rows) will be
+ discarded.
+ - If CELL is specified, any columns whose value is overwritten or deleted
+ will also be discarded.
+ - NONE (default) specifies the old behavior, overlapping tables are not used to
+ decide when to discard data.
+ Which option to use depends on your workload, both ROW and CELL increase the
+ disk load on compaction (especially with the size-tiered compaction strategy),
+ with CELL being more resource-intensive. Both should lead to better read
+ performance if deleting rows (resp. overwriting or deleting cells) is common.
+ - Prepared statements are now persisted in the table prepared_statements in
+ the system keyspace. Upon startup, this table is used to preload all
+ previously prepared statements - i.e. in many cases clients do not need to
+ re-prepare statements against restarted nodes.
+ - cqlsh can now connect to older Cassandra versions by downgrading the native
+ protocol version. Please note that this is currently not part of our release
+ testing and, as a consequence, it is not guaranteed to work in all cases.
+ See CASSANDRA-12150 for more details.
+ - Snapshots that are automatically taken before a table is dropped or truncated
+ will have a "dropped" or "truncated" prefix on their snapshot tag name.
+ - Metrics are exposed for successful and failed authentication attempts.
+ These can be located using the object names org.apache.cassandra.metrics:type=Client,name=AuthSuccess
+ and org.apache.cassandra.metrics:type=Client,name=AuthFailure respectively.
+ - Add support to "unset" JSON fields in prepared statements by specifying DEFAULT UNSET.
+ See CASSANDRA-11424 for details
+ - Allow TTL with null value on insert and update. It will be treated as equivalent to inserting a 0.
+ - Removed outboundBindAny configuration property. See CASSANDRA-12673 for details.
+
+Upgrading
+---------
+ - Support for alter types of already defined tables and of UDTs fields has been disabled.
+ If it is necessary to return a different type, please use casting instead. See
+ CASSANDRA-12443 for more details.
+ - Specifying the default_time_to_live option when creating or altering a
+ materialized view was erroneously accepted (and ignored). It is now
+ properly rejected.
+ - Only Java and JavaScript are now supported UDF languages.
+ The sandbox in 3.0 already prevented the use of script languages except Java
+ and JavaScript.
+ - Compaction now correctly drops sstables out of CompactionTask when there
+ isn't enough disk space to perform the full compaction. This should reduce
+ pending compaction tasks on systems with little remaining disk space.
+ - Request timeouts in cassandra.yaml (read_request_timeout_in_ms, etc) now apply to the
+ "full" request time on the coordinator. Previously, they only covered the time from
+ when the coordinator sent a message to a replica until the time that the replica
+ responded. Additionally, the previous behavior was to reset the timeout when performing
+ a read repair, making a second read to fix a short read, and when subranges were read
+ as part of a range scan or secondary index query. In 3.10 and higher, the timeout
+ is no longer reset for these "subqueries". The entire request must complete within
+ the specified timeout. As a consequence, your timeouts may need to be adjusted
+ to account for this. See CASSANDRA-12256 for more details.
+ - Logs written to stdout are now consistent with logs written to files.
+ Time is now local (it was UTC on the console and local in files). Date, thread, file
+ and line info where added to stdout. (see CASSANDRA-12004)
+ - The 'clientutil' jar, which has been somewhat broken on the 3.x branch, is not longer provided.
+ The features provided by that jar are provided by any good java driver and we advise relying on drivers rather on
+ that jar, but if you need that jar for backward compatiblity until you do so, you should use the version provided
+ on previous Cassandra branch, like the 3.0 branch (by design, the functionality provided by that jar are stable
+ accross versions so using the 3.0 jar for a client connecting to 3.x should work without issues).
+ - (Tools development) DatabaseDescriptor no longer implicitly startups components/services like
+ commit log replay. This may break existing 3rd party tools and clients. In order to startup
+ a standalone tool or client application, use the DatabaseDescriptor.toolInitialization() or
+ DatabaseDescriptor.clientInitialization() methods. Tool initialization sets up partitioner,
+ snitch, encryption context. Client initialization just applies the configuration but does not
+ setup anything. Instead of using Config.setClientMode() or Config.isClientMode(), which are
+ deprecated now, use one of the appropiate new methods in DatabaseDescriptor.
+ - Application layer keep-alives were added to the streaming protocol to prevent idle incoming connections from
+ timing out and failing the stream session (CASSANDRA-11839). This effectively deprecates the streaming_socket_timeout_in_ms
+ property in favor of streaming_keep_alive_period_in_secs. See cassandra.yaml for more details about this property.
+ - Duration litterals support the ISO 8601 format. By consequence, identifiers matching that format
+ (e.g P2Y or P1MT6H) will not be supported anymore (CASSANDRA-11873).
+
+3.8
+===
-3.0.9
-=====
+New features
+------------
+ - Shared pool threads are now named according to the stage they are executing
+ tasks for. Thread names mentioned in traced queries change accordingly.
+ - A new option has been added to cassandra-stress "-rate fixed={number}/s"
+ that forces a scheduled rate of operations/sec over time. Using this, stress can
+ accurately account for coordinated ommission from the stress process.
+ - The cassandra-stress "-rate limit=" option has been renamed to "-rate throttle="
+ - hdr histograms have been added to stress runs, it's output can be saved to disk using:
+ "-log hdrfile=" option. This histogram includes response/service/wait times when used with the
+ fixed or throttle rate options. The histogram file can be plotted on
+ http://hdrhistogram.github.io/HdrHistogram/plotFiles.html
+ - TimeWindowCompactionStrategy has been added. This has proven to be a better approach
+ to time series compaction and new tables should use this instead of DTCS. See
+ CASSANDRA-9666 for details.
+ - Change-Data-Capture is now available. See cassandra.yaml and for cdc-specific flags and
+ a brief explanation of on-disk locations for archived data in CommitLog form. This can
+ be enabled via ALTER TABLE ... WITH cdc=true.
+ Upon flush, CommitLogSegments containing data for CDC-enabled tables are moved to
+ the data/cdc_raw directory until removed by the user and writes to CDC-enabled tables
+ will be rejected with a WriteTimeoutException once cdc_total_space_in_mb is reached
+ between unflushed CommitLogSegments and cdc_raw.
+ NOTE: CDC is disabled by default in the .yaml file. Do not enable CDC on a mixed-version
+ cluster as it will lead to exceptions which can interrupt traffic. Once all nodes
+ have been upgraded to 3.8 it is safe to enable this feature and restart the cluster.
Upgrading
---------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
[7/9] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by pa...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ef9df6e0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ef9df6e0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ef9df6e0
Branch: refs/heads/cassandra-3.11
Commit: ef9df6e053f6d094f8f031a80612c1a63482d351
Parents: 515e4a2 f02f154
Author: Paulo Motta <pa...@apache.org>
Authored: Wed Feb 15 10:48:22 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:48:22 2017 -0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
NEWS.txt | 4 +-
.../cassandra/db/SizeEstimatesRecorder.java | 54 ++++++++++----------
.../cassandra/service/ActiveRepairService.java | 5 +-
4 files changed, 34 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 8164a52,732e14b..ee5a5cb
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,14 -1,7 +1,15 @@@
-3.0.11
+3.11.0
+ * Obfuscate password in stress-graphs (CASSANDRA-12233)
+ * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034)
+ * nodetool stopdaemon errors out (CASSANDRA-13030)
+ * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954)
+ * Fix primary index calculation for SASI (CASSANDRA-12910)
+ * More fixes to the TokenAllocator (CASSANDRA-12990)
+ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983)
+Merged from 3.0:
+ * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639)
* Add vm.max_map_count StartupCheck (CASSANDRA-13008)
- * Hint related logging should include the IP address of the destination in addition to
+ * Hint related logging should include the IP address of the destination in addition to
host ID (CASSANDRA-13205)
* Reloading logback.xml does not work (CASSANDRA-13173)
* Lightweight transactions temporarily fail after upgrade from 2.1 to 3.0 (CASSANDRA-13109)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 35ef9a5,a5ee496..fc27526
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -19,139 -18,32 +19,139 @@@ using the provided 'sstableupgrade' too
Upgrading
---------
- - Nothing specific to this release, but please read all notes back to your
- current version if you are upgrading.
- - Support for alter types of already defined tables and of UDTs fields has been disabled.
- If it is necessary to return a different type, please use casting instead. See
- CASSANDRA-12443 for more details.
- - Specifying the default_time_to_live option when creating or altering a
- materialized view was erroneously accepted (and ignored). It is now
- properly rejected.
- - Only Java and JavaScript are now supported UDF languages.
- The sandbox in 3.0 already prevented the use of script languages except Java
- and JavaScript.
- - Compaction now correctly drops sstables out of CompactionTask when there
- isn't enough disk space to perform the full compaction. This should reduce
- pending compaction tasks on systems with little remaining disk space.
+ - Primary ranges in the system.size_estimates table are now based on the keyspace
+ replication settings and adjacent ranges are no longer merged (CASSANDRA-9639).
-3.0.10
-=====
+3.10
+====
-Upgrading
----------
- - memtable_allocation_type: offheap_buffers is no longer allowed to be specified in the 3.0 series.
- This was an oversight that can cause segfaults. Offheap was re-introduced in 3.4 see CASSANDRA-11039
- and CASSANDRA-9472 for details.
+New features
+------------
+ - New `DurationType` (cql duration). See CASSANDRA-11873
+ - Runtime modification of concurrent_compactors is now available via nodetool
+ - Support for the assignment operators +=/-= has been added for update queries.
+ - An Index implementation may now provide a task which runs prior to joining
+ the ring. See CASSANDRA-12039
+ - Filtering on partition key columns is now also supported for queries without
+ secondary indexes.
+ - A slow query log has been added: slow queries will be logged at DEBUG level.
+ For more details refer to CASSANDRA-12403 and slow_query_log_timeout_in_ms
+ in cassandra.yaml.
+ - Support for GROUP BY queries has been added.
+ - A new compaction-stress tool has been added to test the throughput of compaction
+ for any cassandra-stress user schema. see compaction-stress help for how to use.
+ - Compaction can now take into account overlapping tables that don't take part
+ in the compaction to look for deleted or overwritten data in the compacted tables.
+ Then such data is found, it can be safely discarded, which in turn should enable
+ the removal of tombstones over that data.
+
+ The behavior can be engaged in two ways:
+ - as a "nodetool garbagecollect -g CELL/ROW" operation, which applies
+ single-table compaction on all sstables to discard deleted data in one step.
+ - as a "provide_overlapping_tombstones:CELL/ROW/NONE" compaction strategy flag,
+ which uses overlapping tables as a source of deletions/overwrites during all
+ compactions.
+ The argument specifies the granularity at which deleted data is to be found:
+ - If ROW is specified, only whole deleted rows (or sets of rows) will be
+ discarded.
+ - If CELL is specified, any columns whose value is overwritten or deleted
+ will also be discarded.
+ - NONE (default) specifies the old behavior, overlapping tables are not used to
+ decide when to discard data.
+ Which option to use depends on your workload, both ROW and CELL increase the
+ disk load on compaction (especially with the size-tiered compaction strategy),
+ with CELL being more resource-intensive. Both should lead to better read
+ performance if deleting rows (resp. overwriting or deleting cells) is common.
+ - Prepared statements are now persisted in the table prepared_statements in
+ the system keyspace. Upon startup, this table is used to preload all
+ previously prepared statements - i.e. in many cases clients do not need to
+ re-prepare statements against restarted nodes.
+ - cqlsh can now connect to older Cassandra versions by downgrading the native
+ protocol version. Please note that this is currently not part of our release
+ testing and, as a consequence, it is not guaranteed to work in all cases.
+ See CASSANDRA-12150 for more details.
+ - Snapshots that are automatically taken before a table is dropped or truncated
+ will have a "dropped" or "truncated" prefix on their snapshot tag name.
+ - Metrics are exposed for successful and failed authentication attempts.
+ These can be located using the object names org.apache.cassandra.metrics:type=Client,name=AuthSuccess
+ and org.apache.cassandra.metrics:type=Client,name=AuthFailure respectively.
+ - Add support to "unset" JSON fields in prepared statements by specifying DEFAULT UNSET.
+ See CASSANDRA-11424 for details
+ - Allow TTL with null value on insert and update. It will be treated as equivalent to inserting a 0.
+ - Removed outboundBindAny configuration property. See CASSANDRA-12673 for details.
+
+Upgrading
+---------
+ - Support for alter types of already defined tables and of UDTs fields has been disabled.
+ If it is necessary to return a different type, please use casting instead. See
+ CASSANDRA-12443 for more details.
+ - Specifying the default_time_to_live option when creating or altering a
+ materialized view was erroneously accepted (and ignored). It is now
+ properly rejected.
+ - Only Java and JavaScript are now supported UDF languages.
+ The sandbox in 3.0 already prevented the use of script languages except Java
+ and JavaScript.
+ - Compaction now correctly drops sstables out of CompactionTask when there
+ isn't enough disk space to perform the full compaction. This should reduce
+ pending compaction tasks on systems with little remaining disk space.
+ - Request timeouts in cassandra.yaml (read_request_timeout_in_ms, etc) now apply to the
+ "full" request time on the coordinator. Previously, they only covered the time from
+ when the coordinator sent a message to a replica until the time that the replica
+ responded. Additionally, the previous behavior was to reset the timeout when performing
+ a read repair, making a second read to fix a short read, and when subranges were read
+ as part of a range scan or secondary index query. In 3.10 and higher, the timeout
+ is no longer reset for these "subqueries". The entire request must complete within
+ the specified timeout. As a consequence, your timeouts may need to be adjusted
+ to account for this. See CASSANDRA-12256 for more details.
+ - Logs written to stdout are now consistent with logs written to files.
+ Time is now local (it was UTC on the console and local in files). Date, thread, file
+ and line info where added to stdout. (see CASSANDRA-12004)
+ - The 'clientutil' jar, which has been somewhat broken on the 3.x branch, is not longer provided.
+ The features provided by that jar are provided by any good java driver and we advise relying on drivers rather on
+ that jar, but if you need that jar for backward compatiblity until you do so, you should use the version provided
+ on previous Cassandra branch, like the 3.0 branch (by design, the functionality provided by that jar are stable
+ accross versions so using the 3.0 jar for a client connecting to 3.x should work without issues).
+ - (Tools development) DatabaseDescriptor no longer implicitly startups components/services like
+ commit log replay. This may break existing 3rd party tools and clients. In order to startup
+ a standalone tool or client application, use the DatabaseDescriptor.toolInitialization() or
+ DatabaseDescriptor.clientInitialization() methods. Tool initialization sets up partitioner,
+ snitch, encryption context. Client initialization just applies the configuration but does not
+ setup anything. Instead of using Config.setClientMode() or Config.isClientMode(), which are
+ deprecated now, use one of the appropiate new methods in DatabaseDescriptor.
+ - Application layer keep-alives were added to the streaming protocol to prevent idle incoming connections from
+ timing out and failing the stream session (CASSANDRA-11839). This effectively deprecates the streaming_socket_timeout_in_ms
+ property in favor of streaming_keep_alive_period_in_secs. See cassandra.yaml for more details about this property.
+ - Duration litterals support the ISO 8601 format. By consequence, identifiers matching that format
+ (e.g P2Y or P1MT6H) will not be supported anymore (CASSANDRA-11873).
+
+3.8
+===
-3.0.9
-=====
+New features
+------------
+ - Shared pool threads are now named according to the stage they are executing
+ tasks for. Thread names mentioned in traced queries change accordingly.
+ - A new option has been added to cassandra-stress "-rate fixed={number}/s"
+ that forces a scheduled rate of operations/sec over time. Using this, stress can
+ accurately account for coordinated ommission from the stress process.
+ - The cassandra-stress "-rate limit=" option has been renamed to "-rate throttle="
+ - hdr histograms have been added to stress runs, it's output can be saved to disk using:
+ "-log hdrfile=" option. This histogram includes response/service/wait times when used with the
+ fixed or throttle rate options. The histogram file can be plotted on
+ http://hdrhistogram.github.io/HdrHistogram/plotFiles.html
+ - TimeWindowCompactionStrategy has been added. This has proven to be a better approach
+ to time series compaction and new tables should use this instead of DTCS. See
+ CASSANDRA-9666 for details.
+ - Change-Data-Capture is now available. See cassandra.yaml and for cdc-specific flags and
+ a brief explanation of on-disk locations for archived data in CommitLog form. This can
+ be enabled via ALTER TABLE ... WITH cdc=true.
+ Upon flush, CommitLogSegments containing data for CDC-enabled tables are moved to
+ the data/cdc_raw directory until removed by the user and writes to CDC-enabled tables
+ will be rejected with a WriteTimeoutException once cdc_total_space_in_mb is reached
+ between unflushed CommitLogSegments and cdc_raw.
+ NOTE: CDC is disabled by default in the .yaml file. Do not enable CDC on a mixed-version
+ cluster as it will lead to exceptions which can interrupt traffic. Once all nodes
+ have been upgraded to 3.8 it is safe to enable this feature and restart the cluster.
Upgrading
---------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ef9df6e0/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
[5/9] cassandra git commit: ninja: improve subrange repair error
message
Posted by pa...@apache.org.
ninja: improve subrange repair error message
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f02f154e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f02f154e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f02f154e
Branch: refs/heads/cassandra-3.11
Commit: f02f154e47be13dd481fe7afe18183c615f39c71
Parents: af7b20b
Author: Paulo Motta <pa...@gmail.com>
Authored: Wed Feb 15 10:15:43 2017 -0200
Committer: Paulo Motta <pa...@apache.org>
Committed: Wed Feb 15 10:29:09 2017 -0200
----------------------------------------------------------------------
src/java/org/apache/cassandra/service/ActiveRepairService.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f02f154e/src/java/org/apache/cassandra/service/ActiveRepairService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ActiveRepairService.java b/src/java/org/apache/cassandra/service/ActiveRepairService.java
index 97c5c0a..11d4617 100644
--- a/src/java/org/apache/cassandra/service/ActiveRepairService.java
+++ b/src/java/org/apache/cassandra/service/ActiveRepairService.java
@@ -220,7 +220,10 @@ public class ActiveRepairService implements IEndpointStateChangeSubscriber, IFai
}
else if (range.intersects(toRepair))
{
- throw new IllegalArgumentException("Requested range intersects a local range but is not fully contained in one; this would lead to imprecise repair");
+ throw new IllegalArgumentException(String.format("Requested range %s intersects a local range (%s) " +
+ "but is not fully contained in one; this would lead to " +
+ "imprecise repair. keyspace: %s", toRepair.toString(),
+ range.toString(), keyspaceName));
}
}
if (rangeSuperSet == null || !replicaSets.containsKey(rangeSuperSet))