Commit 0840419
review: ground-truth mixed-grid test + evict passed coarse flats (#221)
Addresses PR #223 review findings.
1. Ground-truth value test for the coarse-sub-chunk slice path. Neither writer
can EMIT a disjoint per-column chunk grid — the Java VortexWriter's writeChunk
requires all columns to agree on row count, and the JNI writer writes uniform
row batches — so a genuine mixed grid ([3,3,2] vs [4,4]) is hand-assembled at
the file-format level (reusing VortexReaderDecodeChunkTest's raw-file seam) and
the full streaming scan is asserted value-for-value, including "a"'s middle
chunk sliced at a nonzero offset and a nullable column crossing the MaskedArray
slice. Rust-parity stays covered by RaincloudConformanceIntegrationTest.
2. Evict cached coarse flats once passed. Each coarse covering flat now decodes
into its own confined arena; as the scan advances, a column whose covering flat
changes from the previous decoded window releases the earlier flat's arena
(the planner's per-column cursor is monotonic, so it is never revisited). The
previous Chunk is already closed at that point, so no live slice references the
freed arena. Bounds peak off-heap memory for wide disjoint-grid files instead
of retaining every decoded chunk for the iterator's lifetime. The new streaming
test iterates fully, proving later windows still decode correctly after earlier
chunks are evicted.
3. Reword the columnZoneStats fallback javadoc: entries are now per scan window,
with a coarse chunk's stats repeated (conservatively) across its sub-windows.
4. ScanIteratorChunkGridTest states column order via a LinkedHashMap helper rather
than relying on Map.of iteration order.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 023041f commit 0840419
3 files changed
Lines changed: 197 additions & 31 deletions
File tree
- reader/src
- main/java/io/github/dfa1/vortex/reader
- test/java/io/github/dfa1/vortex/reader
Lines changed: 59 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
92 | 104 | | |
93 | 105 | | |
94 | 106 | | |
| |||
295 | 307 | | |
296 | 308 | | |
297 | 309 | | |
| 310 | + | |
| 311 | + | |
298 | 312 | | |
299 | 313 | | |
300 | 314 | | |
| |||
390 | 404 | | |
391 | 405 | | |
392 | 406 | | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
398 | 415 | | |
399 | 416 | | |
400 | 417 | | |
| |||
564 | 581 | | |
565 | 582 | | |
566 | 583 | | |
567 | | - | |
568 | | - | |
569 | | - | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
570 | 588 | | |
571 | 589 | | |
572 | 590 | | |
| |||
608 | 626 | | |
609 | 627 | | |
610 | 628 | | |
| 629 | + | |
611 | 630 | | |
612 | 631 | | |
613 | 632 | | |
| |||
682 | 701 | | |
683 | 702 | | |
684 | 703 | | |
685 | | - | |
686 | | - | |
| 704 | + | |
| 705 | + | |
687 | 706 | | |
688 | 707 | | |
689 | 708 | | |
| |||
692 | 711 | | |
693 | 712 | | |
694 | 713 | | |
695 | | - | |
696 | | - | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
697 | 717 | | |
698 | | - | |
699 | | - | |
| 718 | + | |
700 | 719 | | |
701 | 720 | | |
702 | | - | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
703 | 745 | | |
704 | 746 | | |
705 | 747 | | |
| |||
Lines changed: 20 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
99 | | - | |
| 99 | + | |
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
138 | 141 | | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
| 142 | + | |
| 143 | + | |
146 | 144 | | |
147 | 145 | | |
148 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
149 | 155 | | |
150 | 156 | | |
151 | 157 | | |
| |||
Lines changed: 118 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
265 | 313 | | |
266 | 314 | | |
267 | 315 | | |
| |||
302 | 350 | | |
303 | 351 | | |
304 | 352 | | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
305 | 423 | | |
306 | 424 | | |
307 | 425 | | |
| |||
0 commit comments