One node to start. More nodes for capacity, replication and recovery.
A node is one machine running the engine. It uses the disks, cores and memory that machine has, and it is licensed as one node whatever those happen to be.
- A single node writes straight to its own disk. Every node writes each 64-byte container directly to its disk, append-only, with no RAM buffer first, no write-ahead log, no page cache and no fsync, and acknowledges a write only after the drive has completed it. Each container lands whole or not at all (it sits inside one drive sector, which the drive writes atomically), and nothing already on disk is ever rewritten, so an interrupted write never damages what was there, and a stopped or killed process loses nothing it acknowledged. A single node is free and is what it is: a sudden power cut or an operating-system crash can lose its most recent writes (the last few seconds on ext4, the filesystem we run on; longer on xfs). Semurg runs on, and recommends, datacenter NVMe with power-loss protection.
- Network durability starts at the second node. Replication across nodes is being wired in now: once it lands, most writes will also be copied to another node's disk, or to more than one, as you configure, and that second copy is what disaster recovery will use; object writes, deletes and guarded writes stay on one copy at first. A write whose copy cannot be made still succeeds on its home node and its reply says it is degraded (a strict setting refuses it instead). The newest write of a container is the one that counts, so no consensus protocol is needed. We have designed, but not yet built, a rule for a split network: the newest write wins when the two sides meet again, and the other copy is kept and flagged as a conflict. Today, a write whose home node is out of the cluster is refused, never taken silently by another node. The cluster is where licensing begins: it is for data above a few terabytes today, and it will be for network durability and disaster recovery once replication lands.
- The first node is a free test node, with no time limit, so you can prove it on your own data before you talk to anyone.
- A node is a node: the licence does not change with its cores, memory or disks.
Today, and what follows
How a node is measured
When we measure the engine, we record what the machine was doing while it answered, and publish that beside the number rather than instead of it.
Every disk
Each disk's throughput, against what that disk can physically do, so a number from an idle disk is visible as one.
Every core and thread
How many were actually working, judged over the whole run rather than at its busiest instant.
Every node
The same figures per node and for the cluster together, so one busy machine beside an idle one cannot read as a full one.
A number published without that record is not a result we would ask you to believe. It appears on the benchmark page the same way.