Commit 6cc1307
Document split-flush and dict-getter contracts
Two documentation-only additions to the QWP store-and-forward client,
making previously implicit contracts explicit. No behavior change.
flushPendingRowsSplit: add a "Not atomic across frames" note. A
sealAndSwapBuffer() failure on split frame k>1 leaves frames 1..k-1
published as deferred; the throw skips the trailing table-buffer reset,
so the next flush re-emits the whole batch and the eventual commit
commits the already-published prefix twice. This is pre-existing and
within store-and-forward's at-least-once contract (absorbed by a DEDUP
table or a durable-ack await); the note names the atomic-split fix
(roll back or skip the published prefix on retry) as the larger
follow-up.
PersistedSymbolDict: mark loadedEntriesAddr(), loadedEntriesLen() and
readLoadedSymbols() as construction-phase only. They read the native
entry region that close() frees and nulls, with no closed-guard, so
they are safe only before the slot's I/O thread and any producer append
start; reading them from a running thread would risk a use-after-free.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent cbaf474 commit 6cc1307
2 files changed
Lines changed: 30 additions & 1 deletion
File tree
- core/src/main/java/io/questdb/client/cutlass/qwp/client
- sf/cursor
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3526 | 3526 | | |
3527 | 3527 | | |
3528 | 3528 | | |
| 3529 | + | |
| 3530 | + | |
| 3531 | + | |
| 3532 | + | |
| 3533 | + | |
| 3534 | + | |
| 3535 | + | |
| 3536 | + | |
| 3537 | + | |
| 3538 | + | |
| 3539 | + | |
| 3540 | + | |
| 3541 | + | |
| 3542 | + | |
| 3543 | + | |
| 3544 | + | |
3529 | 3545 | | |
3530 | 3546 | | |
3531 | 3547 | | |
| |||
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
354 | 354 | | |
355 | 355 | | |
356 | 356 | | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
357 | 365 | | |
358 | 366 | | |
359 | 367 | | |
360 | 368 | | |
361 | 369 | | |
362 | 370 | | |
363 | | - | |
| 371 | + | |
| 372 | + | |
364 | 373 | | |
365 | 374 | | |
366 | 375 | | |
| |||
371 | 380 | | |
372 | 381 | | |
373 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
374 | 387 | | |
375 | 388 | | |
376 | 389 | | |
| |||
0 commit comments