ScramDB vs YugabyteDB
YugabyteDB reuses the PostgreSQL query layer over DocDB, an LSM key-value store, and has no integrated columnar or MPP engine: analytical work is expected to leave the database for Spark or a warehouse. ScramDB keeps it in, on one copy, and finished the same questions 1638x faster.
Side by side
| ScramDB | YugabyteDB | |
|---|---|---|
| Storage | Columnar and compressed: 16 GiB for the same data | DocDB, a RocksDB-derived LSM store. Row and document oriented |
| Analytical engine | Analytical queries run in the database, on every core, in seconds. GPU execution available | No integrated columnar or MPP engine; heavy analytics is expected to run in an external system |
| Isolation | Serializable isolation, with repeatable read and read committed available | Serializable, Snapshot and Read Committed in YSQL |
| Single node | One binary, production ready on a single machine | Production guidance is replication factor 3, so 3 nodes minimum |
| Wire protocol | PostgreSQL wire protocol | PostgreSQL wire protocol (YSQL) plus a Cassandra-compatible API |
| Analytics on live data | Same copy, no export | Read replicas exist for scaling reads and are asynchronous |
| 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 |
| License | Community free to 64 GiB stored, Enterprise for clustering | Apache 2.0 |
The numbers
YugabyteDB needed 51,702 seconds to answer the same questions, and 71.60 GiB on disk. ScramDB needed 31.56 seconds and 16.07 GiB. Both speak the PostgreSQL wire protocol and both offer serializable isolation, so the difference is not the interface or the guarantee. It is that one of them stores columns and compiles the query to machine code.
Analytics that does not have to leave
When the answer to a reporting question is "export it to Spark", you have acquired a second system, a copy of the data, a scheduling problem and a staleness window. ScramDB answers the reporting question in the database, against the same rows your transactions are writing, with the same roles and row-level security policies applied.
When YugabyteDB is the right answer
Globally distributed OLTP where multi-region resilience is the headline requirement, under a fully Apache-2.0 license with no enterprise gate on replication or encryption.
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