Repository navigation
Conversation
This comment has been minimized.
This comment has been minimized.
Contributor
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Every DDSpanContext held three tracer settings, read only at serialization or when a sampling decision fails validation, and the W3C baggage extracted for the local root. The settings are now read from the tracer and the baggage from the trace collector, taking DDSpanContext from 128 to 120 bytes. The trace collectors keep their size, and no field read on span creation, tagging or activation moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dougqh
force-pushed
the
dougqh/uncached-unique-tag-values
branch
from
October 23, 2026 20:26
1173ac0 to
90533c3
Compare
dougqh
force-pushed
the
dougqh/cold-span-fields-off-context
branch
from
October 23, 2026 20:26
4e4da0d to
55176e3
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Does This Do
Moves four rarely read fields off
DDSpanContext, which exists once per span:injectBaggageAsTagsinjectLinksAsTagsdisableSamplingMechanismValidationw3cBaggageThe three settings were always the tracer's own final fields, copied into every span. The
DDSpanContextconstructors lose those three parameters. The 21-argument variant became identical to the 19-argument one, so it is removed.Motivation
TraceSegment work (APMLP-2049): per-trace and per-tracer state moves off the per-span object.
JOL shallow sizes (JDK 17, compressed oops):
DDSpanContextPendingTraceStreamingTraceCollectorDDSpanContextwas full: 128 B with a 1-byte gap. Removing any single 4-byte reference would have saved nothing. These four fields free 7 bytes, which together with the gap reaches the next 8-byte boundary down.w3cBaggagefits in the collectors' existing padding, so this is −8 B per span with no per-trace cost.Hops. No field read on span creation, tagging or activation moves:
tagInterceptor,profilingContextIntegrationand the trace id stay on the span context.That was deliberate, because an extra dependent load on a hot path could cost more than the 8 bytes save. The trace id can move later, together with a primitive trace-id view, where its hop can be measured on its own.
Additional Notes
DDSpanSerializationTest's baggage cases setinjectBaggageAsTagson the tracer instead of on each context. The other direct constructions passed the tracer defaults.CompoundExtractionGoldenTestpasses.dd-trace-coresuite passes locally, except for 2 Docker-dependentTracerConnectionReliabilityTestcases and the order-dependentPendingTraceBufferTest.testingTracerFlareDumpWithMultipleTraces. The OpenTracing and OpenTelemetryTypeConverterTests pass.Stacked: master ← #13008 ← #13000 ← #13009 ← #13010 ← #13015 ← #13028 ← #13029 ← this PR.
🤖 Generated with Claude Code