Skip to content
Opensource internals
  • Posts

Performance

How ClickHouse's Sparse Column Stores Only the Rows That Differ

Oct 21, 2026 20 min read Jay Hubbert

A sparse column stores only the rows that differ from the default, plus a sorted offsets array.

ClickhousePerformanceInternalsMemoryCompression

Read more →

tmux Parses Escape Sequences Fast: Four Boring Optimisations That Matter

Oct 11, 2026 11 min read Jay Hubbert

tmux’s parser has no clever trick in it. It’s a state machine with a transition cache, a bsearch(), a trie, and a width cache — four small optimisations, each of which swaps an…

TmuxPerformanceInternalsInput

Read more →

PostgreSQL Speeds Up Hash Joins: Specialising the Expression Interpreter

Oct 11, 2026 31 min read Jay Hubbert

PostgreSQL pattern-matches a hash join’s compiled expression steps and swaps the general-purpose interpreter for a specialised C function, which is worth up to 20% on probe-heavy …

PostgresPerformanceExecutorInternals

Read more →

PostgreSQL Waits for Locks: The Spin, Sleep, and Kernel Ladder

Oct 6, 2026 49 min read Jay Hubbert

PostgreSQL’s wait ladder spins in user space, then backs off with a jittered exponential delay so spinners don’t convoy, and only then blocks in the kernel — and it learns how long …

PostgresPerformanceConcurrencyInternals

Read more →

PostgreSQL Locks Buffers Without LWLocks: One 64-Bit Word

Oct 2, 2026 43 min read Jay Hubbert

PostgreSQL 20 moved buffer content locks out of the LWLock machinery and into the buffer’s own 64-bit state word, so taking one costs a single compare-and-swap.

PostgresPerformanceStorageConcurrencyInternals

Read more →

← Newer Page 13 of 17 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·