You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ch...@apache.org on 2017/11/27 23:13:00 UTC
hbase git commit: HBASE-18601 Update Htrace to 4.2 (addendum)
Repository: hbase
Updated Branches:
refs/heads/branch-2 e42d20f8d -> 95e4f059a
HBASE-18601 Update Htrace to 4.2 (addendum)
- TraceTree fix
Signed-off-by: Chia-Ping Tsai <ch...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/95e4f059
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/95e4f059
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/95e4f059
Branch: refs/heads/branch-2
Commit: 95e4f059a3b5937d47deda49f40be87af5b12c53
Parents: e42d20f
Author: Balazs Meszaros <ba...@cloudera.com>
Authored: Mon Nov 27 16:53:25 2017 +0100
Committer: Chia-Ping Tsai <ch...@gmail.com>
Committed: Tue Nov 28 06:59:30 2017 +0800
----------------------------------------------------------------------
.../hadoop/hbase/trace/TestHTraceHooks.java | 2 -
.../apache/hadoop/hbase/trace/TraceTree.java | 52 +++++++++++++-------
2 files changed, 33 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/95e4f059/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
index 631d98b..0b8c039 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TestHTraceHooks.java
@@ -31,7 +31,6 @@ import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.htrace.core.POJOSpanReceiver;
import org.apache.htrace.core.Sampler;
import org.apache.htrace.core.Span;
-import org.apache.htrace.core.SpanId;
import org.apache.htrace.core.TraceScope;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -50,7 +49,6 @@ public class TestHTraceHooks {
private static final byte[] FAMILY_BYTES = "family".getBytes();
private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private static POJOSpanReceiver rcvr;
- private static SpanId ROOT_SPAN_ID = new SpanId(0, 0);
@Rule
public TestName name = new TestName();
http://git-wip-us.apache.org/repos/asf/hbase/blob/95e4f059/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
index bba4ee5..eb209d0 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/trace/TraceTree.java
@@ -22,12 +22,12 @@ import org.apache.htrace.core.SpanId;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
-import java.util.Set;
+import java.util.TreeSet;
/**
* Used to create the graph formed by spans.
@@ -35,18 +35,23 @@ import java.util.Set;
public class TraceTree {
public static class SpansByParent {
- private final Set<Span> set;
+ private static Comparator<Span> COMPARATOR =
+ new Comparator<Span>() {
+ @Override
+ public int compare(Span a, Span b) {
+ return a.getSpanId().compareTo(b.getSpanId());
+ }
+ };
+
+ private final TreeSet<Span> treeSet;
private final HashMap<SpanId, LinkedList<Span>> parentToSpans;
SpansByParent(Collection<Span> spans) {
- set = new LinkedHashSet<Span>();
+ TreeSet<Span> treeSet = new TreeSet<Span>(COMPARATOR);
parentToSpans = new HashMap<SpanId, LinkedList<Span>>();
- if(spans == null) {
- return;
- }
for (Span span : spans) {
- set.add(span);
+ treeSet.add(span);
for (SpanId parent : span.getParents()) {
LinkedList<Span> list = parentToSpans.get(parent);
if (list == null) {
@@ -56,15 +61,15 @@ public class TraceTree {
list.add(span);
}
if (span.getParents().length == 0) {
- LinkedList<Span> list = parentToSpans.get(Long.valueOf(0L));
+ LinkedList<Span> list = parentToSpans.get(SpanId.INVALID);
if (list == null) {
list = new LinkedList<Span>();
- parentToSpans.put(new SpanId(Long.MIN_VALUE, Long.MIN_VALUE), list);
+ parentToSpans.put(SpanId.INVALID, list);
}
list.add(span);
}
}
-
+ this.treeSet = treeSet;
}
public List<Span> find(SpanId parentId) {
@@ -76,25 +81,31 @@ public class TraceTree {
}
public Iterator<Span> iterator() {
- return Collections.unmodifiableSet(set).iterator();
+ return Collections.unmodifiableSortedSet(treeSet).iterator();
}
}
public static class SpansByProcessId {
- private final Set<Span> set;
+ private static Comparator<Span> COMPARATOR =
+ new Comparator<Span>() {
+ @Override
+ public int compare(Span a, Span b) {
+ return a.getSpanId().compareTo(b.getSpanId());
+ }
+ };
+
+ private final TreeSet<Span> treeSet;
SpansByProcessId(Collection<Span> spans) {
- set = new LinkedHashSet<Span>();
- if(spans == null) {
- return;
- }
+ TreeSet<Span> treeSet = new TreeSet<Span>(COMPARATOR);
for (Span span : spans) {
- set.add(span);
+ treeSet.add(span);
}
+ this.treeSet = treeSet;
}
public Iterator<Span> iterator() {
- return Collections.unmodifiableSet(set).iterator();
+ return Collections.unmodifiableSortedSet(treeSet).iterator();
}
}
@@ -108,6 +119,9 @@ public class TraceTree {
* have at least one root span.
*/
public TraceTree(Collection<Span> spans) {
+ if (spans == null) {
+ spans = Collections.emptySet();
+ }
this.spansByParent = new SpansByParent(spans);
this.spansByProcessId = new SpansByProcessId(spans);
}