<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Transactional</title>
  <id>https://transactional.blog/</id>
  <updated>2026-03-03T22:41:29Z</updated>
  <author>
    <name>Alex Miller</name>
  </author>
  <link href="https://transactional.blog/feed.xml" rel="self" type="application/atom+xml"/>
  <entry>
    <title>Copy-and-Patch: How It Works</title>
    <link href="https://transactional.blog/copy-and-patch/how-it-works.html" type="text/html"/>
    <id>https://transactional.blog/copy-and-patch/how-it-works.html</id>
    <category term="compilers" scheme="https://transactional.blog/" label="compilers" />
    <published>2025-10-13T00:00:00Z</published>
    <updated>2025-10-13T00:00:00Z</updated>
    <summary>Clang optimizations. Machine code models. Relocations!</summary>
  </entry>
  <entry>
    <title>Copy-and-Patch: A Tutorial</title>
    <link href="https://transactional.blog/copy-and-patch/tutorial.html" type="text/html"/>
    <id>https://transactional.blog/copy-and-patch/tutorial.html</id>
    <category term="compilers" scheme="https://transactional.blog/" label="compilers" />
    <published>2025-10-13T00:00:00Z</published>
    <updated>2025-10-13T00:00:00Z</updated>
    <summary>If you can ctrl-c and ctrl-v, you can build a JIT.</summary>
  </entry>
  <entry>
    <title>NULL BITMAP on SIMD</title>
    <link href="https://transactional.blog/blog/2025-nullbitmap-simd.html" type="text/html"/>
    <id>https://transactional.blog/blog/2025-nullbitmap-simd.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2025-08-11T00:00:00Z</published>
    <updated>2025-08-11T00:00:00Z</updated>
    <summary>A NULL BITMAP guest post on loop parallelism transformations.</summary>
  </entry>
  <entry>
    <title>A Failed Experiment with Siso</title>
    <link href="https://transactional.blog/blog/2025-modern-distcc-via-siso.html" type="text/html"/>
    <id>https://transactional.blog/blog/2025-modern-distcc-via-siso.html</id>
    <category term="tools" scheme="https://transactional.blog/" label="tools" />
    <published>2025-08-01T00:00:00Z</published>
    <updated>2025-08-01T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: In-Memory Join Pipeline (2025)</title>
    <link href="https://transactional.blog/sigmod-contest/2025.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2025.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2025-04-19T00:00:00Z</published>
    <updated>2025-04-19T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Decomposing Transactional Systems</title>
    <link href="https://transactional.blog/blog/2025-decomposing-transactional-systems.html" type="text/html"/>
    <id>https://transactional.blog/blog/2025-decomposing-transactional-systems.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2025-04-17T00:00:00Z</published>
    <updated>2025-04-17T00:00:00Z</updated>
    <summary>Every transactional system must execute, order, validate, and persist transactions.</summary>
  </entry>
  <entry>
    <title>Torn Write Detection and Protection</title>
    <link href="https://transactional.blog/blog/2025-torn-writes.html" type="text/html"/>
    <id>https://transactional.blog/blog/2025-torn-writes.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2025-04-12T00:00:00Z</published>
    <updated>2025-04-12T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Talks: Enough With All The Raft</title>
    <link href="https://transactional.blog/talk/enough-with-all-the-raft.html" type="text/html"/>
    <id>https://transactional.blog/talk/enough-with-all-the-raft.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2025-02-27T00:00:00Z</published>
    <updated>2025-02-27T00:00:00Z</updated>
    <summary>There's better ways to replicate data than Raft.</summary>
  </entry>
  <entry>
    <title>Personal: Time Tracking in Obsidian</title>
    <link href="https://transactional.blog/personal/time-tracking-in-obsidian.html" type="text/html"/>
    <id>https://transactional.blog/personal/time-tracking-in-obsidian.html</id>
    <category term="tools" scheme="https://transactional.blog/" label="tools" />
    <published>2024-12-28T00:00:00Z</published>
    <updated>2024-12-28T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Notes On: Disaggregated OLTP Systems</title>
    <link href="https://transactional.blog/notes-on/disaggregated-oltp.html" type="text/html"/>
    <id>https://transactional.blog/notes-on/disaggregated-oltp.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-12-05T00:00:00Z</published>
    <updated>2024-12-05T00:00:00Z</updated>
    <summary>Aurora, Socrates, PolarDB, and Taurus.</summary>
  </entry>
  <entry>
    <title>Modern Hardware for Future Databases</title>
    <link href="https://transactional.blog/blog/2024-modern-database-hardware.html" type="text/html"/>
    <id>https://transactional.blog/blog/2024-modern-database-hardware.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-11-19T00:00:00Z</published>
    <updated>2024-11-19T00:00:00Z</updated>
  </entry>
  <entry>
    <title>How to Learn: Userland Disk I/O</title>
    <link href="https://transactional.blog/how-to-learn/disk-io.html" type="text/html"/>
    <id>https://transactional.blog/how-to-learn/disk-io.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-11-06T00:00:00Z</published>
    <updated>2024-11-06T00:00:00Z</updated>
    <summary>Filesystems, file IO, and durability.</summary>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Blocking System for Entity Resolution (2022)</title>
    <link href="https://transactional.blog/sigmod-contest/2022.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2022.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-10-27T00:00:00Z</published>
    <updated>2024-10-27T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Approximate K-nearest-neighbor Graph Construction (2023)</title>
    <link href="https://transactional.blog/sigmod-contest/2023.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2023.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-10-27T00:00:00Z</published>
    <updated>2024-10-27T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Hybrid Vector Search (2024)</title>
    <link href="https://transactional.blog/sigmod-contest/2024.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2024.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-10-27T00:00:00Z</published>
    <updated>2024-10-27T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Entity Resolution (2021)</title>
    <link href="https://transactional.blog/sigmod-contest/2021.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2021.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-09-01T00:00:00Z</published>
    <updated>2024-09-01T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Entity Resolution (2020)</title>
    <link href="https://transactional.blog/sigmod-contest/2020.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2020.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-08-27T00:00:00Z</published>
    <updated>2024-08-27T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Erasure Coding for Distributed Systems</title>
    <link href="https://transactional.blog/blog/2024-erasure-coding.html" type="text/html"/>
    <id>https://transactional.blog/blog/2024-erasure-coding.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-08-26T00:00:00Z</published>
    <updated>2024-08-26T00:00:00Z</updated>
    <summary>An overview of erasure coding, its trade-offs, and applications in distributed storage systems.</summary>
  </entry>
  <entry>
    <title>Database Startups</title>
    <link href="https://transactional.blog/blog/2024-database-startups.html" type="text/html"/>
    <id>https://transactional.blog/blog/2024-database-startups.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-08-13T00:00:00Z</published>
    <updated>2024-08-13T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Data Replication Design Spectrum</title>
    <link href="https://transactional.blog/blog/2024-data-replication-design-spectrum.html" type="text/html"/>
    <id>https://transactional.blog/blog/2024-data-replication-design-spectrum.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-07-31T00:00:00Z</published>
    <updated>2024-07-31T00:00:00Z</updated>
    <summary>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.</summary>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Sorting (2019)</title>
    <link href="https://transactional.blog/sigmod-contest/2019.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2019.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-06T00:00:00Z</published>
    <updated>2024-06-06T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Join Processing (2018)</title>
    <link href="https://transactional.blog/sigmod-contest/2018.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2018.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-05T00:00:00Z</published>
    <updated>2024-06-05T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Building BerkeleyDB: Introduction</title>
    <link href="https://transactional.blog/building-berkeleydb/introduction.html" type="text/html"/>
    <id>https://transactional.blog/building-berkeleydb/introduction.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-05T00:00:00Z</published>
    <updated>2024-06-05T00:00:00Z</updated>
    <summary>Welcome to the B-Tree tutorial.</summary>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Streaming N-Gram Filter (2017)</title>
    <link href="https://transactional.blog/sigmod-contest/2017.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2017.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-04T00:00:00Z</published>
    <updated>2024-06-04T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Social Network Graph Processing (2014)</title>
    <link href="https://transactional.blog/sigmod-contest/2014.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2014.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-03T00:00:00Z</published>
    <updated>2024-06-03T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Transaction Processing (2015)</title>
    <link href="https://transactional.blog/sigmod-contest/2015.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2015.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-03T00:00:00Z</published>
    <updated>2024-06-03T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Shortest Path (2016)</title>
    <link href="https://transactional.blog/sigmod-contest/2016.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2016.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-03T00:00:00Z</published>
    <updated>2024-06-03T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Streaming Full Text Search (2013)</title>
    <link href="https://transactional.blog/sigmod-contest/2013.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2013.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-02T00:00:00Z</published>
    <updated>2024-06-02T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Multi-dimensional Indexing (2012)</title>
    <link href="https://transactional.blog/sigmod-contest/2012.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2012.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-06-01T00:00:00Z</published>
    <updated>2024-06-01T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Durable Main-Memory Index Using Flash (2011)</title>
    <link href="https://transactional.blog/sigmod-contest/2011.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2011.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-05-25T00:00:00Z</published>
    <updated>2024-05-25T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Distributed Query Engine (2010)</title>
    <link href="https://transactional.blog/sigmod-contest/2010.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2010.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-05-24T00:00:00Z</published>
    <updated>2024-05-24T00:00:00Z</updated>
  </entry>
  <entry>
    <title>SIGMOD Programming Contest Archive: Main Memory Transactional Index (2009)</title>
    <link href="https://transactional.blog/sigmod-contest/2009.html" type="text/html"/>
    <id>https://transactional.blog/sigmod-contest/2009.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-04-28T00:00:00Z</published>
    <updated>2024-04-28T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Calling OCaml from C</title>
    <link href="https://transactional.blog/blog/2024-calling-ocaml-from-c.html" type="text/html"/>
    <id>https://transactional.blog/blog/2024-calling-ocaml-from-c.html</id>
    <category term="ocaml" scheme="https://transactional.blog/" label="ocaml" />
    <published>2024-04-15T00:00:00Z</published>
    <updated>2024-04-15T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Building BerkeleyDB: Point Reads</title>
    <link href="https://transactional.blog/building-berkeleydb/point-reads.html" type="text/html"/>
    <id>https://transactional.blog/building-berkeleydb/point-reads.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-04-08T00:00:00Z</published>
    <updated>2024-04-08T00:00:00Z</updated>
    <summary>Support for searching down the tree in search of a single value.</summary>
  </entry>
  <entry>
    <title>Building BerkeleyDB: API Basics</title>
    <link href="https://transactional.blog/building-berkeleydb/api-basics.html" type="text/html"/>
    <id>https://transactional.blog/building-berkeleydb/api-basics.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-04-07T00:00:00Z</published>
    <updated>2024-04-07T00:00:00Z</updated>
    <summary>Opening and closing databases as a BerkeleyDB ABI-compatible library.</summary>
  </entry>
  <entry>
    <title>Building BerkeleyDB: Entry Format</title>
    <link href="https://transactional.blog/building-berkeleydb/entry-format.html" type="text/html"/>
    <id>https://transactional.blog/building-berkeleydb/entry-format.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-03-03T00:00:00Z</published>
    <updated>2024-03-03T00:00:00Z</updated>
    <summary>Our next goal is to be able to walk the tree, and print out the values stored in the B-Tree.</summary>
  </entry>
  <entry>
    <title>Building BerkeleyDB: Page Format</title>
    <link href="https://transactional.blog/building-berkeleydb/page-format.html" type="text/html"/>
    <id>https://transactional.blog/building-berkeleydb/page-format.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2024-02-24T00:00:00Z</published>
    <updated>2024-02-24T00:00:00Z</updated>
    <summary>Support for parsing and printing information contained in the header for BerkeleyDB pages.</summary>
  </entry>
  <entry>
    <title>S3-Compatible Cloud Storage Cost Calculator</title>
    <link href="https://transactional.blog/blog/2023-cloud-storage-costs.html" type="text/html"/>
    <id>https://transactional.blog/blog/2023-cloud-storage-costs.html</id>
    <category term="tools" scheme="https://transactional.blog/" label="tools" />
    <published>2023-12-13T00:00:00Z</published>
    <updated>2023-12-13T00:00:00Z</updated>
  </entry>
  <entry>
    <title>How to Learn: Consensus</title>
    <link href="https://transactional.blog/how-to-learn/consensus.html" type="text/html"/>
    <id>https://transactional.blog/how-to-learn/consensus.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2023-05-07T00:00:00Z</published>
    <updated>2023-05-07T00:00:00Z</updated>
    <summary>Paxos, Raft, and all their flavors, variations, and alternatives.</summary>
  </entry>
  <entry>
    <title>How to Learn: Philosophy of How to Learn</title>
    <link href="https://transactional.blog/how-to-learn/philosophy.html" type="text/html"/>
    <id>https://transactional.blog/how-to-learn/philosophy.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2023-05-07T00:00:00Z</published>
    <updated>2023-05-07T00:00:00Z</updated>
    <summary>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.</summary>
  </entry>
  <entry>
    <title>RDMA: Soft-RoCE Requires a Specific IPv6 Address</title>
    <link href="https://transactional.blog/rdma/soft-roce-requires-ipv6-link-local.html" type="text/html"/>
    <id>https://transactional.blog/rdma/soft-roce-requires-ipv6-link-local.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2023-05-06T00:00:00Z</published>
    <updated>2023-05-06T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Concurrent Operation Diagram Generator</title>
    <link href="https://transactional.blog/blog/2022-dbdiag-ophistory.html" type="text/html"/>
    <id>https://transactional.blog/blog/2022-dbdiag-ophistory.html</id>
    <category term="tools" scheme="https://transactional.blog/" label="tools" />
    <published>2022-12-16T00:00:00Z</published>
    <updated>2022-12-16T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Darwin&#8217;s Deceptive Durability</title>
    <link href="https://transactional.blog/blog/2022-darwins-deceptive-durability.html" type="text/html"/>
    <id>https://transactional.blog/blog/2022-darwins-deceptive-durability.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2022-06-05T00:00:00Z</published>
    <updated>2022-06-05T00:00:00Z</updated>
    <summary>A reminder that macOS does not respect the usual ways of making data durable on disk.</summary>
  </entry>
  <entry>
    <title>A Survey of Database TLS Libraries</title>
    <link href="https://transactional.blog/blog/2022-database-tls-survey.html" type="text/html"/>
    <id>https://transactional.blog/blog/2022-database-tls-survey.html</id>
    <category term="databases" scheme="https://transactional.blog/" label="databases" />
    <published>2022-03-21T00:00:00Z</published>
    <updated>2022-03-21T00:00:00Z</updated>
  </entry>
  <entry>
    <title>Deterministic Simulation Testing: BUGGIFY</title>
    <link href="https://transactional.blog/simulation/buggify.html" type="text/html"/>
    <id>https://transactional.blog/simulation/buggify.html</id>
    <category term="testing" scheme="https://transactional.blog/" label="testing" />
    <published>2021-12-20T00:00:00Z</published>
    <updated>2021-12-20T00:00:00Z</updated>
    <summary>When application code provides high-level fault injection points, fuzzing becomes significantly more effective.</summary>
  </entry>
</feed>
