Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

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 →

Inside DataFusion's ListingTable: Listing an Object Store in Parallel and Turning Files into FileGroups

Oct 21, 2026 20 min read Jay Hubbert

DataFusion lists object-store prefixes, prunes partitions by path, fetches file metadata concurrently, and packs the surviving files into FileGroups.

DatafusionPlanningPerformanceInternals

Read more →

How DataFusion's Hash Join Keeps Its Build Side in Order: Reverse the Insertion, Get FIFO Output for Free

Oct 21, 2026 9 min read Jay Hubbert

DataFusion’s hash join inserts the build side in reverse order into a LIFO hash table, so the chain head is always the earliest matching row and the join output preserves the build …

DatafusionJoinsHash tablePerformanceInternals

Read more →

DataFusion Has No Runtime of Its Own: How common-runtime Borrows Yours and Keeps CPU Work Cooperative

Oct 21, 2026 10 min read Jay Hubbert

DataFusion borrows the ambient Tokio runtime, funnels every spawn through a cancel-safe wrapper, and runs CPU work inline with cooperative yields instead of spawn_blocking.

DatafusionRuntimePerformanceInternals

Read more →

DataFusion's Symmetric Hash Join Builds a Hash Table on Both Sides and Prunes the Rest

Oct 21, 2026 13 min read Jay Hubbert

DataFusion’s symmetric hash join hashes both streams, lets each side probe the other’s table, and prunes rows that can no longer match using interval arithmetic — trading memory …

DatafusionJoinsPerformanceInternals

Read more →

← Newer Page 28 of 74 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·