You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2013/07/31 17:14:24 UTC

[47/50] [abbrv] git commit: Merge branch '1.4.4-SNAPSHOT' into 1.5.1-SNAPSHOT-1.4.4-SNAPSHOT-merged

Merge branch '1.4.4-SNAPSHOT' into 1.5.1-SNAPSHOT-1.4.4-SNAPSHOT-merged

Conflicts:
	trace/src/main/java/org/apache/accumulo/trace/instrument/impl/MilliSpan.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8e1e2a57
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8e1e2a57
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8e1e2a57

Branch: refs/heads/master
Commit: 8e1e2a57d150923574ace0e92945fdca14de4fc8
Parents: cb5a543 3e97167
Author: Josh Elser <el...@apache.org>
Authored: Tue Jul 30 20:03:26 2013 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Jul 30 20:03:26 2013 -0400

----------------------------------------------------------------------
 .../apache/accumulo/trace/instrument/impl/MilliSpan.java  | 10 +++++-----
 .../accumulo/trace/instrument/impl/RootMilliSpan.java     |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8e1e2a57/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/MilliSpan.java
----------------------------------------------------------------------
diff --cc trace/src/main/java/org/apache/accumulo/trace/instrument/impl/MilliSpan.java
index 8f020f0,0000000..b641a2c
mode 100644,000000..100644
--- a/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/MilliSpan.java
+++ b/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/MilliSpan.java
@@@ -1,141 -1,0 +1,141 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.accumulo.trace.instrument.impl;
 +
 +import java.security.SecureRandom;
 +import java.util.Collections;
 +import java.util.HashMap;
 +import java.util.Map;
 +import java.util.Random;
 +
 +import org.apache.accumulo.trace.instrument.Span;
 +import org.apache.accumulo.trace.instrument.Tracer;
 +
 +
 +/**
 + * A Span implementation that stores its information in milliseconds since the epoch.
 + */
 +public class MilliSpan implements Span {
 +  
 +  private static final Random next = new SecureRandom();
 +  private long start;
 +  private long stop;
 +  final private Span parent;
 +  final private String description;
 +  final private long spanId;
++  final private long traceId;
 +  private Map<String,String> traceInfo = null;
 +  
 +  public Span child(String description) {
-     return new MilliSpan(description, next.nextLong(), this);
++    return new MilliSpan(description, next.nextLong(), traceId, this);
 +  }
 +  
-   public MilliSpan(String description, long id, Span parent) {
++  public MilliSpan(String description, long id, long traceId, Span parent) {
 +    this.description = description;
 +    this.spanId = id;
++    this.traceId = traceId;
 +    this.parent = parent;
 +    this.start = 0;
 +    this.stop = 0;
 +  }
 +  
 +  public synchronized void start() {
 +    if (start > 0)
 +      throw new IllegalStateException("Span for " + description + " has already been started");
 +    start = System.currentTimeMillis();
 +  }
 +  
 +  public synchronized void stop() {
 +    if (start == 0)
 +      throw new IllegalStateException("Span for " + description + " has not been started");
 +    stop = System.currentTimeMillis();
 +    Tracer.getInstance().pop(this);
 +  }
 +  
 +  protected long currentTimeMillis() {
 +    return System.currentTimeMillis();
 +  }
 +  
 +  public synchronized boolean running() {
 +    return start != 0 && stop == 0;
 +  }
 +  
 +  public synchronized long accumulatedMillis() {
 +    if (start == 0)
 +      return 0;
 +    if (stop > 0)
 +      return stop - start;
 +    return currentTimeMillis() - start;
 +  }
 +  
 +  public String toString() {
 +    long parentId = parentId();
 +    return ("\"" + description() + "\" trace:" + Long.toHexString(traceId()) + " span:" + spanId + (parentId > 0 ? " parent:" + parentId : "") + " start:"
 +        + start + " ms: " + Long.toString(accumulatedMillis()) + (running() ? "..." : ""));
 +    
 +  }
 +  
 +  public String description() {
 +    return description;
 +  }
 +  
 +  @Override
 +  public long spanId() {
 +    return spanId;
 +  }
 +  
 +  @Override
 +  public Span parent() {
 +    return parent;
 +  }
 +  
 +  @Override
 +  public long parentId() {
 +    if (parent == null)
 +      return -1;
 +    return parent.spanId();
 +  }
 +  
 +  @Override
 +  public long traceId() {
-     if (parent == this)
-       throw new RuntimeException("loop found in trace!");
-     return parent.traceId();
++    return traceId;
 +  }
 +  
 +  @Override
 +  public long getStartTimeMillis() {
 +    return start;
 +  }
 +  
 +  @Override
 +  public long getStopTimeMillis() {
 +    return stop;
 +  }
 +  
 +  @Override
 +  public void data(String key, String value) {
 +    if (traceInfo == null)
 +      traceInfo = new HashMap<String,String>();
 +    traceInfo.put(key, value);
 +  }
 +  
 +  @Override
 +  public Map<String,String> getData() {
 +    if (traceInfo == null)
 +      return Collections.emptyMap();
 +    return Collections.unmodifiableMap(traceInfo);
 +  }
 +}

http://git-wip-us.apache.org/repos/asf/accumulo/blob/8e1e2a57/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/RootMilliSpan.java
----------------------------------------------------------------------
diff --cc trace/src/main/java/org/apache/accumulo/trace/instrument/impl/RootMilliSpan.java
index eb31dcc,0000000..c25e644
mode 100644,000000..100644
--- a/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/RootMilliSpan.java
+++ b/trace/src/main/java/org/apache/accumulo/trace/instrument/impl/RootMilliSpan.java
@@@ -1,43 -1,0 +1,43 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.accumulo.trace.instrument.impl;
 +
 +/**
 + * Span that roots the span tree in a process, but perhaps not the whole trace.
 + * 
 + */
 +public class RootMilliSpan extends MilliSpan {
 +  
 +  final long traceId;
 +  final long parentId;
 +  
 +  @Override
 +  public long traceId() {
 +    return traceId;
 +  }
 +  
 +  public RootMilliSpan(String description, long traceId, long spanId, long parentId) {
-     super(description, spanId, null);
++    super(description, spanId, traceId, null);
 +    this.traceId = traceId;
 +    this.parentId = parentId;
 +  }
 +  
 +  public long parentId() {
 +    return parentId;
 +  }
 +  
 +}