Skip to content
Opensource internals
  • Posts

Posts

All posts published on this site.

Everything published here, newest first.

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 →

NOT IN in a Hash Join: Why DataFusion Decides UNKNOWN Per Build Row

Oct 21, 2026 8 min read Jay Hubbert

DataFusion’s null-aware hash join tracks NOT IN’s three-valued logic with per-build-row bitmaps and a separate hash table of NULL-valued build rows, because the answer depends on …

DatafusionJoinsNullsNot inPerformanceInternals

Read more →

← Newer Page 37 of 83 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·