The Database Doctor
Musing about Databases

Latest Posts

Cover image for Introducing the TPC series - TPC-H Query 1: Column Storage and Local Aggregation
Introducing the TPC series - TPC-H Query 1: Column Storage and Local Aggregation

After the wonderful feedback on the previous blog about Iceberg - it is now time to switch gears. Databases are more than row storage engines. They are algorithm machines, helping that...

Cover image for Iceberg, The Right Idea - The Wrong Spec - Part 2 of 2: The Spec
Iceberg, The Right Idea - The Wrong Spec - Part 2 of 2: The Spec

Let us finally look at what is so wrong with the Iceberg spec and why this simply isn't a serious attempt at solving the metadata problem of large Data Lakes. In the first part of this I took...

Cover image for Iceberg, The Right Idea - The Wrong Spec - Part 1 of 2: History
Iceberg, The Right Idea - The Wrong Spec - Part 1 of 2: History

Iceberg: The great unifying vision finally allowing us to escape the vendor lock-in of our database engines. One table and metadata format to find them ... And in the darkness bind I the...

Greed vs Bravery Based Engineering

It is difficult to find words that accurately describe the cruelty, selfishness and outright evil on display from the White House these days. The guiding principle of Gordon Gekko: is...

Cover image for Coupling, Complexity, and Coding
Coupling, Complexity, and Coding

Why is the IT industry obsessed with decoupling? Does breaking systems into smaller parts you can understand individually really make them easier to manage and scale? Today, we the of...

Making Decent Python Libraries - Part 1

Python has now infected computer science departments and data analysts across the planet. The resulting ecosystem is a mess of libraries - that are often poorly designed out outright...

Cover image for Why are Databases so Hard to Make? Part 4 - Digging up Graves
Why are Databases so Hard to Make? Part 4 - Digging up Graves

In my last post about high speed DML, I talked how it is possible to modify tables at the kind of speeds that a modern SSD can deliver. I sketched an outline of an algorithm that can easily us...

Cover image for Why are Databases so Hard to Make? Part 3 - High Speed DML
Why are Databases so Hard to Make? Part 3 - High Speed DML

After a brief intermezzo about testing (read about my thoughts here: Testing is Hard and we often use the wrong Incentives) - it is time to continue our journey together to where we will A...

Cover image for Testing is Hard  and we often use the wrong Incentives
Testing is Hard and we often use the wrong Incentives

I have been spending a lot of time thinking about testing and reviewing testing lately. At a superficial level - testing looks simple: Write test matrix, code tests, run tests, learn we...

Cover image for Why are Databases so Hard to Make? Part 2 - Logging to Disk
Why are Databases so Hard to Make? Part 2 - Logging to Disk

Transaction logs. Why are they so important and why are they so hard to make?