Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

ClickHouse's Client Cancels a Query Without Disconnecting: An Atomic Counter and a Cancel Packet

Oct 19, 2026 15 min read Jay Hubbert

Ctrl-C only flips an atomic counter in the client; the receive loop notices, writes a Cancel packet, and keeps draining packets so the connection stays in sync.

ClickhouseNetworkingProtocolInternalsCLI

Read more →

ClickHouse's JSON Type: 1000 Typed Paths, 1024 Dynamic Paths, and a Sorted Shared Spill

Oct 19, 2026 17 min read Jay Hubbert

ClickHouse’s JSON type splits a document into per-path subcolumns, with typed paths, bounded dynamic paths, and a shared-data spill.

ClickhouseInternalsJSONTypesStorage

Read more →

BuzzHouse Fuzzes for Wrong Answers, Not Just Crashes: Two Queries, One MD5

Oct 19, 2026 14 min read Jay Hubbert

BuzzHouse pairs every random query with an oracle query and compares the two result files by MD5 to catch wrong answers, not just crashes.

ClickhouseTestingFuzzingInternals

Read more →

ClickHouse Splits PREWHERE into Read Steps: Bytes per Rejected Row Picks the Order

Oct 19, 2026 17 min read Jay Hubbert

ClickHouse moves WHERE conditions into PREWHERE by cost per rejected row, and reads PREWHERE columns in separate read steps.

ClickhouseMergetreePrewhereQuery planningPerformance

Read more →

ClickHouse Flattens the Join Tree into a QueryGraph: A Greedy Search and a Full Plan Rebuild

Oct 19, 2026 15 min read Jay Hubbert

ClickHouse flattens the join tree into a graph, searches it for a cheaper order, and rebuilds the plan.

ClickhouseQuery planningJoinsOptimizerInternals

Read more →

← Newer Page 57 of 83 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·