Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

Polars Buffers Are Immutable: The Refcounted Storage Behind Every Column

Oct 21, 2026 14 min read Jay Hubbert

The buffer layer of Polars is deliberately dumb: an immutable (ptr, length) view over a hand-rolled refcounted storage, with all growth pushed into the mutable builders.

PolarsInternalsMemoryArrowSimd

Read more →

A Memory Ordering Bug in DataFusion's Hash Join, Found by Model Checking Rather Than Testing

Oct 21, 2026 9 min read Jay Hubbert

DataFusion’s hash join probe partitions coordinate through a single AcqRel counter decrement; a subtle ordering bug was found with loom’s model checker and cannot be reproduced by …

DatafusionJoinsConcurrencyMemory orderingInternals

Read more →

Coalesce Batches, Don't Shrink Them: How DataFusion Rebuilds 8K-Row Batches Out of 3-Row Ones

Oct 21, 2026 12 min read Jay Hubbert

Tiny batches destroy vectorized throughput; DataFusion merges them with arrow-rs BatchCoalescer, wrapped in a LIMIT-aware coalescer that slices instead of copying, and fused into …

DatafusionRuntimePerformanceInternals

Read more →

Multi-Level Merge: How DataFusion Sorts More Data Than It Can Hold, One Pass at a Time

Oct 21, 2026 8 min read Jay Hubbert

DataFusion’s multi-level merge merges the sorted runs it can afford, spills the merged result back to disk, and repeats until one pass remains, re-spilling skewed runs whose widest …

DatafusionSortingSpillingPerformanceInternals

Read more →

EXPLAIN ANALYZE Without the Overhead: How DataFusion Times Every Operator While the Query Runs

Oct 21, 2026 11 min read Jay Hubbert

DataFusion records cheap atomic metrics per operator partition, measures only the time spent inside poll(), and renders the annotated plan after the query finishes — so EXPLAIN …

DatafusionRuntimePerformanceInternals

Read more →

← Newer Page 35 of 82 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·