Repository navigation
Conversation
3bbee5e to
91610c5
Compare
fefb201 to
aa62381
Compare
Merging this PR will regress 3 benchmarks4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
91610c5 to
450de94
Compare
aa62381 to
c1c91ba
Compare
450de94 to
f8f86e2
Compare
c1c91ba to
0affd29
Compare
f8f86e2 to
dbd6e96
Compare
3367172 to
f783c34
Compare
dbd6e96 to
074c7b8
Compare
661d07c to
4c93a25
Compare
dce049b to
2dc62e4
Compare
|
@claude review |
|
Claude finished @danking's task in 2m 28s —— View job PR #10828 review: selective PCO take
The sparse/grouped design holds up. Requests are sorted, repeated rows are resolved once, each page is decoded once, and results are scattered into an initialized output. Bounds checks run before any allocation, and legacy metadata uses a single ranked validity mask instead of a per-index scan. The kernel registration matches how ALP, BitPacked and the others do it. I found one test-module compile error that will break CI, and one large block of code that can never run. 🔴 Blocking1. 🟠 Should address2.
3. The CodSpeed regression in
If scalar-at scans end up in this kernel, that fixed overhead per call is a plausible cause. A cheap early exit for 4. The module docs still show the old registration. 🟡 Minor / style
✅ Looks good
ChecksI did not run any builds or tests; this was a read-only review. Item 1 comes from reading the import list, not from a compile. CI "Linters and Tests" was still queued when I checked. |
4c93a25 to
ce5758f
Compare
2dc62e4 to
ac6a40d
Compare
d4b2869 to
73dbbe4
Compare
bc7b413 to
a376046
Compare
e348dea to
fbe9df9
Compare
af66be3 to
de989ed
Compare
4f9eed4 to
1ff6747
Compare
de989ed to
b31ed89
Compare
1ff6747 to
7013dfc
Compare
|
@claude review |
|
Claude finished @danking's task in 2m 0s —— View job PR #10828 review: selective PCO take (re-review at
|
b31ed89 to
326178f
Compare
7013dfc to
1c60c36
Compare
…fixes Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
1c60c36 to
eea0ae2
Compare
Execute selective primitive Take for arrays with the new logical-row prefix. Locate touched pages, prepare their local validity, reuse PCO file/chunk decoder setup, call the existing native PrimitiveTake for decoded-page groups, and scatter requested values in their original order with repetitions and logical nulls preserved. Contiguous primitive requests use bulk spans; broad requests retain canonical fallback.
A missing prefix immediately returns the existing Take fallback before preparation. The indexed helper has only an O(chunks) page map and one operation-owned prepared page; it does not implement an old-format selective reader or a generic indexed/legacy strategy framework. New decode/output buffers are initialized. Public argument bounds/overflow contracts are separate from file-content consistency checks.
Fourth replacement for #10771, after #10827. All semantic tests are in #10825, with public initialization wiring here. All 63 PCO library tests and all-target/all-feature Clippy pass. Fresh current-head public file compatibility passed both directions against unchanged base33675. The final new-only matched resource run completed with all 26 oracles passing. Current GitHub CI and human review remain separate gates.
Existing CI and CodSpeed are reused; no new workflow. AI-assisted development with OpenAI Codex. Normal CI and the required human reviews remain necessary before merge; this PR remains draft.
Measured on an AMD EPYC 7B13 cloud VM: three OS-timer samples within one process per version, fixed workloads, resident buffers, no IO measurement. These are point estimates, not ABBA or confidence intervals; whole-process CPU/RSS includes fixtures and oracles. Final-stack comparisons do not isolate individual commits.
Explicit final-stack tradeoffs: nullable repeated Take rose from 52.43 to 67.71 ms (+29.1%, +15.28 ms); metadata-open/drop batches rose +33.2% dense/+31.6% nullable. These adverse results are retained for maintainer judgment, not hidden or auto-tuned away. No overall weighted speedup is claimed.
Final-stack sparse Take medians were 0.6009/0.5619 ms versus 41.90/71.27 ms original baseline (dense/nullable, about 70×/127×); contiguous Take was 1.61×/2.13× faster.
CI correction: the existing compact stock-ticker expected size was updated 55,344→55,396 (+52 bytes with optional metadata), preserving its semantic roundtrip and default cases. The indexed-slice brace received pinned formatting. Fresh standard CI runs passed the source, platform, formatting and TSAN checks for these minimal corrections; no unrelated decoder fix is bundled.
Final CI audit: source/platform/formatting/TSAN checks have passed; remaining performance gates are CodSpeed and required human review. All PRs remain draft; no performance waiver or merge approval is claimed.