ScramDB vs CockroachDB
CockroachDB and ScramDB agree on the hard part: serializable isolation, the PostgreSQL wire protocol, and staying available when a machine dies. They disagree on storage. Cockroach keeps rows in an LSM key-value store and vectorizes on the way out; ScramDB stores columns and compiles the query to native code. On the same questions ScramDB is 347 times faster, in a quarter of the disk.
Side by side
| ScramDB | CockroachDB | |
|---|---|---|
| Storage | Columnar and compressed: 16 GiB for the same data | Pebble, an LSM key-value store. Row oriented, no columnar replica |
| Execution | Queries compile to native machine code and run on every core: 31.6 seconds for the whole analytical workload | Vectorized execution over columnar batches built in memory from row data |
| Isolation | Serializable isolation, with read committed and repeatable read available | SERIALIZABLE by default, READ COMMITTED available |
| Single node | One binary, production ready on a single machine | Production guidance is 3 nodes minimum for the default replication factor |
| Analytics on live data | Same copy, no second system, no staleness window | Same copy, but read through a row store |
| AI and agents | A semantic layer built into the engine that AI agents connect to directly, bound by the caller’s own permissions | None built in |
| Branching | Fork the database instantly, or open it as it was at any past timestamp | Backup and restore |
| License | Community free to 64 GiB stored, Enterprise for clustering | Cockroach Community License since v24.3: production use needs a commercial license unless you are under the revenue threshold |
Same guarantees, different floor
Serializable by default is the right call and Cockroach makes it. So does ScramDB, and a transaction that spans machines still commits everywhere or nowhere.
The difference shows up when a query has to read a lot of rows. Cockroach answered them in 10,966 seconds and stored the dataset in 63.28 GiB. ScramDB answered in 31.56 seconds and stored it in 16.07 GiB. Reading rows quickly helps. Not having to read them at all helps more.
You can start on one node
ScramDB runs as one binary on one machine, and it is the same binary you cluster later. There is no separate single-node edition to grow out of, and no three-node floor to reach before production.
When CockroachDB is the right answer
Multi-region OLTP where survivability and geographic data placement are the requirement and the analytical workload is genuinely light. Cockroach’s automatic rebalancing and region-aware topologies are mature and well documented.
Other head to heads
Same wire protocol, same drivers, same SQL. A columnar engine and native-code execution underneath.
ClickHouse cannot hold your transactions, so it lives next to a real database with a pipeline between them. ScramDB is both.
No columnar storage, no vectorized execution, no parallel query in the community server. Every analytical scan is a row walk.
Run it yourself in one line
One static binary, no dependencies. It picks its own config, listens on the postgres port 5432 and runs in the background.
$curl -fsSL https://scramdb.com/install | bash