Uh oh!
There was an error while loading. Please reload this page.
Encode tag ids with a colored slot and collapse dense presence to one occupancy long (phase 2) - #12046
Encode tag ids with a colored slot and collapse dense presence to one occupancy long (phase 2)#12046dougqh wants to merge 1 commit into
Conversation
Bits has a CI fix ready🟢 Investigated · 🟢 Fix prepared · ⚪ Validation skipped · 🟠 Ready Wrapped the dense-tag initialization comment in View in Datadog | Reviewed commit d6e7088 · Any feedback? Reach out in #deveng-pr-agent |
This comment has been minimized.
This comment has been minimized.
🟢 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. |
Reframe of the dense-store presence layer. Replaces the earlier two-tier (group-decl mask + field-decl bloom) design with a single global colored slot: the tag-id middle 16 bits carry one graph-colored slot coordinate (SLOT_SHIFT=32, SLOT_MASK=0xFFFF), so the dense store tracks presence with one occupancy long instead of a group mask plus a field bloom. Adds the trace-level bit (LEVEL_TRACE) and level-bit read-through in the parent visibility check. KnownTags remains hand-maintained here (src/main); the tag-registry code generator that produces these colored ids lands in the following commit, which relocates the file to src/generated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
d758efe to
992dc14Comparedougqh
commented
Aug 18, 2026
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:bb9ebca1a0
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| // makeTagId(serial=285, slot=13) <conditional> | ||
| public static final String HTTP_STATUS_CODE_NAME = "http.status_code"; | ||
| public static final long HTTP_STATUS_CODE_ID = 0x011E000A00000000L; |
There was a problem hiding this comment.
Mark HTTP status IDs as intercepted
When an ID-based tag caller uses the advertised sign-bit routing, keyOf("http.status_code") now returns this positive ID, so isIntercepted is false even though TagInterceptor.needsIntercept explicitly handles this tag to populate DDSpanContext.httpStatusCode and apply the 404 resource-name rule. Encode this ID with INTERCEPTED, as is done for the other stored tags that require interceptor side effects.
Useful? React with 👍 / 👎.
| public static final String MEASURED_NAME = "measured"; | ||
| public static final long MEASURED_ID = 0x8009FFFF00000000L; | ||
| // makeTagId(serial=9, slot=NO_SLOT) + intercepted [directive] | ||
| public static final String ANALYTICS_SAMPLE_RATE_NAME = "analytics.sample_rate"; |
There was a problem hiding this comment.
Register the actual reserved tag names
The new reserved mappings use conceptual names rather than the keys handled by TagInterceptor: for example, the runtime keys are _dd.measured and _dd1.sr.eausr, so keyOf(DDTags.MEASURED) and keyOf(DDTags.ANALYTICS_SAMPLE_RATE) both return zero instead of these reserved IDs. The same mismatch affects _dd.origin (registered as origin) and service.name (only service is registered), preventing established tag constants from using the advertised name-to-ID/interceptor route.
Useful? React with 👍 / 👎.
Reframe of the dense-store presence layer (was: two-tier presence bloom).
Replaces the earlier two-tier design (per-map group-decl mask + field-decl bloom) with a single global colored slot: the tag-id middle 16 bits carry one graph-colored slot coordinate (
SLOT_SHIFT=32,SLOT_MASK=0xFFFF), so the dense store tracks presence with one occupancy long instead of a group mask plus a field bloom. Also adds the trace-level bit (LEVEL_TRACE) and level-bit read-through in the parent-visibility check.KnownTagsstays hand-maintained here (src/main); the tag-registry code generator that produces these colored ids lands in #12047, which relocates the file tosrc/generated.Stacked on #12045 (dense store). Draft.
🤖 Generated with Claude Code