Updated Branches: refs/heads/trunk e27a95587 -> 08e289177
Better printing of AbstractBounds in traces patch by slebresne; reviewed by jbellis for CASSANDRA-4905 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/08e28917 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/08e28917 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/08e28917 Branch: refs/heads/trunk Commit: 08e289177906b15f28c7a60ddcf6c21f69ad4d45 Parents: 9a89eef Author: Sylvain Lebresne <[email protected]> Authored: Thu Nov 8 15:59:00 2012 +0100 Committer: Sylvain Lebresne <[email protected]> Committed: Thu Nov 8 15:59:00 2012 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 4 +- .../org/apache/cassandra/dht/AbstractBounds.java | 22 +++++++++++++++ src/java/org/apache/cassandra/dht/Bounds.java | 10 +++++++ .../org/apache/cassandra/dht/ExcludingBounds.java | 10 +++++++ .../cassandra/dht/IncludingExcludingBounds.java | 12 +++++++- src/java/org/apache/cassandra/dht/Range.java | 10 +++++++ 7 files changed, 66 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 9bc4478..ba9e134 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,6 +2,7 @@ * Don't share slice query filter in CQL3 SelectStatement (CASSANDRA-4928) * Separate tracing from Log4J (CASSANDRA-4861) * Exclude gcable tombstones from merkle-tree computation (CASSANDRA-4905) + * Better printing of AbstractBounds for tracing (CASSANDRA-4931) 1.2-beta2 * fp rate of 1.0 disables BF entirely; LCS defaults to 1.0 (CASSANDRA-4876) http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 199d07a..882a322 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -1387,7 +1387,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean QueryFilter filter = new QueryFilter(null, new QueryPath(columnFamily, superColumn, null), columnFilter); final ViewFragment view = markReferenced(startWith, stopAt); - Tracing.trace("Executing seq scan across {} sstables for {}..{}", new Object[]{view.sstables.size(), startWith, stopAt}); + Tracing.trace("Executing seq scan across {} sstables for {}", view.sstables.size(), range.getString(metadata.getKeyValidator())); try { @@ -1453,7 +1453,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean public List<Row> search(List<IndexExpression> clause, AbstractBounds<RowPosition> range, int maxResults, IDiskAtomFilter dataFilter, boolean maxIsColumns) { - Tracing.trace("Executing indexed scan for {}..{}", range.left, range.right); + Tracing.trace("Executing indexed scan for {}", range.getString(metadata.getKeyValidator())); return indexManager.search(clause, range, maxResults, dataFilter, maxIsColumns); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/dht/AbstractBounds.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/dht/AbstractBounds.java b/src/java/org/apache/cassandra/dht/AbstractBounds.java index f2ae5c3..b5ce85d 100644 --- a/src/java/org/apache/cassandra/dht/AbstractBounds.java +++ b/src/java/org/apache/cassandra/dht/AbstractBounds.java @@ -23,8 +23,10 @@ import java.io.IOException; import java.io.Serializable; import java.util.*; +import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.db.TypeSizes; import org.apache.cassandra.db.RowPosition; +import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.io.IVersionedSerializer; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.utils.Pair; @@ -89,6 +91,26 @@ public abstract class AbstractBounds<T extends RingPosition> implements Serializ public abstract List<? extends AbstractBounds<T>> unwrap(); + public String getString(AbstractType<?> keyValidator) + { + return getOpeningString() + format(left, keyValidator) + ", " + format(right, keyValidator) + getClosingString(); + } + + private String format(T value, AbstractType<?> keyValidator) + { + if (value instanceof DecoratedKey) + { + return keyValidator.getString(((DecoratedKey)value).key); + } + else + { + return value.toString(); + } + } + + protected abstract String getOpeningString(); + protected abstract String getClosingString(); + /** * Transform this abstract bounds to equivalent covering bounds of row positions. * If this abstract bounds was already an abstractBounds of row positions, this is a noop. http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/dht/Bounds.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/dht/Bounds.java b/src/java/org/apache/cassandra/dht/Bounds.java index 7da30bc..bf579ae 100644 --- a/src/java/org/apache/cassandra/dht/Bounds.java +++ b/src/java/org/apache/cassandra/dht/Bounds.java @@ -88,6 +88,16 @@ public class Bounds<T extends RingPosition> extends AbstractBounds<T> return "[" + left + "," + right + "]"; } + protected String getOpeningString() + { + return "["; + } + + protected String getClosingString() + { + return "]"; + } + /** * Compute a bounds of keys corresponding to a given bounds of token. */ http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/dht/ExcludingBounds.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/dht/ExcludingBounds.java b/src/java/org/apache/cassandra/dht/ExcludingBounds.java index 0bde8f1..7823023 100644 --- a/src/java/org/apache/cassandra/dht/ExcludingBounds.java +++ b/src/java/org/apache/cassandra/dht/ExcludingBounds.java @@ -77,6 +77,16 @@ public class ExcludingBounds<T extends RingPosition> extends AbstractBounds<T> return "(" + left + "," + right + ")"; } + protected String getOpeningString() + { + return "("; + } + + protected String getClosingString() + { + return ")"; + } + /** * Compute a bounds of keys corresponding to a given bounds of token. */ http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java b/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java index 9c0f6dd..0b1cb0b 100644 --- a/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java +++ b/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java @@ -73,7 +73,17 @@ public class IncludingExcludingBounds<T extends RingPosition> extends AbstractBo @Override public String toString() { - return "(" + left + "," + right + ")"; + return "[" + left + "," + right + ")"; + } + + protected String getOpeningString() + { + return "["; + } + + protected String getClosingString() + { + return ")"; } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/08e28917/src/java/org/apache/cassandra/dht/Range.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/dht/Range.java b/src/java/org/apache/cassandra/dht/Range.java index f32c938..a750ae2 100644 --- a/src/java/org/apache/cassandra/dht/Range.java +++ b/src/java/org/apache/cassandra/dht/Range.java @@ -355,6 +355,16 @@ public class Range<T extends RingPosition> extends AbstractBounds<T> implements return "(" + left + "," + right + "]"; } + protected String getOpeningString() + { + return "("; + } + + protected String getClosingString() + { + return "]"; + } + public List<String> asList() { ArrayList<String> ret = new ArrayList<String>(2);
