Skip to main content
All comparisons/ScramDB vs CrateDB

ScramDB vs CrateDB

CrateDB speaks the PostgreSQL wire protocol over Lucene storage, which makes it look like a relational database until you open a transaction. Its documentation is explicit that multi-statement transactions are not supported and that START TRANSACTION is accepted for compatibility and silently ignored, leaving optimistic row versions as the concurrency story. ScramDB gives you the protocol and the transactions, and answered the same analytical workload 9.8 times faster.

Faster
9.8x
ScramDB 31.6s against CrateDB 308s. CrateDB left queries unanswered on this run; its total counts only what it finished.
Faster from cold
1.9x
ScramDB 189s against CrateDB 355s. First touch, nothing cached.
Faster to load
8.2x
ScramDB 717s against CrateDB 5,891s. Full 100 million row ingest.
Smaller on disk
3.5x
ScramDB 16.1 GiB against CrateDB 55.5 GiB. Same data, after load.
At a glance

Side by side

ScramDBCrateDB
TransactionsFull ACID up to serializable isolationNo multi-statement transactions. START TRANSACTION is accepted and ignored
Concurrency controlReal isolation levels, up to serializableOptimistic concurrency through per-row version numbers
StorageColumnar and compressedLucene: inverted indexes, doc values and BKD trees
Referential integrityForeign keys, CHECK constraints, triggers, proceduresNot part of the model
DeploymentOne binary, one processThree or more nodes recommended for production
Wire protocolPostgreSQL wire protocol, every standard driverPostgreSQL wire protocol, with documented gaps around transactions
BranchingFork the database instantly, or open it as it was at any past timestampSnapshots
AI and agentsA semantic layer inside the engine that agents connect to directly, bound by the caller’s own permissionsVector type with nearest neighbour search

A protocol without the promises behind it

Speaking the PostgreSQL wire protocol means your driver connects. It does not mean BEGIN does anything. An ORM that wraps a unit of work in a transaction will run happily against CrateDB and give you none of the atomicity it was written to rely on.

ScramDB speaks the same protocol and keeps the promise: real transactions, real isolation levels up to serializable, and a distributed commit that finishes even if the client drops.

When CrateDB is the right answer

Large scale time series and search-flavoured analytics where documents are appended rather than updated in transactions, under a fully open Apache 2.0 licence.

The measurement, as of 5 September 2026. A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.

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

Quick start · How the engine works · Talk to us

A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance, measured 5 September 2026. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.