Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Justin Jaffray
NULL BITMAP by Justin Jaffray
Something I didn't understand for a while is that the process of turning row-oriented data into column-oriented data isn't a totally bespoke, foreign concept in the realm of databases. It's still of the relational abstraction. Or can be. As an example, say we have this data: data = [ { "name": "Smudge", "colour": "black" }, { "name": "Sissel", "colour": "grey" }, { "name": "Hamlet", "colour": "black" } ] This represents a table in a relational database.
NULL BITMAP by Justin Jaffray
I love sampling algorithms. Here's the sampling algorithm that I find most magical. We want to generate a subset of {1, 2, ..., n} of size k.
The Death of Thread Per Core
October 20, 2025 Programming language async runtimes are very focused on handling asynchronous, possibly long running tasks, that might yield for a variety of reasons, that themselves might spawn future work. In an async runtime like async Rust, the model is that a task can yield, which, conceptually, creates a new piece of work that gets shoved onto the work queues (which is "resume that task").
Caching is an Abstraction, not an Optimization
June 30, 2025 I've always been told that caching is a tool to make software faster. That, given some careful considerations to consistency, caching makes it so that when you want to read a given piece of data, you don't have to go all the way back to some backend database or API server or SSD and can instead just read from some faster location like memory for the same data. Caching is thus a tool to improve performance.
Propositional Parlor Puzzle
April 21, 2025 I've recently been playing Blue Prince, which is a great time if you are a fan of puzzle games like Return of the Obra Dinn or Outer Wilds and also a fan of roguelike games like Slay the Spire. One of the game's rooms, the Parlor, features a logic puzzle that is different on each run. In this post we'll be doing some modelling and analysis of these puzzles. Some people might consider that a spoiler! In the parlor, there are three boxes, a blue box, a white box, and a black box.
It's Time to Stop Building KV Databases
March 24, 2025 I'm so sick of Key-Value. The most unopinionated, uninspired data model that is a pain to use for anything. They're very popular! Among database vendors. Or, specifically, storage engine vendors. They love to offer you a byte array to byte array map, and if they are feeling particularly generous, it might even be ordered so that you can do range scans. The problem is that the only thing that a KV interface is good for is as a building block for a reasonable data model.
Fine! I'll Play With Skiplists
November 25, 2024 Follow me on Bluesky! A Log-Structured Merge tree, or LSM, is a popular data structure for storage engines. It’s what is used by RocksDB, which is sort of the poster child LSM. At a high level, the way an LSM works is that new writes get added to a memory-only index called a memtable and a durable file called a write-ahead log, or WAL. The memtable is used to serve queries and the WAL is used to provide durability.
Adventures in Probability
October 28, 2024 I hope everyone had a good weekend. I went on a hike. It was great. Statistics One of my great school regrets, next to “taking three years of business classes,” is taking less statistics than I did, which was basically the bare minimum. It was, in fact the bare minimum: one probability class and one statistics class.
An introduction to join ordering
The development of the relational model heralded a big step forward for the world of databases. A few years later, SQL introduced a rich vocabulary for data manipulation: filters, projections, and—most importantly—the mighty join.
Join ordering, part II: The 'SQL'
Even in the 80’s, before Facebook knew everything there was to know about us, we as an industry had vast reams of data we needed to be able to answer questions about. To deal with this, data analysts were starting to flex their JOIN muscles in increasingly creative ways. But back in that day and age, we had neither machine learning nor rooms full of underpaid Excel-proficient interns to save us from problems we didn’t understand; we were on our own.
Be flexible and consistent: JSON comes to CockroachDB
We are excited to announce support for JSON in our 2.0 release (coming in April) and available now via our most recent 2.0 Beta release. Now you can use both structured and semi-structured data within the same database. No longer will you need to sacrifice ACID guarantees, accuracy, or the ability to scale in order to use multiple data models within the same database. This post will explain how we implemented JSON and give you a few examples of how JSON can be used to model your data.
What write skew looks like
Free SQL Courses Free online learning platform covering distributed databases, cloud-native applications, general purpose SQL databases. Start Learning Syndication from What Does Write Skew Look Like by Justin Jaffray This post is about gaining intuition for Write Skew, and, by extension, Snapshot Isolation. Snapshot Isolation is billed as a transaction isolation level that offers a good mix between performance and correctness, but the precise meaning of “correctness” here is often vague.
Join Ordering Part 2: The ''SQL''
Join ordering part 2. Even in the ’80s, before Facebook knew everything there was to know about us, we as an industry had vast reams of data we needed to be able to answer questions about. To deal with this, data analysts were starting to flex their JOIN muscles in increasingly creative ways. But back in that day and age, we had neither machine learning nor rooms full of underpaid Excel-proficient interns to save us from problems we didn’t understand; we were on our own.
An Introduction to Join Ordering
The development of the relational model heralded a big step forward for the world of databases. A few years later, SQL introduced a rich vocabulary for data manipulation: filters, projections, and — most importantly — the mighty join.
What Write Skew Looks Like
This post is about gaining an intuition for Write Skew, and, by extension, Snapshot Isolation. Snapshot Isolation is billed as a transaction isolation level that offers a good mix between performance and correctness, but the precise meaning of "correctness" here is often vague. In this post, I want to break down and capture exactly when the thing called "write skew" can happen. The unit of execution in a database is a transaction.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Justin
Contact Justin, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack