Skip to content

Commit

Permalink
revert me: switch in-memory to simplejson
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrian Cole committed Jul 21, 2017
1 parent adbbd8e commit edf10fa
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions zipkin/src/main/java/zipkin/storage/InMemorySpanStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
import zipkin.internal.MergeById;
import zipkin.internal.Nullable;
import zipkin.internal.Pair;
import zipkin.simplespan.SimpleSpan;
import zipkin.simplespan.SimpleSpanConverter;

import static zipkin.internal.ApplyTimestampAndDuration.guessTimestamp;
import static zipkin.internal.GroupByTraceId.TRACE_DESCENDING;
Expand Down Expand Up @@ -78,7 +80,7 @@ public final class InMemorySpanStore implements SpanStore {
* weak reference and traceIdToTraceIdTimeStamps a strong one. In that case, deleting the trace ID
* from traceIdToTraceIdTimeStamps would lead to a purge of spans at GC time.
*/
private final SortedMultimap<Pair<Long>, Span> spansByTraceIdTimeStamp =
private final SortedMultimap<Pair<Long>, SimpleSpan> spansByTraceIdTimeStamp =
new LinkedListSortedMultimap<>(VALUE_2_DESCENDING);

/** This supports span lookup by {@link zipkin.Span#traceId lower 64-bits of the trace ID} */
Expand Down Expand Up @@ -143,7 +145,7 @@ synchronized void addSpans(List<Span> spans) {
Pair<Long> traceIdTimeStamp =
Pair.create(span.traceId, timestamp == null ? Long.MIN_VALUE : timestamp);
String spanName = span.name;
spansByTraceIdTimeStamp.put(traceIdTimeStamp, span);
spansByTraceIdTimeStamp.put(traceIdTimeStamp, SimpleSpanConverter.fromSpan(span));
traceIdToTraceIdTimeStamps.put(span.traceId, traceIdTimeStamp);
acceptedSpanCount++;

Expand Down Expand Up @@ -173,7 +175,7 @@ private int deleteOldestTrace() {
for (Iterator<Pair<Long>> traceIdTimeStampIter = traceIdTimeStamps.iterator();
traceIdTimeStampIter.hasNext(); ) {
Pair<Long> traceIdTimeStamp = traceIdTimeStampIter.next();
Collection<Span> spans = spansByTraceIdTimeStamp.remove(traceIdTimeStamp);
Collection<SimpleSpan> spans = spansByTraceIdTimeStamp.remove(traceIdTimeStamp);
spansEvicted += spans.size();
}
for (String orphanedService : serviceToTraceIds.removeServiceIfTraceId(traceId)) {
Expand Down Expand Up @@ -357,6 +359,14 @@ int size() {
return size;
}

void put(K key, List<V> values) {
Collection<V> valueContainer = delegate.get(key);
if (valueContainer == null) {
delegate.put(key, valueContainer = valueContainer());
}
if (valueContainer.addAll(values)) size += values.size();
}

void put(K key, V value) {
Collection<V> valueContainer = delegate.get(key);
if (valueContainer == null) {
Expand Down Expand Up @@ -385,7 +395,9 @@ Collection<V> get(K key) {
private Collection<Span> spansByTraceId(long traceId) {
Collection<Span> sameTraceId = new ArrayList<>();
for (Pair<Long> traceIdTimestamp : traceIdToTraceIdTimeStamps.get(traceId)) {
sameTraceId.addAll(spansByTraceIdTimeStamp.get(traceIdTimestamp));
for (SimpleSpan span : spansByTraceIdTimeStamp.get(traceIdTimestamp)) {
sameTraceId.add(SimpleSpanConverter.toSpan(span));
}
}
return sameTraceId;
}
Expand Down

0 comments on commit edf10fa

Please sign in to comment.