Blogs / Company blogs

Jepsen

jepsen.io

Jepsen aims to improve the safety of distributed databases, queues, consensus systems, etc. We maintain an open source library for safety testing, and publish free, in-depth analyses of specific systems. In each analysis we explore whether the system lives up to its documentation’s claims, file new bugs, and suggest…

Popular posts
31
Total points
7,895
HN comments
2,674
Rank
#122 company

Visit jepsen.io → On Hacker News Feb 2017 – Oct 2026

Databases & Data 31Systems & Performance 30Math & Algorithms 1

1

Jepsen: PostgreSQL 12.3

PostgreSQL is a major open-source relational database with a 23-year history and a broad range of features. While Jepsen’s work has traditionally focused on distributed systems, our tooling is readily applicable to traditional, single-node databases. In this report, we present the results of applying Jepsen’s…

2

Jepsen: Amazon RDS for PostgreSQL 17.4

AWS’s Sergey Melnik, along with HN commenters matashii and Ants Aasma, have identified the cause of Long Fork in PostgreSQL clusters. As described a 2013 mailing list post , the order in which a PostgreSQL primary makes transactions visible is determined by an in-memory lock. Secondaries, however, make transactions…

4

Jepsen: NATS 2.12.1

NATS is a popular streaming system. Producers publish messages to streams , and consumers subscribe to those streams, fetching messages from them. Regular NATS streams are allowed to drop messages. However, NATS has a subsystem called JetStream , which uses the Raft consensus algorithm to replicate data among nodes…

5

Jepsen: Datomic Pro 1.0.7075

Datomic is a general-purpose database intended for systems of record. In many ways, Datomic is unusual. At any instant in time, the state of the database is represented by a set of [entity, attribute, value] ( EAV ) triples, known as datoms . Each datom declares that some entity (like a person) has a particular…

6

Jepsen: MySQL 8.0.34

MySQL needs little introduction. Over the last 28 years it has become one of the most widely deployed SQL databases. MySQL is primarily used for online transaction processing (OLTP) workloads, but is also deployed as a part of OLAP and queuing systems.

7

Jepsen: ParticleDB 1.1.4

Modern applications often spread state across a variety of systems: databases, caches, queues, data warehouses, search indices, and so on. Coordinating these systems is challenging: caches are often stale, the analytics platform might lag days behind the primary database, the search index might lose data, and…

8

CockroachDB beta-20161013

CockroachDB is a distributed SQL database, loosely patterned after Google Spanner and designed for semi-synchronous networks. It speaks the PostgreSQL wire protocol , supports a reasonable dialect of SQL , and combines replication for durability with transparent scale-out sharding for large tables. Its most…

9

FaunaDB 2.5.4

In 2012, Thomson, Diamond, Weng, et al. published Calvin: Fast Distributed Transactions for Partitioned Database Systems : a transactional protocol optimized for geographic replication. Each Calvin cluster is comprised of multiple replicas , where a replica is a collection of nodes which store a complete copy of the…

11

Jepsen: TigerBeetle 0.16.11

TigerBeetle is an Online Transactional Processing (OLTP) database built for double-entry accounting with a strong emphasis on safety and speed. It builds on the Viewstamped Replication (VR) consensus protocol to offer Strong Serializable consistency. Unlike general-purpose databases, TigerBeetle stores only accounts…

12

Jepsen: MongoDB 3.6.4

MongoDB is a long-time user of Jepsen . Over the past three years, Jepsen has performed several analyses for MongoDB, and MongoDB has integrated an expansive Jepsen test suite into their CI system. In March, MongoDB requested Jepsen perform an analysis on a previously untested configuration: sharded clusters. We also…

13

MongoDB 3.4.0-rc3

In the past year and a half, MongoDB has put a good deal of work into improved read safety, enabled by the adoption of their new replication protocol and the WiredTiger storage engine. Dirty reads were addressed in 3.2 by introducing a majority read concern , and stale reads were addressed with the introduction of the…

14

Jepsen: Bufstream 0.1

2024-11-13 : An earlier version of this report asserted that consumers with auto-commit enabled could lose data by automatically committing offsets returned by the most recent poll. This claim was based in part on Confluent’s documentation , which states:

15

Jepsen: Etcd 3.4.3

The etcd key-value store is a distributed system intended for use as a coordination primitive. Like Zookeeper and Consul , etcd stores a small volume of infrequently-updated state ( by default, up to 8 GB ) in a key-value map, and offers strict-serializable reads, writes and micro-transactions across the entire…

16

Jepsen: Dgraph 1.1.1

Dgraph is a graph database which aims to provide scalable, highly-available, and snapshot-isolated transactions over a labeled directed graph, while minimizing network communication for performance. Conceptually, Dgraph stores a set of (entity, attribute, value) triples. Entities (also known as subjects), are compact…

17

RavenDB 6.0.2 (A Jepsen Report)

RavenDB is a distributed document database which repeatedly advertises its support for ACID transactions. 1 It’s intended for OLTP workloads, and offers a variety of ETL paths for exporting data to other systems. Its transactional API revolves around a session handle, which “represents a single business transaction on…

18

Jepsen: Redis-Raft 1b3fbf6

Redis is a fast single-threaded data structure server, commonly used as a cache, scratchpad, queue, or coordination mechanism between distributed applications. It offers operations over a broad array of datatypes , including binary blobs, lists, sets, sorted sets, maps, geohashes, counters, channels, streams, and…

19

Jepsen: Redpanda 21.10.1

Redpanda is a Kafka -compatible distributed streaming system based around append-only logs. Compared to Kafka, Redpanda aims to offer users lower latencies and reduced operational complexity. It uses the Raft consensus algorithm internally, rather than depending on a separate installation of Zookeeper . Redpanda…

20

Jepsen: Dgraph 1.0.2

2019-04-10: The long fork test used in this analysis contained a bug which caused it to (in many cases) fail to identify long fork anomalies—though we did find instances of long fork using other tests. We have re-checked Dgraph 1.0.13 with a corrected checker, and its long fork tests still pass.

21

Tendermint 0.10.2

Tendermint is a server and a protocol for building linearizable (or sequentially consistent) byzantine fault-tolerant applications. Tendermint validators accept transactions from clients over HTTP, and replicate them to the other validators in the cluster, forming a totally ordered sequence of transactions. Each…

22

Jepsen: Scylla 4.2-rc3

Scylla is a distributed wide-column 1 database which originated as a C++ port of Cassandra, aiming for improved performance. It supports both Cassandra- and DynamoDB -compatible APIs, and is intended for high-throughput, low-latency workloads, including analytics, messaging, and other time-series data.

23

Jepsen: TiDB 2.1.7

In 2010, Google engineers Daniel Peng & Frank Dabek published Large-scale Incremental Processing Using Distributed Transactions and Notifications , which described Percolator: a Google-internal database for random access transactional workloads where low latencies are not required. Percolator uses a global…

24

Jepsen: Radix DLT 1.0-Beta.35.1

Radix DLT (Distributed Ledger Technology) is a distributed ledger: a serializable log of transactions over a state machine, along with mechanisms for querying that state. Throughout this report, “Radix” refers to the Radix DLT software .

25

Consistency Models

Jepsen analyzes the safety properties of distributed systems–most notably, identifying violations of consistency models. But what are consistency models? What phenomena do they allow? What kind of consistency does a given program really need?

26

Jepsen: Aerospike 3.99.0.3

Aerospike , formerly Citrusleaf, is a distributed, sharded document store designed for high-throughput, low-latency applications. Each record is a map of keys to values, which may be either primitive types (integers, strings, bytes, etc.) or nested collections like lists and maps. Secondary indices are also available…

27

Jepsen: Jetcd 0.8.2

Etcd is a coordination service designed to offer Strict Serializable reads, writes, and micro-transactions over a small, in-memory key-value store. In 2022, Jepsen re-tested etcd as a part of a private engagement covering an assortment of databases. We reported several issues to the etcd team during that engagement…

28

Jepsen: MariaDB Galera Cluster 12.1.2

MariaDB is a popular open source SQL database which began as a fork of MySQL . MariaDB Galera Cluster is an active-active replication system for MariaDB which allows reads and writes on every node. In 2015 this author analyzed MariaDB with Galera Cluster and found that although Galera claimed to offer Snapshot…

29

Jepsen: YugaByte DB 1.1.9

2019-04-10: The long fork test used in this analysis contained a bug which caused it to (in many cases) fail to identify long fork anomalies. We have re-checked YugaByte DB 1.1.15.0-b16 with a corrected checker, and its long fork tests still pass.

30

Jepsen: YugaByte DB 1.3.1

2019-09-05: YugaByte’s blog post states YugaByte DB “passes Jepsen tests”. We feel obligated to state that YugaByte DB’s Jepsen test suite does not pass, though it may in the future. Race conditions in YugaByte DB’s schema system can cause correctness errors. For example, inserting rows into a freshly-created table…