Log more information when exceeding tombstone_warn_threshold patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-6865
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/57c5969e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/57c5969e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/57c5969e Branch: refs/heads/trunk Commit: 57c5969e1dac82c6a676668edf1dc5ba64bcbf1f Parents: 7ce3950 Author: Jonathan Ellis <[email protected]> Authored: Fri Mar 14 15:39:19 2014 -0500 Committer: Jonathan Ellis <[email protected]> Committed: Fri Mar 14 15:39:19 2014 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../cassandra/db/filter/SliceQueryFilter.java | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/57c5969e/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 045e4f8..61b1ee1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.7 + * Log more information when exceeding tombstone_warn_threshold (CASSANDRA-6865) * Fix truncate to not abort due to unreachable fat clients (CASSANDRA-6864) * Fix schema concurrency exceptions (CASSANDRA-6841) * Fix leaking validator FH in StreamWriter (CASSANDRA-6832) http://git-wip-us.apache.org/repos/asf/cassandra/blob/57c5969e/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java index b43308f..356418e 100644 --- a/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java +++ b/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java @@ -207,8 +207,24 @@ public class SliceQueryFilter implements IDiskAtomFilter Tracing.trace("Read {} live and {} tombstoned cells", columnCounter.live(), columnCounter.ignored()); if (respectTombstoneThresholds() && columnCounter.ignored() > DatabaseDescriptor.getTombstoneWarnThreshold()) - logger.warn("Read {} live and {} tombstoned cells in {}.{} (see tombstone_warn_threshold)", - columnCounter.live(), columnCounter.ignored(), container.metadata().ksName, container.metadata().cfName); + { + StringBuilder sb = new StringBuilder(); + AbstractType<?> type = container.metadata().comparator; + for (ColumnSlice sl : slices) + { + if (sl == null) + continue; + + sb.append('['); + sb.append(type.getString(sl.start)); + sb.append('-'); + sb.append(type.getString(sl.finish)); + sb.append(']'); + } + + logger.warn("Read {} live and {} tombstoned cells in {}.{} (see tombstone_warn_threshold). {} columns was requested, slices={}, delInfo={}", + columnCounter.live(), columnCounter.ignored(), container.metadata().ksName, container.metadata().cfName, count, sb, container.deletionInfo()); + } } protected boolean respectTombstoneThresholds()
