You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@htrace.apache.org by cm...@apache.org on 2015/11/13 08:36:03 UTC

incubator-htrace git commit: HTRACE-297. htraced: avoid serializing spans to json unless TRACE logging is enabled (cmccabe)

Repository: incubator-htrace
Updated Branches:
  refs/heads/master 021e49144 -> b94898e67


HTRACE-297. htraced: avoid serializing spans to json unless TRACE logging is enabled (cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/b94898e6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/b94898e6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/b94898e6

Branch: refs/heads/master
Commit: b94898e67b659acdae78e674775539344598c8ca
Parents: 021e491
Author: Colin P. Mccabe <cm...@apache.org>
Authored: Thu Nov 12 12:48:14 2015 -0800
Committer: Colin P. Mccabe <cm...@apache.org>
Committed: Thu Nov 12 12:52:39 2015 -0800

----------------------------------------------------------------------
 .../src/org/apache/htrace/htraced/datastore.go  | 38 +++++++++++++-------
 .../org/apache/htrace/htraced/datastore_test.go | 19 ++++++----
 2 files changed, 38 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/b94898e6/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
----------------------------------------------------------------------
diff --git a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
index c676088..fad69d7 100644
--- a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
+++ b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore.go
@@ -134,7 +134,7 @@ func (shd *shard) processIncoming() {
 			err := shd.writeSpan(span)
 			if err != nil {
 				lg.Errorf("Shard processor for %s got fatal error %s.\n", shd.path, err.Error())
-			} else {
+			} else if lg.TraceEnabled() {
 				lg.Tracef("Shard processor for %s wrote span %s.\n", shd.path, span.ToJson())
 			}
 		case <-shd.heartbeats:
@@ -950,9 +950,11 @@ func (pred *predicateData) createSource(store *dataStore, prev *common.Span) (*s
 				// But for some reason someone is asking for another result.
 				// We modify the query to search for the illegal 0 span ID,
 				// which will never be present.
-				lg.Debugf("Attempted to use a continuation token with an EQUALS "+
-					"SPAN_ID query. %s.  Setting search id = 0",
-					pred.Predicate.String())
+				if lg.DebugEnabled() {
+					lg.Debugf("Attempted to use a continuation token with an EQUALS "+
+						"SPAN_ID query. %s.  Setting search id = 0",
+						pred.Predicate.String())
+				}
 				startId = common.INVALID_SPAN_ID
 			} else {
 				// When doing an EQUALS search on a secondary index, the
@@ -1083,8 +1085,10 @@ func (src *source) populateNextFromShard(shardIdx int) {
 		src.numRead[shardIdx]++
 		key := iter.Key()
 		if !bytes.HasPrefix(key, []byte{src.keyPrefix}) {
-			lg.Debugf("Can't populate: Iterator for shard %s does not have prefix %s\n",
-				shdPath, string(src.keyPrefix))
+			if lg.DebugEnabled() {
+				lg.Debugf("Can't populate: Iterator for shard %s does not have prefix %s\n",
+					shdPath, string(src.keyPrefix))
+			}
 			break // Can't read past end of indexed section
 		}
 		var span *common.Span
@@ -1094,8 +1098,10 @@ func (src *source) populateNextFromShard(shardIdx int) {
 			sid = common.SpanId(key[1:17])
 			span, err = src.shards[shardIdx].decodeSpan(sid, iter.Value())
 			if err != nil {
-				lg.Debugf("Internal error decoding span %s in shard %s: %s\n",
-					sid.String(), shdPath, err.Error())
+				if lg.DebugEnabled() {
+					lg.Debugf("Internal error decoding span %s in shard %s: %s\n",
+						sid.String(), shdPath, err.Error())
+				}
 				break
 			}
 		} else {
@@ -1103,8 +1109,10 @@ func (src *source) populateNextFromShard(shardIdx int) {
 			sid = common.SpanId(key[9:25])
 			span = src.shards[shardIdx].FindSpan(sid)
 			if span == nil {
-				lg.Debugf("Internal error rehydrating span %s in shard %s\n",
-					sid.String(), shdPath)
+				if lg.DebugEnabled() {
+					lg.Debugf("Internal error rehydrating span %s in shard %s\n",
+						sid.String(), shdPath)
+				}
 				break
 			}
 		}
@@ -1118,8 +1126,10 @@ func (src *source) populateNextFromShard(shardIdx int) {
 			src.nexts[shardIdx] = span // Found valid entry
 			return
 		} else {
-			lg.Debugf("Span %s from shard %s does not satisfy the predicate.\n",
-				sid.String(), shdPath)
+			if lg.DebugEnabled() {
+				lg.Debugf("Span %s from shard %s does not satisfy the predicate.\n",
+					sid.String(), shdPath)
+			}
 			if src.numRead[shardIdx] <= 1 && mayRequireOneSkip(src.pred.Op) {
 				continue
 			}
@@ -1200,7 +1210,9 @@ func (store *dataStore) HandleQuery(query *common.Query) ([]*common.Span, error)
 		return nil, err
 	}
 	defer src.Close()
-	lg.Debugf("HandleQuery %s: preds = %s, src = %v\n", query, preds, src)
+	if lg.DebugEnabled() {
+		lg.Debugf("HandleQuery %s: preds = %s, src = %v\n", query, preds, src)
+	}
 
 	// Filter the spans through the remaining predicates.
 	ret := make([]*common.Span, 0, 32)

http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/b94898e6/htrace-htraced/go/src/org/apache/htrace/htraced/datastore_test.go
----------------------------------------------------------------------
diff --git a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore_test.go b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore_test.go
index 50d2891..576ee0b 100644
--- a/htrace-htraced/go/src/org/apache/htrace/htraced/datastore_test.go
+++ b/htrace-htraced/go/src/org/apache/htrace/htraced/datastore_test.go
@@ -352,7 +352,8 @@ func TestQueries4(t *testing.T) {
 func BenchmarkDatastoreWrites(b *testing.B) {
 	htraceBld := &MiniHTracedBuilder{Name: "BenchmarkDatastoreWrites",
 		Cnf: map[string]string{
-			conf.HTRACE_METRICS_HEARTBEAT_PERIOD_MS: "1",
+			conf.HTRACE_METRICS_HEARTBEAT_PERIOD_MS: "15000",
+			conf.HTRACE_LOG_LEVEL: "INFO",
 		},
 		WrittenSpans: make(chan *common.Span, b.N)}
 	ht, err := htraceBld.Build()
@@ -362,21 +363,27 @@ func BenchmarkDatastoreWrites(b *testing.B) {
 	defer ht.Close()
 	rnd := rand.New(rand.NewSource(1))
 	allSpans := make([]*common.Span, b.N)
+	for n := range(allSpans) {
+		allSpans[n] = test.NewRandomSpan(rnd, allSpans[0:n])
+	}
+
+	// Reset the timer to avoid including the time required to create new
+	// random spans in the benchmark total.
+	b.ResetTimer()
+
 	// Write many random spans.
 	for n := 0; n < b.N; n++ {
-		span := test.NewRandomSpan(rnd, allSpans[0:n])
 		ht.Store.WriteSpan(&IncomingSpan{
-			Addr: "127.0.0.1:1234",
-			Span: span,
+			Addr: "127.0.0.1",
+			Span: allSpans[n],
 		})
-		allSpans[n] = span
 	}
 	// Wait for all the spans to be written.
 	for n := 0; n < b.N; n++ {
 		<-ht.Store.WrittenSpans
 	}
 	waitForMetrics(ht.Store.msink, common.SpanMetricsMap{
-		"127.0.0.1:1234": &common.SpanMetrics{
+		"127.0.0.1": &common.SpanMetrics{
 			Written: uint64(b.N), // should be less than?
 		},
 	})