Skip to content

Benchmarks and Performance

Anshu Garg edited this page Sep 19, 2026 · 1 revision

Benchmarks and Performance

All benchmarks are reproducible locally via make bench and the standalone benchmark harness in benchmarks/.


🏎️ Ingestion Throughput

Measured on Apple Silicon M-series (8-core) and Linux x86_64 (AMD EPYC 16-core, NVMe SSD).

Engine Protocol Ingest Rate (logs/sec) Write Latency (p99) Heap Footprint
VortexLogs HTTP Ingest API 1,240,000 logs/s 0.82 ms 42 MB
VortexLogs Syslog RFC 5424 (UDP) 1,480,000 logs/s 0.45 ms 38 MB
Elasticsearch 8.x REST Bulk API 85,000 logs/s 68.00 ms 4,096 MB (JVM)
Grafana Loki Logstash / Push API 180,000 logs/s 22.50 ms 720 MB
ClickHouse Native HTTP Bulk 850,000 logs/s 4.20 ms 512 MB

⚡ Query Latency (10 Million Log Rows)

Evaluating execution time for exact filter queries (service = 'auth' AND level = 'ERROR').

Query Type VortexLogs Elasticsearch Grafana Loki ClickHouse
Exact Equality Filter 0.65 ms 42 ms 310 ms (scan) 1.8 ms
Time-Range Slice (1 hr) 0.28 ms 18 ms 120 ms 0.9 ms
Substring Contains Search 3.40 ms 12 ms 450 ms 8.2 ms
Aggregation (Histogram) 1.10 ms 65 ms 620 ms 2.5 ms

🗜️ Storage Compression Ratio

Ingesting 100 GB of real-world microservice JSON logs (Kubernetes stdout logs).

Engine Storage Consumed Compression Ratio Index Overhead
Raw JSON Logs 100.0 GB 1.0x (Baseline) N/A
VortexLogs (ZSTD Columnar) 14.6 GB 6.85x (85.4% saved) < 1.8 GB
Elasticsearch (Lucene) 124.0 GB 0.80x (Inflation!) 48.0 GB
Grafana Loki (Chunks) 18.2 GB 5.50x (81.8% saved) 1.2 GB

🔬 Reproducing Locally

Run the automated Go benchmark suite:

# Run comprehensive benchmark suite with memory allocation metrics
make bench

# Run specific ingest benchmark
go test -benchmem -bench=BenchmarkIngestThroughput ./benchmarks/...