About

transactional.blog

2025-10-13

Copy-and-Patch

2025-08-11

NULL BITMAP on SIMD

A NULL BITMAP guest post on loop parallelism transformations.
2025-07-21

Encryption At Rest

[draft]
Benchmarking [draft] Encryption Survey [draft]
2025-04-18

SQL on Key-Value Storage

[draft]
Requirements and design constraints for a implementing SQL on a (distributed) key-value store, with commentary on tradeoffs therein.
Every transactional system must execute, order, validate, and persist transactions.
2025-04-09

How to Get a Job in Databases

[draft]
2025-03-18

Linux Filesystem Durability

[draft]
There's better ways to replicate data than Raft.
2025-01-11

SQLite

[draft]
Notes on SQLite (and Limbo) internals.
ANALYZE [draft]
Aurora, Socrates, PolarDB, and Taurus.
2024-11-06

How to Learn

Suggested reading material for various topics.
Philosophy of How to Learn Storage [draft] SSDs [draft] Userland Disk I/O Key-Value Storage Engines [draft] Consensus
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
2024-08-13

Database Startups

Consistent replication algorithms can be placed on a sliding scale based on how they handle replica failures. Across the three common points on this spectrum, the resource efficiency, availability, and latency are compared, providing guidance for how to choose an appropriate replication algorithm for a use case.
2024-06-05

Building BerkeleyDB

A B-Tree tutorial series implementing an ABI-compatible BerkeleyDB clone.
Introduction BerkeleyDB Autograder [draft] Page Format Entry Format API Basics Point Reads Range Reads [draft]
2023-09-20

Why Full Text Search is Hard

[draft]
2022-09-12

FoundationDB and SQLite

[draft]
FoundationDB’s use of SQLite’s btree as its own storage engine should not be used to support claims that SQLite has a high quality and performant storage implementation.
A reminder that macOS does not respect the usual ways of making data durable on disk.
A walkthrough of how and why complex infrastructure should be built with deterministic simulation, and how to make such tests as productive as possible for developers.
Motivation [draft] Scheduling [draft] BUGGIFY Workloads [draft]
Databases run on real machines, and aspects of those machines will affect the operation of the database. If a database has a better understanding of the machine it is being run on, it can both leverage that for increased performance and caution operators about potential dangers.
2022-02-01

C++ Service Starter Pack

[draft]
An inventory of the frameworks and libraries to use when writing a network service in C++.
2021-12-19

Time Synchronization: NTP

[draft]
The Network Time Protocol is the most available and widely-used time synchronization protocol, but is claimed to offer the worst maximum clock error.