Skip to content

oracle: respond with native blocks - #111

Open
serprex wants to merge 1 commit into
mainfrom
native-oracle
Open

oracle: respond with native blocks#111
serprex wants to merge 1 commit into
mainfrom
native-oracle

Conversation

@serprex

@serprex serprex commented Aug 31, 2026

Copy link
Copy Markdown
Member

depends on ClickHouse/clickhouse-c-rs/pull/1
fixes #110

moves oracle to being used directly by inserters, reducing load on decode pool

@serprex
serprex requested a review from harshil-goel August 31, 2026 20:25
@serprex
serprex force-pushed the native-oracle branch 4 times, most recently from 978548d to b8ef4ca Compare September 1, 2026 03:53
@serprex

serprex commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

Speed:

type Batch 1 impact Batch 2 speedup Batch 64 speedup Batch 4,096 speedup Peak branch throughput
int4[] → Array(Int32) 3.8% slower 1.87× 36.0× 80.8× 9.13M rows/s at batch 512
text[] → Array(String) 2.7% slower 1.98× 29.4× 72.9× 5.55M rows/s at batch 4,096
timestamp[] → Array(DateTime64) 9.1% slower 1.66× 29.3× 79.0× 6.44M rows/s at batch 4,096
uuid[] → Array(UUID) 0.4% slower 2.05× 36.3× 69.4× 8.05M rows/s at batch 512
jsonb → JSON 2.1% slower 1.80× 34.8× 109.7× 8.85M rows/s at batch 4,096
Mixed five-column row 19.5% slower 1.74× 17.8× 15.1× 1.43M rows/s at batch 512

Throughput rows/s:

type Batch 1 Batch 2 Batch 4 Batch 8 Batch 16 Batch 64 Batch 512 Batch 4,096
int4[] → Array(Int32) 70.1k 134k 294k 453k 889k 2.87M 9.13M 6.18M
text[] → Array(String) 71.2k 140k 225k 446k 806k 2.30M 4.52M 5.55M
timestamp[] → Array(DateTime64) 63.3k 111k 210k 441k 796k 2.26M 4.35M 6.44M
uuid[] → Array(UUID) 70.9k 140k 271k 442k 854k 2.54M 8.05M 5.39M
jsonb → JSON 74.5k 133k 269k 440k 887k 2.59M 6.74M 8.85M
Mixed five-column row 48.0k 92.4k 171k 297k 452k 951k 1.43M 874k

@serprex
serprex marked this pull request as ready for review September 1, 2026 16:02
@serprex

serprex commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

needs some pg-clickhouse-c tweaking to support maintaining fine grained error-impacts-one-row rather than error-impacts-whole-batch

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.

daemon protocol for oracle should be sending CH native blocks

1 participant