diff --git a/README.md b/README.md index 597ef4c..7ca8b7f 100644 --- a/README.md +++ b/README.md @@ -189,16 +189,38 @@ make run PORT=9000 DATA_DIR=/tmp/db VERBOSE=1 ## Performance -From benchmarks on the original Zig version (Odin expected to be similar or better): +Benchmarked on single node localhost, 1000 iterations per test. -``` -Sequential Writes | 10000 ops | 245.32 ms | 40765 ops/sec -Random Reads | 10000 ops | 312.45 ms | 32006 ops/sec -Batch Writes | 10000 ops | 89.23 ms | 112071 ops/sec -PutItem | 5000 ops | 892.34 ms | 5604 ops/sec -GetItem | 5000 ops | 678.91 ms | 7365 ops/sec -Scan (full table) | 5000 ops | 234.56 ms | 21320 ops/sec -``` +### Basic Operations + +| Operation | Throughput | Avg Latency | P95 Latency | P99 Latency | +|-----------|------------|-------------|-------------|-------------| +| **PutItem** | 1,021 ops/sec | 0.98ms | 1.02ms | 1.64ms | +| **GetItem** | 1,207 ops/sec | 0.83ms | 0.90ms | 1.14ms | +| **Query** | 1,002 ops/sec | 1.00ms | 1.11ms | 1.85ms | +| **Scan** (100 items) | 18,804 ops/sec | 0.05ms | - | - | +| **DeleteItem** | 1,254 ops/sec | 0.80ms | - | - | + +### Batch Operations + +| Operation | Throughput | Batch Size | +|-----------|------------|------------| +| **BatchWriteItem** | 9,297 ops/sec | 25 items | +| **BatchGetItem** | 9,113 ops/sec | 25 items | + +### Concurrent Operations + +| Workers | Throughput | Avg Latency | P95 Latency | P99 Latency | +|---------|------------|-------------|-------------|-------------| +| **10 concurrent** | 1,286 ops/sec | 7.70ms | 15.16ms | 19.72ms | + +### Large Payloads + +| Payload Size | Throughput | Avg Latency | +|--------------|------------|-------------| +| **10KB** | 522 ops/sec | 1.91ms | +| **50KB** | 166 ops/sec | 6.01ms | +| **100KB** | 96 ops/sec | 10.33ms | ## API Compatibility