You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2016/02/23 11:16:51 UTC
[02/13] cassandra git commit: Merge branch cassandra-2.1 into
cassandra-2.2
Merge branch cassandra-2.1 into cassandra-2.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbf30d21
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbf30d21
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbf30d21
Branch: refs/heads/trunk
Commit: fbf30d2199582d3c8e24cc7efcdaedc3a2b7b68e
Parents: 61ac125 14a2157
Author: Benjamin Lerer <b....@gmail.com>
Authored: Mon Feb 22 12:13:51 2016 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Mon Feb 22 12:19:31 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/db/RowIteratorFactory.java | 20 ++++++--------------
.../cassandra/db/filter/ExtendedFilter.java | 10 +---------
.../cassandra/db/filter/SliceQueryFilter.java | 3 ++-
.../filter/TombstoneOverwhelmingException.java | 14 ++++----------
5 files changed, 14 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 9d0046b,ef8c5a7..e3d6f95
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,21 -1,5 +1,22 @@@
-2.1.14
+2.2.6
+ * Replacing an aggregate with a new version doesn't reset INITCOND (CASSANDRA-10840)
+ * (cqlsh) cqlsh cannot be called through symlink (CASSANDRA-11037)
+ * fix ohc and java-driver pom dependencies in build.xml (CASSANDRA-10793)
+ * Protect from keyspace dropped during repair (CASSANDRA-11065)
+ * Handle adding fields to a UDT in SELECT JSON and toJson() (CASSANDRA-11146)
+ * Better error message for cleanup (CASSANDRA-10991)
+ * cqlsh pg-style-strings broken if line ends with ';' (CASSANDRA-11123)
+ * Use cloned TokenMetadata in size estimates to avoid race against membership check
+ (CASSANDRA-10736)
+ * Always persist upsampled index summaries (CASSANDRA-10512)
+ * (cqlsh) Fix inconsistent auto-complete (CASSANDRA-10733)
+ * Make SELECT JSON and toJson() threadsafe (CASSANDRA-11048)
+ * Fix SELECT on tuple relations for mixed ASC/DESC clustering order (CASSANDRA-7281)
+ * (cqlsh) Support utf-8/cp65001 encoding on Windows (CASSANDRA-11030)
+ * Fix paging on DISTINCT queries repeats result when first row in partition changes
+ (CASSANDRA-10010)
+Merged from 2.1:
+ * Add partition key to TombstoneOverwhelmingException error message (CASSANDRA-10888)
* Use logback setting for 'cassandra -v' command (CASSANDRA-10767)
* Fix sstableloader to unthrottle streaming by default (CASSANDRA-9714)
* Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/RowIteratorFactory.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/ExtendedFilter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
index d2f0bf4,957d1ba..822d838
--- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
+++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
@@@ -278,23 -278,37 +278,24 @@@ public class SliceQueryFilter implement
if (respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneFailureThreshold())
{
- Tracing.trace("Scanned over {} tombstones; query aborted (see tombstone_failure_threshold)",
- DatabaseDescriptor.getTombstoneFailureThreshold());
- String msg = String.format("Scanned over %d tombstones in %s.%s for key: %1.512s; query aborted (see tombstone_failure_threshold).",
- DatabaseDescriptor.getTombstoneFailureThreshold(),
- container.metadata().ksName,
- container.metadata().cfName,
- container.metadata().getKeyValidator().getString(key.getKey()));
- logger.error(msg);
- throw new TombstoneOverwhelmingException();
+ Tracing.trace("Scanned over {} tombstones; query aborted (see tombstone_failure_threshold); slices={}",
+ DatabaseDescriptor.getTombstoneFailureThreshold(), getSlicesInfo(container));
+
+ throw new TombstoneOverwhelmingException(columnCounter.tombstones(),
+ count,
+ container.metadata().ksName,
+ container.metadata().cfName,
+ container.getComparator().getString(cell.name()),
- getSlicesInfo(container));
++ getSlicesInfo(container),
++ container.metadata().getKeyValidator().getString(key.getKey()));
}
- container.maybeAppendColumn(cell, tester, gcBefore);
+ container.appendColumn(cell);
}
- Tracing.trace("Read {} live and {} tombstone cells", columnCounter.live(), columnCounter.tombstones());
- if (logger.isWarnEnabled() && respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneWarnThreshold())
+ boolean warnTombstones = logger.isWarnEnabled() && respectTombstoneThresholds() && columnCounter.tombstones() > DatabaseDescriptor.getTombstoneWarnThreshold();
+ if (warnTombstones)
{
- StringBuilder sb = new StringBuilder();
- CellNameType type = container.metadata().comparator;
-
- for (ColumnSlice sl : slices)
- {
- assert sl != null;
-
- sb.append('[');
- sb.append(type.getString(sl.start));
- sb.append('-');
- sb.append(type.getString(sl.finish));
- sb.append(']');
- }
-
String msg = String.format("Read %d live and %d tombstone cells in %s.%s for key: %1.512s (see tombstone_warn_threshold). %d columns were requested, slices=%1.512s",
columnCounter.live(),
columnCounter.tombstones(),
http://git-wip-us.apache.org/repos/asf/cassandra/blob/fbf30d21/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
index 7624e1b,6a6b0f6..da4e30f
--- a/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
+++ b/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java
@@@ -18,49 -18,6 +18,43 @@@
*/
package org.apache.cassandra.db.filter;
- import org.apache.cassandra.db.DecoratedKey;
-
public class TombstoneOverwhelmingException extends RuntimeException
{
+ private final int numTombstones;
+ private final int numRequested;
+ private final String ksName;
+ private final String cfName;
+ private final String lastCellName;
+ private final String slicesInfo;
- private String partitionKey = null;
++ private final String partitionKey;
+
+ public TombstoneOverwhelmingException(int numTombstones,
+ int numRequested,
+ String ksName,
+ String cfName,
+ String lastCellName,
- String slicesInfo)
++ String slicesInfo,
++ String partitionKey)
+ {
+ this.numTombstones = numTombstones;
+ this.numRequested = numRequested;
+ this.ksName = ksName;
+ this.cfName = cfName;
+ this.lastCellName = lastCellName;
+ this.slicesInfo = slicesInfo;
- }
-
- public void setKey(DecoratedKey key)
- {
- if (key != null)
- partitionKey = key.toString();
++ this.partitionKey = partitionKey;
+ }
+
+ public String getLocalizedMessage()
+ {
+ return getMessage();
+ }
+
+ public String getMessage()
+ {
+ return String.format(
+ "Scanned over %d tombstones in %s.%s; %d columns were requested; query aborted " +
+ "(see tombstone_failure_threshold); partitionKey=%s; lastCell=%s; slices=%s",
+ numTombstones, ksName, cfName, numRequested, partitionKey, lastCellName, slicesInfo);
+ }
}