Nebari Benchmarks Overview

These benchmarks were built from git revision a94853fdd02dddb394d8b79faaf0df292011073f. They were executed at 2023-02-27T16:15:39.954030567Z at Scaleway on a GP1-XS instance running Ubuntu 20.04 with 4 CPU cores, 16GB of RAM, and local NVME storage. The full Criterion report is available here.

Do not use these measurements as a predicator for your application's performance. Every application performs differently. These micro-benchmarks are not meant to be used for anything beyond answering two questions:

  1. What is "reasonable" performance for a given benchmark?
  2. Are there any areas that Nebari's performance is sub-par that can be improved?

By including other engines in these benchmarks, we can better assess where Nebari can stand to improve. Each database engine has their strengths and weaknesses, and these benchmarks are purposely aimed at the functionality provided by Nebari only.

ACID-compliant Transactional Inserts

1 row per transaction, random u64 IDs
1 row per transaction, sequential u64 IDs

100 rows per transaction, random u64 IDs
100 rows per transaction, sequential u64 IDs

1,000 rows per transaction, random u64 IDs
1,000 rows per transaction, sequential u64 IDs

10,000 rows per transaction, random u64 IDs
10,000 rows per transaction, sequential u64 IDs

ACID-compliant Transactional "Blob" Inserts

1KB random blobs
1MB random blobs
64MB random blobs

Primary-Key Queries

Dataset containing 1,000 records with random u64 IDs

Single-record
32-records
64-records

Dataset containing 1,000 records with sequential u64 IDs

Single-record
32-records
64-records

Dataset containing 10,000 records with random u64 IDs

Single-record
100-records
625-records

Dataset containing 10,000 records with sequential u64 IDs

Single-record
100-records
625-records

Dataset containing 1,000,000 records with random u64 IDs

Single-record
1,000-records
62,500-records

Dataset containing 1,000,000 records with sequential u64 IDs

Single-record
1,000-records
62,500-records

Primary-Key Range Queries

Dataset containing 1,000 records with random u64 IDs

32-records
64-records

Dataset containing 1,000 records with sequential u64 IDs

32-records
64-records

Dataset containing 10,000 records with random u64 IDs

100-records
625-records

Dataset containing 10,000 records with sequential u64 IDs

100-records
625-records

Dataset containing 1,000,000 records with random u64 IDs

1,000-records
62,500-records

Dataset containing 1,000,000 records with sequential u64 IDs

1,000-records
62,500-records