Some Books I Like // One Year of NULL BITMAP
This is the 52nd NULL BITMAP, which means I have been doing this for a whole year! I skipped one week before I decided that this was going to be a weekly thing, but besides that there has been a NULL...
View ArticleNULL BITMAP Builds a Database #2: Enter the Memtable
I didn't realize how hard it would be to bin-pack episodes of this thing into the roughly ~750 word chunks that I try to keep issues of this newsletter at. Lots of things are like, oh that's small, so...
View ArticleIn Codd we Trust (or not)
Get in loser, we’re doing another Codd philosophizing session. Codd’s paper introducing the relational model opens up like so:Future users of large data banks must be protected from having to know how...
View ArticlePhysical Properties #4
Previous parts of this series:Physical Properties #1Physical Properties #2Physical Properties #3Relational query planning makes a distinction between "logical properties" and "physical properties."...
View ArticleTo Understand Correctness, You Must First Understand Incorrectness
Recently I was in a Discord channel where someone wrote something akin to “I have a question about linearizability” which had an attached thread with 80 replies.This is what game designers call...
View ArticleDeriving Functional Dependencies for Selections
Over the last two weeks you were babysat by the pre-scheduling feature of Buttondown, since I was away in Japan without my laptop. Here's me in Japan:I had a nice trip. To hear more about what I...
View ArticleMultiple Returns in SQL
Podcast AppearanceI was on the Thinking About Computers podcast recently! We had a fun chat on the topic of writing technical content and research. Personally I can't stand hearing my own voice so I...
View ArticleA Query Planning Guideline
A number of readers last week reached out to direct my attention to What if a SQL Statement Returned a Database which is a much more thorough and well-articulated explanation of the core idea—thank...
View ArticleWhat do we want? Negation! When do we want it? Not later!
Hello I am traveling this weekend! I am home in Ontario. I wanted to share this picture I took of this guy feeding a bear.Bear eating an object out of a guy’s handDon’t feed bears! This is not an...
View ArticleSolving Rubik's Cubes with Computers
The first place I got into programming was making games. You can probably dig up some games I made long ago if you try hard enough (do not).In high school, my focus on programming went over to...
View ArticleSome Books I Like // One Year of NULL BITMAP
This is the 52nd NULL BITMAP, which means I have been doing this for a whole year! I skipped one week before I decided that this was going to be a weekly thing, but besides that there has been a NULL...
View ArticleTesting Query Planners
A thing I did not appreciate for a long time is how different pieces of software merit different testing methodologies. I don't necessarily mean like, a pacemaker should be subject to different...
View ArticlePhysical Properties #1
I wanna talk about relational algebra. Specifically, the things relational algebra is not concerned with, but obviously matter. Things like: ordering of a result set, distribution of data, that sort of...
View ArticlePhysical Properties #2
Last week, we talked about the idea of physical properties, which are attributes of a result set that, in some sense, do not have bearing on whether that result set is a valid answer to a given query....
View ArticlePhysical Properties #3
Last week we walked through how a query optimizer might use Physical Properties to optimize a query plan. This week, I want to talk through one surprising application of physical properties: using them...
View ArticleThe Three Places for Data in an LSM
We have talked before about how to conceptualize what an LSM does. I want to talk about another way to think through how we put together this data structure.One way to think about what we want from a...
View ArticleSome of My Favourite Query Planning Papers
Something I've learned about programmers is that for some reason they absolutely love being recommended papers. They lose their minds for it. So here is an incomplete list of some of my favourite...
View ArticleA Very Basic Decorrelator
Today we're going to begin implementing a simple query decorrelator. We're not going to finish it in this post, and I'm not sure how many posts it will take, and I'm not sure all the posts for it will...
View ArticleCAP is Good, Actually
It seems like there are two main takes regarding the CAP theorem online:In introductory materials, it is presented as a deep, fundamental truth about distributed computation. This mystique is often...
View ArticleSo You Want to Generate SQL Queries (me too)
We have talked before about how to appropriately test query planners.I wrote there:I love metamorphic testing for SQL databases because it in large part reduces the problem of testing a database to...
View Article