Skip to content

ADR 0010: pushdown math, per-encoding table, PoC findings#34

Open
dfa1 wants to merge 1 commit into
mainfrom
adr-0010-pushdown
Open

ADR 0010: pushdown math, per-encoding table, PoC findings#34
dfa1 wants to merge 1 commit into
mainfrom
adr-0010-pushdown

Conversation

@dfa1

@dfa1 dfa1 commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds the encode-the-threshold pushdown math to ADR 0010 so future kernel work isn't hand-wavy
  • Per-encoding applicability table identifies which encodings can support pushdown (ALP, FoR, Bitpacked, Dict) and which cannot (ZigZag — order-non-preserving; Pco/Zstd/FSST — opaque blocks)
  • Captures PoC measurements from the lazy-alp-f64-poc worktree: lazy ALP is +10.6% on full fold, ALP-level pushdown is +100% at sel=0.1, residual JNI gap at low selectivity is Bitpacked SIMD (ADR 0005 territory)
  • Drops the hasFilter() gate from the final design — lazy is strictly faster than eager on full fold, so the gate is unnecessary

Test plan

  • Read through ADR for clarity
  • Confirm the per-encoding table matches the encoding registry
  • No code changes; no tests/bench impact

🤖 Generated with Claude Code

Adds the concrete math behind compute pushdown: encode the threshold
into the encoding's integer domain, integer-compare, decode only
matches; plus a boundary re-check for FP edge cases.

Per-encoding table identifies which encodings support pushdown
(ALP, FoR, Bitpacked, Dict — order-preserving invertible) and which
do not (ZigZag — order-non-preserving; Pco/Zstd/FSST — opaque blocks).

Adds PoC findings from worktree lazy-alp-f64-poc:
  - lazy ALP is +10.6% on full fold (drops the hasFilter() gate)
  - ALP-level pushdown is +100% at sel=0.1
  - residual 2-3× JNI gap at low sel is Bitpacked SIMD, ADR 0005
    territory

Drops the hasFilter() gate from the final design and notes the
supersession inline on the earlier sections so the reasoning chain
stays readable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant