Skip to main content

Performance Benchmarks

TL;DR: On YCSB at 1M records (v0.66.3), ekoDB wins 19 of 20 head-to-head matchups: all five workloads against MongoDB and MySQL with every engine on per-commit fsync, all five against Redis in the cache tier with both non-durable, and four of five against PostgreSQL. Write-heavy margins run 3–14.8x. The single loss is pure read-only against PostgreSQL, a workload the two trade run to run. ekoDB does all of it while encrypting and decrypting every record, against engines encrypting nothing. A single ~50MB Rust binary covers both tiers, plus auth, encryption, search, and real-time subscriptions.

When to Use ekoDB (and When Not To)​

ekoDB excels when you need: write-heavy workloads with durability, read-heavy throughput, sub-millisecond latencies, CPU-efficient deployments, or a unified platform replacing multiple services (document store + KV + FTS + vector search + auth + real-time subs) in a single binary.

Consider alternatives when: you need specialized OLAP with complex window functions and CTEs (ClickHouse, DuckDB).

Quick Decision Guide

Based on YCSB benchmarks: 1M records, 64 threads, Fast storage mode. See Results Summary for numbers.

Your WorkloadBest ChoiceWhy
Write-heavy + durableekoDBFastest across all competitors with sub-millisecond latency
Read-heavy + durableekoDB, with read-only a coin tossLeads MongoDB and MySQL on every workload, and PostgreSQL on mixed reads. On 100% read-only the two trade the lead run to run — see Results Summary
Non-durable (any mix)ekoDBCompetitive or leading, while carrying auth/encryption overhead competitors skip
Low-latency (any mode)ekoDBConsistent sub-millisecond across all workloads
CPU cost-sensitiveekoDBBetter efficiency across durable and non-durable modes
Unified platformekoDBSingle binary replaces 4–5 services (auth, search, cache, DB)

Why ekoDB's Performance Is Remarkable​

ekoDB isn't just fast. It's fast despite doing more work per request than competitors. Understanding this context makes the benchmark results more meaningful.

The Overhead ekoDB Carries​

Every ekoDB request includes capabilities that competitors skip entirely:

LayerWhat HappensCompetitors
SecurityJWT/API key auth, AES-GCM encryption on all stored dataRedis: none, PG: separate
DataSchema validation, automatic indexingPG: yes, Redis: none
SearchFull-text + vector search index updatesRequires Elasticsearch + Pinecone
DurabilityConfigurable persistence guarantees per operationPG: batched, Redis: async
Real-timeSubscription notificationsRequires additional services
Durability Configuration

ekoDB supports two durability modes via the durable_operations config setting:

ModeSettingBehaviorUse Case
Durable (default)durable_operations: trueEvery confirmed write persisted to disk before responseMost workloads, guaranteed persistence
Non-Durabledurable_operations: falseWrites persisted asynchronouslyHigh-throughput, eventual durability acceptable

Durability: The Hidden Performance Tax​

Most benchmarks don't match durability settings, making some databases appear faster than they are in production. A database that skips durability guarantees will always benchmark faster — but that speed comes at the cost of data loss on crash. All ekoDB benchmarks use equivalent durability settings across databases for a fair comparison.


YCSB Results Summary​

Industry-standard YCSB benchmarks: 1M records, 1M operations, 64 threads, Fast storage mode. Measured on ekoDB v0.66.3 (2026-08-13 run, branch=main, clean tree). Reproduce with make bench-ycsb-compare.

Each engine is compared in the mode it is actually run in. Forcing a cache into per-operation fsync, or a system of record out of it, produces a number nobody can act on.

What each engine is actually doing​

Throughput only means something alongside the work each engine performs per operation. These are probed from the running engines at benchmark time and recorded in benchmark_config.txt, not assumed:

Engine (as benchmarked)Encryption at restNotes
ekoDBAES-GCM on record bodies, IDs, WAL and manifestsRecord-body encryption is unconditional; the rest are on by default.
PostgreSQL 15noneTransparent data encryption is not in core PostgreSQL. pgcrypto encrypts chosen columns; full-disk or a third-party distribution covers the rest.
MongoDB 8.0noneEncryption at rest is MongoDB Enterprise only. (Queryable Encryption, a separate in-use feature, is in Community.)
MySQL 9.6none in this runInnoDB data-at-rest encryption is available in Community via component_keyring_file since 8.0.24, but is off by default and was not enabled here. Of the four, MySQL is the one that could match this configuration.
Redis 7.xnoneRedis open source has no built-in at-rest encryption — it is expected to come from the storage layer. Redis Enterprise and Redis Cloud do provide it; the open-source build benchmarked here does not.

Every ekoDB figure below is measured while encrypting and decrypting every record, against engines encrypting nothing.

Durable tier: systems of record​

Every engine on per-commit fsync with matched group-commit windows.

WorkloadekoDBMongoDBPostgreSQLMySQL
A (50% read / 50% update)37,33910,8663,5332,519
B (95% read / 5% update)88,45672,44837,32327,282
C (100% read)90,52277,334107,95662,771
D (95% read latest / 5% insert)89,19874,58871,74645,224
F (read-modify-write)34,39611,1903,3842,690
  • Write-heavy (A, F): 3.1-14.8x faster than MongoDB, PostgreSQL and MySQL — and ekoDB is encrypting every record while those three encrypt nothing
  • Mixed and read-latest (B, D): 1.2-3.2x faster
  • Read-only (C): PostgreSQL leads, 107,956 against 90,522

Workload C is 1M point-lookups by key, and it is the one place the encryption trade shows. On write-heavy workloads the fsync dominates and per-record AES-GCM disappears into it; on a pure read workload there is no I/O to hide behind, so decryption is the whole difference. A follow-up run isolating workload C on the same build measured 96,544 against 106,462, a 9.3% gap.

The honest statement: ekoDB serves encrypted point reads at roughly 91% of the throughput of an unencrypted PostgreSQL instance — and PostgreSQL has no transparent at-rest encryption in core to turn on.

Cache tier: in-memory stores​

ekoDB's key-value path against Redis, both non-durable, which is how Redis is normally deployed (appendonly=no).

WorkloadekoDB KVRedisekoDB advantage
A111,59598,0201.14x
B128,86695,2201.35x
C129,46796,8431.34x
D118,10687,1761.35x
F82,73464,3291.29x

One binary matches a dedicated in-memory cache at cache workloads and beats the durable databases 3-15x on write-heavy ones, without running two systems.

What you are comparing against​

The tables read as engine against engine, which understates the difference. A production PostgreSQL reaching the same capability is PostgreSQL plus an encryption layer, an auth layer, a cache, a search index, and the code joining them. Each is a component someone writes, deploys, patches, monitors and is paged about.

ekoDB is one binary, with encryption beneath all of it rather than bolted alongside. The measured throughput above already includes that overhead; a competitor number that excludes it is not measuring the same system, only the same benchmark.

Analysis: Why ekoDB Leads​

The 1M record, 64-thread YCSB results reveal three architectural advantages:

1. Write Performance Under Durability

ekoDB maintains fast writes even with full persistence guarantees. Where competitors see throughput collapse when durability is enabled (Redis drops to single-digit K ops/sec), ekoDB's write path is designed for durable workloads from the ground up — not bolted on as an afterthought.

2. Scalable Concurrency

At 64 threads, ekoDB scales efficiently with minimal lock contention. Both the Key-Value and Collections engines distribute write load across cores, maintaining consistent performance as thread count increases.

3. CPU Efficiency

Why CPU Efficiency Matters

On cloud platforms, you pay for CPU cores. A database that delivers 50K ops/sec using 200% CPU (2 cores) is more cost-effective than one delivering 60K ops/sec using 600% CPU (6 cores).

Efficiency = ops/sec ÷ CPU%: Higher is better. Lower CPU per operation means smaller instances, lower cloud costs, and more headroom for co-located services.

The Bottom Line

ekoDB achieves these results while carrying significantly more overhead per request than every competitor — auth, encryption, indexing, and real-time subscriptions on every operation. A ~50MB Rust binary with zero garbage collection pauses.


Detailed YCSB Benchmarks by Storage Mode​

Industry-standard YCSB (Yahoo! Cloud Serving Benchmark) results comparing ekoDB against PostgreSQL, MongoDB, MySQL, Redis, and ekoDB (Key-Value) with matching durability settings.

YCSB Workloads Explained
WorkloadMixReal-World Example
A50% read, 50% updateSession stores, shopping carts
B95% read, 5% updateSocial media profiles, photo tagging
C100% readProduct catalogs, configuration lookups
D95% read, 5% insertNews feeds, activity streams
F50% read-modify-writeBank transactions, inventory counters
Test Configuration
  • Hardware: Apple M1 Max, 64GB RAM, NVMe SSD
  • Scale: 1,000,000 records | 1,000,000 operations | 64 threads
  • Batch Size: 1 operation per request (raw network performance test)
  • Databases: 6 databases tested — ekoDB (Collections), ekoDB (Key-Value), PostgreSQL 15, MongoDB 6.0, MySQL 8.0, Redis 7.x

All databases tested on the same machine, same day, for accurate comparison per configuration.

Driver Asymmetry

PostgreSQL benchmarks use optimized JDBC drivers with connection pooling, prepared statement caching, and batch optimizations built into the driver layer. These are production-grade drivers tuned over decades.

ekoDB benchmarks use raw TCP protocol with a basic YCSB client: no driver-level optimizations, no connection pooling magic, no prepared statement cache.

Despite this disadvantage, ekoDB leads 19 of the 20 head-to-head matchups in the v0.66.3 run: all five workloads against MongoDB, MySQL and Redis, and four of five against PostgreSQL. The exception is read-only workload C, covered in Results Summary.


Note: All benchmarks include AES-GCM encryption on all stored data.

Source run

Everything from here to the end of this section is from the 2026-02-16 comparison run, which put Redis in appendfsync=always. That configuration is kept because it answers a specific question — what Redis costs you when you demand durability from it — but it is not how Redis is normally deployed, so it is not the basis for the headline comparison at the top of this page. That summary uses the 2026-08-13 run on ekoDB v0.66.3, where each engine runs in its normal mode.

Storage Mode: Fast | Durability: Durable (guaranteed persistence)

Durability Settings​

DatabaseDurable Settingfsync BehaviorGroup Commit Delay
ekoDBdurable_operations=trueWAL fsync, group_commits=true2ms (explicit)
PostgreSQLsynchronous_commit=on, fsync=onPer-commit WAL fsynccommit_delay=2000us, commit_siblings=2
MongoDBw=1, journal=trueWiredTiger journal fsyncjournalCommitInterval=2
MySQLinnodb_flush_log_at_trx_commit=1, sync_binlog=1Per-commit redo log + binlog fsyncbinlog_group_commit_sync_delay=2000us
Redisappendfsync=alwaysPer-operation AOF fsyncN/A (no group commit)

This is the recommended production configuration. Every confirmed write is persisted to disk before the client receives a response — no data loss on crash, power failure, or unexpected shutdown. In real-world terms: a session store handling 39K mixed read/update operations per second, a product catalog serving 124K lookups per second, or a financial ledger processing 38K atomic read-modify-write transactions per second — all with full durability, encryption, and auth on every operation.

Throughput (ops/sec)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)39,369112,854116,442127,38937,929
ekoDB (Collections)36,964115,128123,655118,31536,937
MongoDB10,51172,32777,09576,01710,130
MySQL2,50526,73063,01645,4092,324
PostgreSQL5,42054,555107,22794,9494,790
Redis6,0226,403103,8645,9994,200

Key findings — all figures in this subsection are from the 2026-02-16 run described in the note above, not the v0.66.3 summary at the top of this page:

  • ekoDB leads every workload in that run, both paths scoring A grade (84 and 81 out of 100)
  • Workload A (50% read/50% update): ekoDB (Key-Value) 7.3x faster than PostgreSQL, 3.7x faster than MongoDB
  • Workload B (95% read/5% update): ekoDB (Collections) 2.1x faster than PostgreSQL, 1.6x faster than MongoDB
  • Workload C (100% read): ekoDB (Collections) 15% faster than PostgreSQL (124K vs 107K), 1.6x faster than MongoDB
  • Workload D (95% read latest/5% insert): ekoDB (Key-Value) 127K — fastest across all databases and workloads, 1.3x faster than PostgreSQL, 1.7x faster than MongoDB
  • Workload F (Read-Modify-Write): ekoDB (Key-Value) 7.9x faster than PostgreSQL, 3.7x faster than MongoDB
  • Redis struggles with durable writes (appendfsync=always): 10ms+ latency on non-read workloads, only 4–6K ops/sec on A/D/F

Average Latency (ms)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)0.530.460.590.400.43
ekoDB (Collections)0.430.400.450.390.41
MongoDB1.170.440.790.431.38
MySQL1.540.250.940.581.87
PostgreSQL1.010.170.560.311.16
Redis10.609.960.6110.1210.10

Key findings:

  • ekoDB maintains sub-millisecond latencies across all workloads (0.39–0.59ms)
  • Lowest latency on write-heavy Workloads A (0.43ms) and F (0.41ms)
  • PostgreSQL has lower latency on read-heavy workloads B (0.17ms) and C (0.56ms)
  • Redis latency explodes on write-heavy workloads: 10.60ms on Workload A vs ekoDB's 0.43ms — a 24x difference due to per-operation AOF fsync

Tail Latency — P95 (ms)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB0.751.381.721.641.37
MongoDB6.161.972.771.865.15
PostgreSQL3.560.441.061.243.88

Tail Latency — P99 (ms)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB1.182.503.143.113.46
MongoDB12.033.216.692.909.79
PostgreSQL6.280.845.207.246.89

Key findings (tail latency):

  • Write-heavy P99 (A, F): ekoDB's P99 stays under 3.5ms — 5–10x lower than MongoDB (9.8–12ms) and 2–5x lower than PostgreSQL (6.3–6.9ms). This means fewer SLA breaches under production load
  • Read-heavy P99 (B, C, D): ekoDB delivers consistent 2.5–3.1ms P99. PostgreSQL has lower P99 on Workload B (0.84ms) but spikes to 5.2–7.2ms on C and D
  • Predictable tail behavior: ekoDB's P95-to-P99 spread is tight (typically 1.5–2x), indicating consistent performance without long-tail spikes. MongoDB's spread can reach 2–3x on write-heavy workloads

CPU Efficiency (ops/sec per CPU %)​

Note: ekoDB intentionally caps CPU usage at 95% to leave headroom for system stability. Other databases typically try to use 100% of available CPU during benchmarks.

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)248499548479226
ekoDB (Collections)145357447412109
MongoDB4610311111650
MySQL4615019815538
PostgreSQL4517223822240
Redis2572801,336271175

Key findings:

  • ekoDB (Key-Value) achieves 2–5x better CPU efficiency than PostgreSQL and MongoDB across all workloads
  • Best efficiency on Workload D: ekoDB (Key-Value) 479 ops/CPU% (2.2x PostgreSQL, 4.1x MongoDB)
  • Redis achieves high CPU efficiency on Workload C (1,336 ops/CPU%) due to minimal CPU usage on pure reads, but collapses on write-heavy workloads

CPU Utilization Details​

DatabaseA AvgA PeakB AvgB PeakC AvgC PeakD AvgD PeakF AvgF Peak
ekoDB (Key-Value)158.4289.8226.1312.5212.1305.0265.4356.1167.8229.5
ekoDB (Collections)254.8346.6322.0431.4276.4383.1287.1371.0337.3430.4
MongoDB224.0344.4697.2819.8690.7780.6651.3763.7201.8552.1
MySQL53.385.8177.4253.9317.6366.2292.3365.661.196.3
PostgreSQL120.2182.9316.3527.6450.4657.0426.7630.8118.8173.3
Redis23.427.922.826.877.794.122.127.023.927.8

Measured on 10-core Apple M1 Max. CPU% > 100 indicates multi-core usage.

Durability vs Performance Trade-off

Non-durable mode is faster but risky:

  • Data loss window: Uncommitted writes lost on crash (typically 0–1 seconds)
  • Use case: Caches, temp data, dev/test environments, bulk ingestion

Durable mode (default) is recommended for production:

  • In durable mode, ekoDB leads write-heavy and mixed YCSB workloads with equivalent durability settings, and trades pure read-only with PostgreSQL
  • Use durable for production, non-durable only for caches/temp data

Cache Mode: ekoDB KV vs Redis​

A head-to-head comparison of ekoDB's Key-Value engine against Redis in pure cache mode — no persistence, no durability overhead. This isolates raw in-memory throughput performance.

Test Configuration
  • Hardware: Apple M1 Max, 64GB RAM, NVMe SSD
  • Scale: 1,000,000 records | 1,000,000 operations | 64 threads
  • Storage Mode: Fast | Durability: Non-Durable (no fsync, no persistence)
  • ekoDB: durable_operations=false (async WAL)
  • Redis: appendonly=no (no persistence)

Throughput (ops/sec)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)87,07890,49890,05880,78261,660
Redis91,70187,62788,58284,18258,851

Average Latency (ms)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)0.700.690.720.770.67
Redis0.690.720.710.710.72

CPU Efficiency (ops/sec per CPU %)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Key-Value)419550588432305
Redis1,1891,1391,1411,087766

Performance Scores​

DatabaseScoreGrade
Redis97A+
ekoDB (Key-Value)83A
What This Means

ekoDB matches Redis on throughput (~82K avg ops/sec) and latency (~0.72ms avg) — despite carrying the full overhead described above on every operation. Redis wins decisively on CPU efficiency due to its single-threaded, minimal-overhead design.

If you're choosing between Redis and ekoDB for caching, ekoDB delivers equivalent speed plus built-in auth, encryption, search, and real-time subscriptions — without additional services.


Balanced Mode​

Balanced storage mode is designed for datasets larger than available RAM, automatically managing which records stay in memory and which are stored on disk.

Storage Mode: Balanced | Durability: Durable (guaranteed persistence)

Balanced mode is designed for datasets that exceed available RAM — user profile stores, content management systems, and product catalogs where the total dataset is large but the active working set fits in memory. ekoDB leads on write-heavy and mixed workloads (A, B, F) with 1.6–2.9x better CPU efficiency than the three durable engines, while PostgreSQL edges ahead on pure-read workloads (C, D) where its mature query optimizer is most effective.

Throughput (ops/sec)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Collections)30,46275,26787,22281,01131,818
PostgreSQL5,20753,112103,37094,7695,020
MongoDB11,07168,71471,00368,61110,423
MySQL4,60342,80661,00546,1554,804

Average Latency (ms)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Collections)0.600.640.670.580.58
PostgreSQL1.060.170.590.341.17
MongoDB1.170.490.870.511.17
MySQL1.260.300.990.661.20

CPU Efficiency (ops/sec per CPU %)​

DatabaseWorkload AWorkload BWorkload CWorkload DWorkload F
ekoDB (Collections)108281346342104
PostgreSQL4317617919942
MongoDB49961039443
MySQL6114419614360

vs Fast + Durable: Balanced mode trails across all workloads — Fast + Durable delivers 39K (A), 115K (B), 124K (C), 127K (D), 38K (F). The gap is most pronounced on read-heavy workloads where Fast mode's in-memory primary storage eliminates disk access entirely.

Storage Mode Guide
ModeOptimized ForBest For
FastMaximum throughput, in-memory performanceLow-latency reads, data fits in RAM
BalancedMemory-efficient, larger-than-RAM datasetsDatasets larger than RAM, general-purpose

Feature Comparison​

Beyond raw performance, ekoDB consolidates capabilities that typically require multiple external services into a single ~50MB binary. The table below shows what ships built-in versus what requires extensions or separate infrastructure.

FeatureekoDBPostgreSQLMongoDBMySQLRedis
Document Queries✅ Built-in JSON✅ SQL + JSONB✅ Built-in BSON⚠️ JSON columns⚠️ RedisJSON module
Vector Search✅ Built-in⚠️ pgvector ext⚠️ Atlas only❌ Needs Pinecone⚠️ RediSearch module
Full-Text Search✅ Built-in⚠️ FTS config⚠️ Atlas Search⚠️ FULLTEXT index⚠️ RediSearch module
Built-in Auth✅ JWT + API keys⚠️ Roles only⚠️ SCRAM only⚠️ Roles only⚠️ ACL only
Per-op Encryption✅ AES-GCM⚠️ pgcrypto ext⚠️ CSFLE client-side⚠️ TDE / app-level❌ TLS in-transit only
Single Binary✅ Yes❌ Multi-process❌ mongod + mongos❌ Multi-process✅ Yes
Real-time Subscriptions✅ WebSocket⚠️ LISTEN/NOTIFY⚠️ Change Streams❌ Needs external⚠️ Pub/Sub
Durable Writes✅ Per-operation✅ Per-commit✅ Journal✅ Per-commit⚠️ AOF fsync

Embedded Benchmarks (Local Performance)​

These benchmarks measure ekoDB's core Rust database engine running in-process — no network round-trips, no serialization, no TCP overhead. This represents the performance floor for applications that embed ekoDB directly as a library rather than connecting over the network, and provides a direct comparison against established embedded databases like SQLite, RocksDB, and LevelDB.

Benchmark Environment

All benchmarks run on the embedded Rust database engine. Production performance via REST/WebSocket/TCP APIs includes additional network latency.

Summary​

CategoryOperationekoDBSQLiteRocksDBLevelDB
Key-ValueGet185 ns~5 µs~3 µs~4 µs
Key-ValueSet3.5 µs~50 µs~6 µs~8 µs
Queryfind_by_id2.3 µs~10 µsN/AN/A
QuerySimple (10 records)108 µs~200 µsN/AN/A
InsertSingle record101 µs~50 µs~6 µs~8 µs
UpdateSingle record27 µs~50 µs~6 µs~8 µs

When to use ekoDB: Excellent reads and KV operations, plus document queries that RocksDB/LevelDB can't do. The KV layer delivers 185 ns Get and 3.5 µs Set with high-concurrency access.

When to consider alternatives: RocksDB/LevelDB are faster at raw writes. They're pure KV stores without document parsing or indexing overhead.

Key-Value Operations​

OperationekoDBSQLiteRocksDBLevelDB
Get185 ns~5 µs~3 µs~4 µs
Set3.5 µs~50 µs~6 µs~8 µs
Exists109 ns~5 µs~3 µs~4 µs
Delete85 ns~50 µs~6 µs~8 µs

ekoDB's KV layer uses lock-free concurrent storage optimized for reads. RocksDB/LevelDB edge ahead on writes due to LSM-tree architecture.

Query Operations​

RecordsekoDB (Simple)ekoDB (Complex)SQLiteDuckDB
10108 µs109 µs~200 µs~300 µs
100113 µs1.16 ms~500 µs~600 µs
1000120 µs12.8 ms~2 ms~15 ms

ekoDB maintains consistent performance as result sets grow. For complex analytical queries, DuckDB is purpose-built for that use case.

Cache Warming​

ekoDB's pattern-based cache warming pre-loads frequently accessed records:

RecordsUncachedCachedSpeedup
10329 µs109 µs3.0x
1003.38 ms1.08 ms3.1x
100041.4 ms11.4 ms3.6x

Write Operations​

OperationekoDBSQLiteRocksDBLevelDB
Single insert101 µs~50 µs~6 µs~8 µs
Batch insert 1005.2 ms~5 ms~600 µs~800 µs
Single update27 µs~50 µs~6 µs~8 µs
Single delete72 µs~50 µs~6 µs~8 µs

RocksDB/LevelDB dominate write performance. Their LSM-tree design converts random writes to sequential I/O. ekoDB includes indexing overhead that slows writes but accelerates reads and enables queries.

Join Operations​

Join TypeekoDB (10)ekoDB (100)ekoDB (1000)SQLite (1000)
Simple Join22 µs528 µs42.9 ms~80 ms
Multi-Collection22 µs530 µs40.9 ms~100 ms
Filtered Join25 µs617 µs45.6 ms~90 ms

ekoDB outperforms SQLite on joins due to in-memory processing. For complex join strategies on large datasets, SQLite's query planner offers more sophistication.

Authentication & Encryption​

OperationTime
Validate API key87 ns
Generate token1.08 µs
Validate token1.61 µs
Encrypt (small)2.0 µs
Encrypt (large)72.3 µs

Sub-microsecond auth overhead means authentication is negligible in request latency.

Feature Comparison (Embedded)​

FeatureekoDBSQLiteRocksDBLevelDB
Document queries✅✅❌❌
Full-text search✅✅ (FTS5)❌❌
Vector search✅❌❌❌
Built-in auth✅❌❌❌
ACID transactions✅✅✅❌

ekoDB trades some raw write performance for a richer feature set. If you need pure KV speed, RocksDB wins. If you need queries, search, and auth in one package, ekoDB is the only embedded option.


See Also​