Performance
How fast NetlyDB is, how that is measured, and what release 1.2.0 made faster.
At a glance
NetlyDB keeps your data in memory, so reads and queries never wait for the disk. A write waits for one flush to disk, so it survives a crash. Opening a store takes longer as it grows, because the data is loaded into memory first.
| Operation | Typical time |
|---|---|
| Read a document by id | a few microseconds |
| Write a document | under 1 ms |
| Insert documents in a batch | about 6 µs per document |
| Read all 200,000 documents of a collection | about 0.2 s |
| Open a store of 200,000 documents | under 1 s |
For bulk loads, insert in batches: a batch shares one flush to disk. Writes from several threads at once share flushes too.
What 1.2.0 made faster
NetlyDB was built correctness first: its first development phase, Phase 0, made the engine trustworthy before making it fast. Release 1.2.0 is the first release focused on performance. Stores from earlier versions open unchanged.
The biggest change: writes no longer pause while a snapshot is taken. See the 1.2.0 release notes for the full list.
How it is measured
With BenchmarkDotNet on one machine: an 8-core AMD Ryzen 7 7800X3D with an NVMe SSD, on .NET 10. Each figure is the mean of 30 runs after warm-up, with every write waiting for its flush to disk. These are measurements, not guarantees: your hardware will differ, and NetlyDB does not yet state a maximum supported scale.
Compared with other databases
NetlyDB has not been benchmarked against other databases yet, so it makes no claim either way. If speed decides your choice, measure your own workload. Keep in mind that the whole data set has to fit in memory; see Limitations.