Skip to content

docs: in-place index builds measured with the shipped operator - #84

Merged
krzysztof-smartdataengines merged 1 commit into
mainfrom
docs/in-place-index-after
Sep 24, 2026
Merged

krzysztof-smartdataengines merged 1 commit into
mainfrom
docs/in-place-index-after

Conversation

@krzysztof-smartdataengines

Copy link
Copy Markdown
Contributor

What

The post-implementation measurement for in-place index builds (#83): the shipped operator - LocalCutover.index from f77bb7b - against the copy path on the same tables, with a process on the map in force writing a row every 5 ms throughout. Script, raw results, load readings and SHA-256 sums in docs/qualification/in-place-index/after/.

engine rows in place: receipt / operator wall longest gap between writes during the build (before it) copy path: write pause copy path: outcome
PostgreSQL 100 000 346 ms / 482 ms 13.8 ms (9.6) 7 174 ms success
PostgreSQL 450 000 618 ms / 764 ms 80.2 ms (9.2) interrupted by the operator's watchdog at 30 066 ms recovery required; the resume aborted
ClickHouse 100 000 657 ms / 885 ms 20.0 ms (27.3) 5 581 ms success
ClickHouse 450 000 707 ms / 920 ms 22.1 ms (21.2) 27 843 ms success, 2.2 s inside the budget

At 450 000 rows on PostgreSQL the copy path cannot carry out the model's decision at all; the in-place build publishes it in 618 ms. On ClickHouse that table still fits, by 2.2 s. No write failed in any in-place build; the 80 ms maximum gap is recorded as measured - the script keeps only the maximum, so its frequency is unknown.

Same laptop and test engines as the premise (PostgreSQL 15.19, ClickHouse 24.8.14.39), load average 1.0-1.4 at the start and 2.6 at the end. Indicative numbers on a shared two-core machine, not a customer qualification.

Docs only; no library change.

🤖 Generated with Claude Code

The premise compared the copy path with the engines' own non-blocking
statements. This runs LocalCutover.index from f77bb7b against the copy
path on the same tables, with a process on the map in force writing
throughout. At 450 000 rows on PostgreSQL the copy path's cutover ran
into the operator's 30 s watchdog and a recovery aborted it, leaving the
decided index out of force; the in-place build was published in 618 ms.
On ClickHouse the same table still fitted, 2.2 s inside the budget.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@krzysztof-smartdataengines
krzysztof-smartdataengines merged commit 42091bf into main Sep 24, 2026
11 checks passed
@krzysztof-smartdataengines
krzysztof-smartdataengines deleted the docs/in-place-index-after branch September 24, 2026 07:54
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