RSSAmplifier

Blog

Transactional

transactional.blogRSS feed ↗45 posts

Latest posts

Copy-and-Patch: How It Works

Clang optimizations. Machine code models. Relocations!

Copy-and-Patch: A Tutorial

If you can ctrl-c and ctrl-v, you can build a JIT.

NULL BITMAP on SIMD

A NULL BITMAP guest post on loop parallelism transformations.

A Failed Experiment with Siso

SIGMOD Programming Contest Archive: In-Memory Join Pipeline (2025)

Decomposing Transactional Systems

Every transactional system must execute, order, validate, and persist transactions.

Torn Write Detection and Protection

Talks: Enough With All The Raft

There's better ways to replicate data than Raft.

Personal: Time Tracking in Obsidian

Notes On: Disaggregated OLTP Systems

Aurora, Socrates, PolarDB, and Taurus.

Modern Hardware for Future Databases

How to Learn: Userland Disk I/O

Filesystems, file IO, and durability.

SIGMOD Programming Contest Archive: Blocking System for Entity Resolution (2022)

SIGMOD Programming Contest Archive: Approximate K-nearest-neighbor Graph Construction (2023)

SIGMOD Programming Contest Archive: Hybrid Vector Search (2024)

SIGMOD Programming Contest Archive: Entity Resolution (2021)

SIGMOD Programming Contest Archive: Entity Resolution (2020)

Erasure Coding for Distributed Systems

An overview of erasure coding, its trade-offs, and applications in distributed storage systems.

Database Startups

Data Replication Design Spectrum

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.

SIGMOD Programming Contest Archive: Sorting (2019)

SIGMOD Programming Contest Archive: Join Processing (2018)

Building BerkeleyDB: Introduction

Welcome to the B-Tree tutorial.

SIGMOD Programming Contest Archive: Streaming N-Gram Filter (2017)

SIGMOD Programming Contest Archive: Social Network Graph Processing (2014)

SIGMOD Programming Contest Archive: Transaction Processing (2015)

SIGMOD Programming Contest Archive: Shortest Path (2016)

SIGMOD Programming Contest Archive: Streaming Full Text Search (2013)

SIGMOD Programming Contest Archive: Multi-dimensional Indexing (2012)

SIGMOD Programming Contest Archive: Durable Main-Memory Index Using Flash (2011)

SIGMOD Programming Contest Archive: Distributed Query Engine (2010)

SIGMOD Programming Contest Archive: Main Memory Transactional Index (2009)

Calling OCaml from C

Building BerkeleyDB: Point Reads

Support for searching down the tree in search of a single value.

Building BerkeleyDB: API Basics

Opening and closing databases as a BerkeleyDB ABI-compatible library.

Building BerkeleyDB: Entry Format

Our next goal is to be able to walk the tree, and print out the values stored in the B-Tree.

Building BerkeleyDB: Page Format

Support for parsing and printing information contained in the header for BerkeleyDB pages.

S3-Compatible Cloud Storage Cost Calculator

How to Learn: Consensus

Paxos, Raft, and all their flavors, variations, and alternatives.

How to Learn: Philosophy of How to Learn

The background and context on why the groupings exist the way they do, and thedifferent sorts of pages you’ll find in this section. But, this is allphilosophical waxing, so quite skippable.

RDMA: Soft-RoCE Requires a Specific IPv6 Address

Concurrent Operation Diagram Generator

Darwin’s Deceptive Durability

A reminder that macOS does not respect the usual ways of making data durable on disk.

A Survey of Database TLS Libraries

Deterministic Simulation Testing: BUGGIFY

When application code provides high-level fault injection points, fuzzing becomes significantly more effective.