HYHabib Yusufinmanlikehb.hashnode.dev·Jun 16 · 11 min readHozonDB: Write-Ahead Logging and the Cost of DurabilityThe Problem Before this milestone, HozonDB could lose data silently. A DELETE would mark a row's slot dead in memory, write the dirty page to disk, then remove the corresponding entry from the B+ tree00
HYHabib Yusufinmanlikehb.hashnode.dev·Jun 15 · 14 min readBuilding a Buffer Pool: Why Your Database Shouldn't Talk to Disk DirectlyHozonDB is a relational database engine I'm building from scratch in Rust, mostly as a way to actually understand how databases work instead of just using them. Previous posts covered slotted page sto00
HYHabib Yusufinmanlikehb.hashnode.dev·May 20 · 17 min readBuilding B+ Tree Indexing from Scratch in Rust — HozonDBThis is Part 2 of a two-part series on building HozonDB, a relational database engine written from scratch in Rust. Part 1 covers the slotted page storage refactor that gave indexes stable row locatio10
HYHabib Yusufinmanlikehb.hashnode.dev·May 20 · 11 min readHow I Rebuilt HozonDB's Storage Layer to Make Indexes Actually WorkWhen I started building HozonDB — a relational database engine from scratch in Rust — I made a deliberate choice to keep the storage model simple. Pages, rows packed one after another, a pointer to th10
HYHabib Yusufinmanlikehb.hashnode.dev·Dec 23, 2025 · 3 min readUnderstanding Pin<T> in RustWhile exploring the Apache DataFusion codebase, I came across this line: Box::pin(opt.run()).await I understood Box and .await, but Pin was still fuzzy for me. So I decided to dig deeper and write about it. Here's what I learned. First: What Does "M...00