Add serve mode, fix binary tags, document CLI tools, improve Docker
Some checks failed
Go / build-and-release (push) Has been cancelled

- Add 'serve' subcommand for ephemeral RAM-based relay at /dev/shm with
  open ACL mode for testing and benchmarking
- Fix e-tag and p-tag decoding to use ValueHex()/ValueBinary() methods
  instead of Value() which returns raw bytes for binary-optimized storage
- Document all command-line tools in readme.adoc (relay-tester, benchmark,
  stresstest, blossomtest, aggregator, convert, FIND, policytest, etc.)
- Switch Docker images from Alpine to Debian for proper libsecp256k1
  Schnorr signature and ECDH support required by Nostr
- Upgrade Docker Go version from 1.21 to 1.25
- Add ramdisk mode (--ramdisk) to benchmark script for eliminating disk
  I/O bottlenecks in performance measurements
- Add docker-compose.ramdisk.yml for tmpfs-based benchmark volumes
- Add test coverage for privileged policy with binary-encoded p-tags
- Fix blossom test to expect 200 OK for anonymous uploads when auth is
  not required (RequireAuth=false with ACL mode 'none')
- Update follows ACL to handle both binary and hex p-tag formats
- Grant owner access to all users in serve mode via None ACL
- Add benchmark reports from multi-relay comparison run
- Update CLAUDE.md with binary tag handling documentation
- Bump version to v0.30.2
This commit is contained in:
2025-11-26 09:52:29 +00:00
parent f1ddad3318
commit fad39ec201
42 changed files with 2720 additions and 234 deletions

View File

@@ -0,0 +1,194 @@
================================================================
NOSTR RELAY BENCHMARK AGGREGATE REPORT
================================================================
Generated: 2025-11-26T08:04:35+00:00
Benchmark Configuration:
Events per test: 50000
Concurrent workers: 24
Test duration: 60s
Relays tested: 9
================================================================
SUMMARY BY RELAY
================================================================
Relay: rely-sqlite
----------------------------------------
Status: COMPLETED
Events/sec: 16298.40
Events/sec: 6150.97
Events/sec: 16298.40
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.360569ms
Bottom 10% Avg Latency: 746.704µs
Avg Latency: 1.411735ms
P95 Latency: 2.160818ms
P95 Latency: 2.29313ms
P95 Latency: 916.446µs
Relay: next-orly-badger
----------------------------------------
Status: COMPLETED
Events/sec: 16698.91
Events/sec: 6011.59
Events/sec: 16698.91
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.331911ms
Bottom 10% Avg Latency: 766.682µs
Avg Latency: 1.496861ms
P95 Latency: 2.019719ms
P95 Latency: 2.715024ms
P95 Latency: 914.112µs
Relay: next-orly-dgraph
----------------------------------------
Status: COMPLETED
Events/sec: 14573.58
Events/sec: 6072.22
Events/sec: 14573.58
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.571025ms
Bottom 10% Avg Latency: 802.953µs
Avg Latency: 1.454825ms
P95 Latency: 2.610305ms
P95 Latency: 2.541414ms
P95 Latency: 902.751µs
Relay: next-orly-neo4j
----------------------------------------
Status: COMPLETED
Events/sec: 16594.60
Events/sec: 6139.73
Events/sec: 16594.60
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.341265ms
Bottom 10% Avg Latency: 760.268µs
Avg Latency: 1.417529ms
P95 Latency: 2.068012ms
P95 Latency: 2.279114ms
P95 Latency: 893.313µs
Relay: khatru-sqlite
----------------------------------------
Status: COMPLETED
Events/sec: 16775.48
Events/sec: 6077.32
Events/sec: 16775.48
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.316097ms
Bottom 10% Avg Latency: 743.925µs
Avg Latency: 1.448816ms
P95 Latency: 2.019999ms
P95 Latency: 2.415349ms
P95 Latency: 915.807µs
Relay: khatru-badger
----------------------------------------
Status: COMPLETED
Events/sec: 14573.64
Events/sec: 6123.62
Events/sec: 14573.64
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.582659ms
Bottom 10% Avg Latency: 849.196µs
Avg Latency: 1.42045ms
P95 Latency: 2.584156ms
P95 Latency: 2.297743ms
P95 Latency: 911.2µs
Relay: relayer-basic
----------------------------------------
Status: COMPLETED
Events/sec: 16103.85
Events/sec: 6038.31
Events/sec: 16103.85
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.401051ms
Bottom 10% Avg Latency: 788.805µs
Avg Latency: 1.501362ms
P95 Latency: 2.187347ms
P95 Latency: 2.477719ms
P95 Latency: 920.8µs
Relay: strfry
----------------------------------------
Status: COMPLETED
Events/sec: 16207.30
Events/sec: 6075.12
Events/sec: 16207.30
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.381579ms
Bottom 10% Avg Latency: 760.474µs
Avg Latency: 1.45496ms
P95 Latency: 2.15555ms
P95 Latency: 2.414222ms
P95 Latency: 907.647µs
Relay: nostr-rs-relay
----------------------------------------
Status: COMPLETED
Events/sec: 15751.45
Events/sec: 6163.36
Events/sec: 15751.45
Success Rate: 100.0%
Success Rate: 100.0%
Success Rate: 100.0%
Avg Latency: 1.442411ms
Bottom 10% Avg Latency: 812.222µs
Avg Latency: 1.414472ms
P95 Latency: 2.22848ms
P95 Latency: 2.267184ms
P95 Latency: 921.434µs
================================================================
DETAILED RESULTS
================================================================
Individual relay reports are available in:
- /reports/run_20251126_073410/khatru-badger_results.txt
- /reports/run_20251126_073410/khatru-sqlite_results.txt
- /reports/run_20251126_073410/next-orly-badger_results.txt
- /reports/run_20251126_073410/next-orly-dgraph_results.txt
- /reports/run_20251126_073410/next-orly-neo4j_results.txt
- /reports/run_20251126_073410/nostr-rs-relay_results.txt
- /reports/run_20251126_073410/relayer-basic_results.txt
- /reports/run_20251126_073410/rely-sqlite_results.txt
- /reports/run_20251126_073410/strfry_results.txt
================================================================
BENCHMARK COMPARISON TABLE
================================================================
Relay Status Peak Tput/s Avg Latency Success Rate
---- ------ ----------- ----------- ------------
rely-sqlite OK 16298.40 1.360569ms 100.0%
next-orly-badger OK 16698.91 1.331911ms 100.0%
next-orly-dgraph OK 14573.58 1.571025ms 100.0%
next-orly-neo4j OK 16594.60 1.341265ms 100.0%
khatru-sqlite OK 16775.48 1.316097ms 100.0%
khatru-badger OK 14573.64 1.582659ms 100.0%
relayer-basic OK 16103.85 1.401051ms 100.0%
strfry OK 16207.30 1.381579ms 100.0%
nostr-rs-relay OK 15751.45 1.442411ms 100.0%
================================================================
End of Report
================================================================

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_khatru-badger_8
Events: 50000, Workers: 24, Duration: 1m0s
1764143463950443 migrating to version 1... /build/pkg/database/migrations.go:66
1764143463950524 migrating to version 2... /build/pkg/database/migrations.go:73
1764143463950554 migrating to version 3... /build/pkg/database/migrations.go:80
1764143463950562 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764143463950601 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764143463950677 migrating to version 4... /build/pkg/database/migrations.go:87
1764143463950693 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764143463950707 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764143463950715 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764143463950741 migrating to version 5... /build/pkg/database/migrations.go:94
1764143463950748 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764143463950772 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764143463950779 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:51:03 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.430851381s
Events/sec: 14573.64
Avg latency: 1.582659ms
P90 latency: 2.208413ms
P95 latency: 2.584156ms
P99 latency: 3.989364ms
Bottom 10% Avg latency: 849.196µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 327.135579ms
Burst completed: 5000 events in 347.321999ms
Burst completed: 5000 events in 293.638919ms
Burst completed: 5000 events in 315.213974ms
Burst completed: 5000 events in 293.822691ms
Burst completed: 5000 events in 393.17551ms
Burst completed: 5000 events in 317.689223ms
Burst completed: 5000 events in 283.629668ms
Burst completed: 5000 events in 306.891378ms
Burst completed: 5000 events in 281.684719ms
Burst test completed: 50000 events in 8.165107452s, errors: 0
Events/sec: 6123.62
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.414376807s
Combined ops/sec: 2047.97
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 367781 queries in 1m0.004424256s
Queries/sec: 6129.23
Avg query latency: 1.861418ms
P95 query latency: 7.652288ms
P99 query latency: 11.670769ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 307708 operations (257708 queries, 50000 writes) in 1m0.003628582s
Operations/sec: 5128.16
Avg latency: 1.520953ms
Avg query latency: 1.503959ms
Avg write latency: 1.608546ms
P95 latency: 3.958904ms
P99 latency: 6.227011ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.430851381s
Total Events: 50000
Events/sec: 14573.64
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 102 MB
Avg Latency: 1.582659ms
P90 Latency: 2.208413ms
P95 Latency: 2.584156ms
P99 Latency: 3.989364ms
Bottom 10% Avg Latency: 849.196µs
----------------------------------------
Test: Burst Pattern
Duration: 8.165107452s
Total Events: 50000
Events/sec: 6123.62
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 211 MB
Avg Latency: 1.42045ms
P90 Latency: 1.976894ms
P95 Latency: 2.297743ms
P99 Latency: 3.397761ms
Bottom 10% Avg Latency: 671.897µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.414376807s
Total Events: 50000
Events/sec: 2047.97
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 134 MB
Avg Latency: 390.225µs
P90 Latency: 811.651µs
P95 Latency: 911.2µs
P99 Latency: 1.140536ms
Bottom 10% Avg Latency: 1.056491ms
----------------------------------------
Test: Query Performance
Duration: 1m0.004424256s
Total Events: 367781
Events/sec: 6129.23
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 113 MB
Avg Latency: 1.861418ms
P90 Latency: 5.800639ms
P95 Latency: 7.652288ms
P99 Latency: 11.670769ms
Bottom 10% Avg Latency: 8.426888ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003628582s
Total Events: 307708
Events/sec: 5128.16
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 100 MB
Avg Latency: 1.520953ms
P90 Latency: 3.075583ms
P95 Latency: 3.958904ms
P99 Latency: 6.227011ms
Bottom 10% Avg Latency: 4.506519ms
----------------------------------------
Report saved to: /tmp/benchmark_khatru-badger_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_khatru-badger_8/benchmark_report.adoc
RELAY_NAME: khatru-badger
RELAY_URL: ws://khatru-badger:3334
TEST_TIMESTAMP: 2025-11-26T07:54:21+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_khatru-sqlite_8
Events: 50000, Workers: 24, Duration: 1m0s
1764143261406084 migrating to version 1... /build/pkg/database/migrations.go:66
1764143261406169 migrating to version 2... /build/pkg/database/migrations.go:73
1764143261406201 migrating to version 3... /build/pkg/database/migrations.go:80
1764143261406210 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764143261406219 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764143261406234 migrating to version 4... /build/pkg/database/migrations.go:87
1764143261406240 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764143261406256 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764143261406263 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764143261406285 migrating to version 5... /build/pkg/database/migrations.go:94
1764143261406291 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764143261406310 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764143261406315 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:47:41 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 2.980541518s
Events/sec: 16775.48
Avg latency: 1.316097ms
P90 latency: 1.75215ms
P95 latency: 2.019999ms
P99 latency: 2.884086ms
Bottom 10% Avg latency: 743.925µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 294.559368ms
Burst completed: 5000 events in 338.351868ms
Burst completed: 5000 events in 289.64343ms
Burst completed: 5000 events in 418.427743ms
Burst completed: 5000 events in 337.294837ms
Burst completed: 5000 events in 359.624702ms
Burst completed: 5000 events in 307.791949ms
Burst completed: 5000 events in 284.861295ms
Burst completed: 5000 events in 314.638569ms
Burst completed: 5000 events in 274.271908ms
Burst test completed: 50000 events in 8.227316527s, errors: 0
Events/sec: 6077.32
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.361629597s
Combined ops/sec: 2052.41
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 369485 queries in 1m0.007598809s
Queries/sec: 6157.30
Avg query latency: 1.851496ms
P95 query latency: 7.629059ms
P99 query latency: 11.579084ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 307591 operations (257591 queries, 50000 writes) in 1m0.003842232s
Operations/sec: 5126.19
Avg latency: 1.567905ms
Avg query latency: 1.520146ms
Avg write latency: 1.813947ms
P95 latency: 4.080054ms
P99 latency: 7.252873ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 2.980541518s
Total Events: 50000
Events/sec: 16775.48
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 205 MB
Avg Latency: 1.316097ms
P90 Latency: 1.75215ms
P95 Latency: 2.019999ms
P99 Latency: 2.884086ms
Bottom 10% Avg Latency: 743.925µs
----------------------------------------
Test: Burst Pattern
Duration: 8.227316527s
Total Events: 50000
Events/sec: 6077.32
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 206 MB
Avg Latency: 1.448816ms
P90 Latency: 2.065115ms
P95 Latency: 2.415349ms
P99 Latency: 3.441514ms
Bottom 10% Avg Latency: 642.527µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.361629597s
Total Events: 50000
Events/sec: 2052.41
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 170 MB
Avg Latency: 395.815µs
P90 Latency: 821.619µs
P95 Latency: 915.807µs
P99 Latency: 1.137015ms
Bottom 10% Avg Latency: 1.044106ms
----------------------------------------
Test: Query Performance
Duration: 1m0.007598809s
Total Events: 369485
Events/sec: 6157.30
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 97 MB
Avg Latency: 1.851496ms
P90 Latency: 5.786274ms
P95 Latency: 7.629059ms
P99 Latency: 11.579084ms
Bottom 10% Avg Latency: 8.382865ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003842232s
Total Events: 307591
Events/sec: 5126.19
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 143 MB
Avg Latency: 1.567905ms
P90 Latency: 3.141841ms
P95 Latency: 4.080054ms
P99 Latency: 7.252873ms
Bottom 10% Avg Latency: 4.875018ms
----------------------------------------
Report saved to: /tmp/benchmark_khatru-sqlite_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_khatru-sqlite_8/benchmark_report.adoc
RELAY_NAME: khatru-sqlite
RELAY_URL: ws://khatru-sqlite:3334
TEST_TIMESTAMP: 2025-11-26T07:50:58+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_next-orly-badger_8
Events: 50000, Workers: 24, Duration: 1m0s
1764142653240629 migrating to version 1... /build/pkg/database/migrations.go:66
1764142653240705 migrating to version 2... /build/pkg/database/migrations.go:73
1764142653240726 migrating to version 3... /build/pkg/database/migrations.go:80
1764142653240732 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764142653240742 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764142653240754 migrating to version 4... /build/pkg/database/migrations.go:87
1764142653240759 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764142653240772 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764142653240777 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764142653240794 migrating to version 5... /build/pkg/database/migrations.go:94
1764142653240799 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764142653240815 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764142653240820 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:37:33 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 2.994207496s
Events/sec: 16698.91
Avg latency: 1.331911ms
P90 latency: 1.752681ms
P95 latency: 2.019719ms
P99 latency: 2.937258ms
Bottom 10% Avg latency: 766.682µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 296.493381ms
Burst completed: 5000 events in 346.037614ms
Burst completed: 5000 events in 295.42219ms
Burst completed: 5000 events in 310.553567ms
Burst completed: 5000 events in 290.939907ms
Burst completed: 5000 events in 586.599699ms
Burst completed: 5000 events in 331.078074ms
Burst completed: 5000 events in 266.026786ms
Burst completed: 5000 events in 305.143046ms
Burst completed: 5000 events in 283.61665ms
Burst test completed: 50000 events in 8.317273769s, errors: 0
Events/sec: 6011.59
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.376567267s
Combined ops/sec: 2051.15
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 379823 queries in 1m0.005132427s
Queries/sec: 6329.84
Avg query latency: 1.793906ms
P95 query latency: 7.34021ms
P99 query latency: 11.188253ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 311181 operations (261181 queries, 50000 writes) in 1m0.003287869s
Operations/sec: 5186.07
Avg latency: 1.534716ms
Avg query latency: 1.48944ms
Avg write latency: 1.771222ms
P95 latency: 3.923748ms
P99 latency: 6.879882ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 2.994207496s
Total Events: 50000
Events/sec: 16698.91
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 91 MB
Avg Latency: 1.331911ms
P90 Latency: 1.752681ms
P95 Latency: 2.019719ms
P99 Latency: 2.937258ms
Bottom 10% Avg Latency: 766.682µs
----------------------------------------
Test: Burst Pattern
Duration: 8.317273769s
Total Events: 50000
Events/sec: 6011.59
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 204 MB
Avg Latency: 1.496861ms
P90 Latency: 2.150147ms
P95 Latency: 2.715024ms
P99 Latency: 5.496937ms
Bottom 10% Avg Latency: 684.458µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.376567267s
Total Events: 50000
Events/sec: 2051.15
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 194 MB
Avg Latency: 396.054µs
P90 Latency: 819.913µs
P95 Latency: 914.112µs
P99 Latency: 1.134723ms
Bottom 10% Avg Latency: 1.077234ms
----------------------------------------
Test: Query Performance
Duration: 1m0.005132427s
Total Events: 379823
Events/sec: 6329.84
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 96 MB
Avg Latency: 1.793906ms
P90 Latency: 5.558514ms
P95 Latency: 7.34021ms
P99 Latency: 11.188253ms
Bottom 10% Avg Latency: 8.06994ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003287869s
Total Events: 311181
Events/sec: 5186.07
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 141 MB
Avg Latency: 1.534716ms
P90 Latency: 3.051195ms
P95 Latency: 3.923748ms
P99 Latency: 6.879882ms
Bottom 10% Avg Latency: 4.67505ms
----------------------------------------
Report saved to: /tmp/benchmark_next-orly-badger_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_next-orly-badger_8/benchmark_report.adoc
RELAY_NAME: next-orly-badger
RELAY_URL: ws://next-orly-badger:8080
TEST_TIMESTAMP: 2025-11-26T07:40:50+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_next-orly-dgraph_8
Events: 50000, Workers: 24, Duration: 1m0s
1764142855890301 migrating to version 1... /build/pkg/database/migrations.go:66
1764142855890401 migrating to version 2... /build/pkg/database/migrations.go:73
1764142855890440 migrating to version 3... /build/pkg/database/migrations.go:80
1764142855890449 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764142855890460 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764142855890476 migrating to version 4... /build/pkg/database/migrations.go:87
1764142855890481 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764142855890495 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764142855890504 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764142855890528 migrating to version 5... /build/pkg/database/migrations.go:94
1764142855890536 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764142855890559 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764142855890568 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:40:55 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.430865656s
Events/sec: 14573.58
Avg latency: 1.571025ms
P90 latency: 2.249507ms
P95 latency: 2.610305ms
P99 latency: 3.786808ms
Bottom 10% Avg latency: 802.953µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 413.260391ms
Burst completed: 5000 events in 416.696811ms
Burst completed: 5000 events in 281.278288ms
Burst completed: 5000 events in 305.471838ms
Burst completed: 5000 events in 284.063576ms
Burst completed: 5000 events in 366.197285ms
Burst completed: 5000 events in 310.188337ms
Burst completed: 5000 events in 270.424131ms
Burst completed: 5000 events in 313.061864ms
Burst completed: 5000 events in 268.841724ms
Burst test completed: 50000 events in 8.234222191s, errors: 0
Events/sec: 6072.22
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.374242444s
Combined ops/sec: 2051.35
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 363398 queries in 1m0.008386122s
Queries/sec: 6055.79
Avg query latency: 1.896628ms
P95 query latency: 7.915977ms
P99 query latency: 12.369055ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 310491 operations (260491 queries, 50000 writes) in 1m0.002972174s
Operations/sec: 5174.59
Avg latency: 1.519446ms
Avg query latency: 1.48579ms
Avg write latency: 1.694789ms
P95 latency: 3.910804ms
P99 latency: 6.189507ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.430865656s
Total Events: 50000
Events/sec: 14573.58
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 128 MB
Avg Latency: 1.571025ms
P90 Latency: 2.249507ms
P95 Latency: 2.610305ms
P99 Latency: 3.786808ms
Bottom 10% Avg Latency: 802.953µs
----------------------------------------
Test: Burst Pattern
Duration: 8.234222191s
Total Events: 50000
Events/sec: 6072.22
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 195 MB
Avg Latency: 1.454825ms
P90 Latency: 2.128246ms
P95 Latency: 2.541414ms
P99 Latency: 3.875045ms
Bottom 10% Avg Latency: 688.084µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.374242444s
Total Events: 50000
Events/sec: 2051.35
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 125 MB
Avg Latency: 390.403µs
P90 Latency: 807.74µs
P95 Latency: 902.751µs
P99 Latency: 1.111889ms
Bottom 10% Avg Latency: 1.037165ms
----------------------------------------
Test: Query Performance
Duration: 1m0.008386122s
Total Events: 363398
Events/sec: 6055.79
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 149 MB
Avg Latency: 1.896628ms
P90 Latency: 5.916526ms
P95 Latency: 7.915977ms
P99 Latency: 12.369055ms
Bottom 10% Avg Latency: 8.802319ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.002972174s
Total Events: 310491
Events/sec: 5174.59
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 156 MB
Avg Latency: 1.519446ms
P90 Latency: 3.03826ms
P95 Latency: 3.910804ms
P99 Latency: 6.189507ms
Bottom 10% Avg Latency: 4.473046ms
----------------------------------------
Report saved to: /tmp/benchmark_next-orly-dgraph_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_next-orly-dgraph_8/benchmark_report.adoc
RELAY_NAME: next-orly-dgraph
RELAY_URL: ws://next-orly-dgraph:8080
TEST_TIMESTAMP: 2025-11-26T07:44:13+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_next-orly-neo4j_8
Events: 50000, Workers: 24, Duration: 1m0s
1764143058917148 migrating to version 1... /build/pkg/database/migrations.go:66
1764143058917210 migrating to version 2... /build/pkg/database/migrations.go:73
1764143058917229 migrating to version 3... /build/pkg/database/migrations.go:80
1764143058917234 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764143058917243 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764143058917256 migrating to version 4... /build/pkg/database/migrations.go:87
1764143058917261 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764143058917274 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764143058917281 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764143058917296 migrating to version 5... /build/pkg/database/migrations.go:94
1764143058917301 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764143058917316 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764143058917321 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:44:18 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.013027595s
Events/sec: 16594.60
Avg latency: 1.341265ms
P90 latency: 1.798828ms
P95 latency: 2.068012ms
P99 latency: 2.883646ms
Bottom 10% Avg latency: 760.268µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 286.776937ms
Burst completed: 5000 events in 322.103436ms
Burst completed: 5000 events in 287.074253ms
Burst completed: 5000 events in 307.39847ms
Burst completed: 5000 events in 289.282402ms
Burst completed: 5000 events in 351.106806ms
Burst completed: 5000 events in 307.616957ms
Burst completed: 5000 events in 281.010206ms
Burst completed: 5000 events in 387.29128ms
Burst completed: 5000 events in 317.867754ms
Burst test completed: 50000 events in 8.143674752s, errors: 0
Events/sec: 6139.73
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.392570025s
Combined ops/sec: 2049.80
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 381354 queries in 1m0.004315541s
Queries/sec: 6355.44
Avg query latency: 1.774601ms
P95 query latency: 7.270517ms
P99 query latency: 11.058437ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 311298 operations (261298 queries, 50000 writes) in 1m0.002804902s
Operations/sec: 5188.06
Avg latency: 1.525543ms
Avg query latency: 1.487415ms
Avg write latency: 1.724798ms
P95 latency: 3.973942ms
P99 latency: 6.346957ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.013027595s
Total Events: 50000
Events/sec: 16594.60
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 135 MB
Avg Latency: 1.341265ms
P90 Latency: 1.798828ms
P95 Latency: 2.068012ms
P99 Latency: 2.883646ms
Bottom 10% Avg Latency: 760.268µs
----------------------------------------
Test: Burst Pattern
Duration: 8.143674752s
Total Events: 50000
Events/sec: 6139.73
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 210 MB
Avg Latency: 1.417529ms
P90 Latency: 1.96735ms
P95 Latency: 2.279114ms
P99 Latency: 3.319737ms
Bottom 10% Avg Latency: 689.835µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.392570025s
Total Events: 50000
Events/sec: 2049.80
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 194 MB
Avg Latency: 389.458µs
P90 Latency: 807.449µs
P95 Latency: 893.313µs
P99 Latency: 1.078376ms
Bottom 10% Avg Latency: 1.008354ms
----------------------------------------
Test: Query Performance
Duration: 1m0.004315541s
Total Events: 381354
Events/sec: 6355.44
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 149 MB
Avg Latency: 1.774601ms
P90 Latency: 5.479193ms
P95 Latency: 7.270517ms
P99 Latency: 11.058437ms
Bottom 10% Avg Latency: 7.987ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.002804902s
Total Events: 311298
Events/sec: 5188.06
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 91 MB
Avg Latency: 1.525543ms
P90 Latency: 3.063464ms
P95 Latency: 3.973942ms
P99 Latency: 6.346957ms
Bottom 10% Avg Latency: 4.524119ms
----------------------------------------
Report saved to: /tmp/benchmark_next-orly-neo4j_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_next-orly-neo4j_8/benchmark_report.adoc
RELAY_NAME: next-orly-neo4j
RELAY_URL: ws://next-orly-neo4j:8080
TEST_TIMESTAMP: 2025-11-26T07:47:36+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_nostr-rs-relay_8
Events: 50000, Workers: 24, Duration: 1m0s
1764144072428228 migrating to version 1... /build/pkg/database/migrations.go:66
1764144072428311 migrating to version 2... /build/pkg/database/migrations.go:73
1764144072428332 migrating to version 3... /build/pkg/database/migrations.go:80
1764144072428337 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764144072428348 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764144072428362 migrating to version 4... /build/pkg/database/migrations.go:87
1764144072428367 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764144072428382 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764144072428388 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764144072428403 migrating to version 5... /build/pkg/database/migrations.go:94
1764144072428407 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764144072428461 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764144072428504 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 08:01:12 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.174311581s
Events/sec: 15751.45
Avg latency: 1.442411ms
P90 latency: 1.94422ms
P95 latency: 2.22848ms
P99 latency: 3.230197ms
Bottom 10% Avg latency: 812.222µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 307.983371ms
Burst completed: 5000 events in 362.020748ms
Burst completed: 5000 events in 287.762195ms
Burst completed: 5000 events in 312.062236ms
Burst completed: 5000 events in 293.876571ms
Burst completed: 5000 events in 374.103253ms
Burst completed: 5000 events in 310.909244ms
Burst completed: 5000 events in 283.004205ms
Burst completed: 5000 events in 298.739839ms
Burst completed: 5000 events in 276.165042ms
Burst test completed: 50000 events in 8.112460039s, errors: 0
Events/sec: 6163.36
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.41340672s
Combined ops/sec: 2048.06
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 370248 queries in 1m0.004253098s
Queries/sec: 6170.36
Avg query latency: 1.845097ms
P95 query latency: 7.60818ms
P99 query latency: 11.65437ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 309475 operations (259475 queries, 50000 writes) in 1m0.004403417s
Operations/sec: 5157.54
Avg latency: 1.523601ms
Avg query latency: 1.501844ms
Avg write latency: 1.63651ms
P95 latency: 3.938186ms
P99 latency: 6.342582ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.174311581s
Total Events: 50000
Events/sec: 15751.45
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 205 MB
Avg Latency: 1.442411ms
P90 Latency: 1.94422ms
P95 Latency: 2.22848ms
P99 Latency: 3.230197ms
Bottom 10% Avg Latency: 812.222µs
----------------------------------------
Test: Burst Pattern
Duration: 8.112460039s
Total Events: 50000
Events/sec: 6163.36
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 254 MB
Avg Latency: 1.414472ms
P90 Latency: 1.957275ms
P95 Latency: 2.267184ms
P99 Latency: 3.19513ms
Bottom 10% Avg Latency: 750.181µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.41340672s
Total Events: 50000
Events/sec: 2048.06
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 129 MB
Avg Latency: 400.791µs
P90 Latency: 826.182µs
P95 Latency: 921.434µs
P99 Latency: 1.143516ms
Bottom 10% Avg Latency: 1.063808ms
----------------------------------------
Test: Query Performance
Duration: 1m0.004253098s
Total Events: 370248
Events/sec: 6170.36
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 156 MB
Avg Latency: 1.845097ms
P90 Latency: 5.757979ms
P95 Latency: 7.60818ms
P99 Latency: 11.65437ms
Bottom 10% Avg Latency: 8.384135ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.004403417s
Total Events: 309475
Events/sec: 5157.54
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 142 MB
Avg Latency: 1.523601ms
P90 Latency: 3.071867ms
P95 Latency: 3.938186ms
P99 Latency: 6.342582ms
Bottom 10% Avg Latency: 4.516506ms
----------------------------------------
Report saved to: /tmp/benchmark_nostr-rs-relay_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_nostr-rs-relay_8/benchmark_report.adoc
RELAY_NAME: nostr-rs-relay
RELAY_URL: ws://nostr-rs-relay:8080
TEST_TIMESTAMP: 2025-11-26T08:04:30+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_relayer-basic_8
Events: 50000, Workers: 24, Duration: 1m0s
1764143666952973 migrating to version 1... /build/pkg/database/migrations.go:66
1764143666953030 migrating to version 2... /build/pkg/database/migrations.go:73
1764143666953049 migrating to version 3... /build/pkg/database/migrations.go:80
1764143666953055 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764143666953065 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764143666953078 migrating to version 4... /build/pkg/database/migrations.go:87
1764143666953083 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764143666953094 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764143666953100 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764143666953114 migrating to version 5... /build/pkg/database/migrations.go:94
1764143666953119 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764143666953134 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764143666953141 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:54:26 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.104848253s
Events/sec: 16103.85
Avg latency: 1.401051ms
P90 latency: 1.888349ms
P95 latency: 2.187347ms
P99 latency: 3.155266ms
Bottom 10% Avg latency: 788.805µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 309.873989ms
Burst completed: 5000 events in 341.685521ms
Burst completed: 5000 events in 289.850715ms
Burst completed: 5000 events in 315.600908ms
Burst completed: 5000 events in 288.702527ms
Burst completed: 5000 events in 374.124316ms
Burst completed: 5000 events in 312.291426ms
Burst completed: 5000 events in 289.316359ms
Burst completed: 5000 events in 420.327167ms
Burst completed: 5000 events in 332.309838ms
Burst test completed: 50000 events in 8.280469107s, errors: 0
Events/sec: 6038.31
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.499295481s
Combined ops/sec: 2040.88
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 375154 queries in 1m0.004300893s
Queries/sec: 6252.12
Avg query latency: 1.804479ms
P95 query latency: 7.361776ms
P99 query latency: 11.303739ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 306374 operations (256374 queries, 50000 writes) in 1m0.003786148s
Operations/sec: 5105.91
Avg latency: 1.576576ms
Avg query latency: 1.528734ms
Avg write latency: 1.821884ms
P95 latency: 4.109035ms
P99 latency: 6.61579ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.104848253s
Total Events: 50000
Events/sec: 16103.85
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 126 MB
Avg Latency: 1.401051ms
P90 Latency: 1.888349ms
P95 Latency: 2.187347ms
P99 Latency: 3.155266ms
Bottom 10% Avg Latency: 788.805µs
----------------------------------------
Test: Burst Pattern
Duration: 8.280469107s
Total Events: 50000
Events/sec: 6038.31
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 253 MB
Avg Latency: 1.501362ms
P90 Latency: 2.126101ms
P95 Latency: 2.477719ms
P99 Latency: 3.656509ms
Bottom 10% Avg Latency: 737.519µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.499295481s
Total Events: 50000
Events/sec: 2040.88
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 146 MB
Avg Latency: 400.179µs
P90 Latency: 824.427µs
P95 Latency: 920.8µs
P99 Latency: 1.163662ms
Bottom 10% Avg Latency: 1.084633ms
----------------------------------------
Test: Query Performance
Duration: 1m0.004300893s
Total Events: 375154
Events/sec: 6252.12
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 144 MB
Avg Latency: 1.804479ms
P90 Latency: 5.607171ms
P95 Latency: 7.361776ms
P99 Latency: 11.303739ms
Bottom 10% Avg Latency: 8.12332ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003786148s
Total Events: 306374
Events/sec: 5105.91
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 115 MB
Avg Latency: 1.576576ms
P90 Latency: 3.182483ms
P95 Latency: 4.109035ms
P99 Latency: 6.61579ms
Bottom 10% Avg Latency: 4.720777ms
----------------------------------------
Report saved to: /tmp/benchmark_relayer-basic_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_relayer-basic_8/benchmark_report.adoc
RELAY_NAME: relayer-basic
RELAY_URL: ws://relayer-basic:7447
TEST_TIMESTAMP: 2025-11-26T07:57:44+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,198 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_rely-sqlite_8
Events: 50000, Workers: 24, Duration: 1m0s
1764142450497543 migrating to version 1... /build/pkg/database/migrations.go:66
1764142450497609 migrating to version 2... /build/pkg/database/migrations.go:73
1764142450497631 migrating to version 3... /build/pkg/database/migrations.go:80
1764142450497636 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764142450497646 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764142450497688 migrating to version 4... /build/pkg/database/migrations.go:87
1764142450497694 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764142450497706 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764142450497711 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764142450497773 migrating to version 5... /build/pkg/database/migrations.go:94
1764142450497779 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764142450497793 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764142450497798 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:34:10 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
2025/11/26 07:34:10 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.067785126s
Events/sec: 16298.40
Avg latency: 1.360569ms
P90 latency: 1.819407ms
P95 latency: 2.160818ms
P99 latency: 3.606363ms
Bottom 10% Avg latency: 746.704µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 312.311304ms
Burst completed: 5000 events in 359.334028ms
Burst completed: 5000 events in 307.257652ms
Burst completed: 5000 events in 318.240243ms
Burst completed: 5000 events in 295.405906ms
Burst completed: 5000 events in 369.690986ms
Burst completed: 5000 events in 308.42646ms
Burst completed: 5000 events in 267.313308ms
Burst completed: 5000 events in 301.834829ms
Burst completed: 5000 events in 282.800373ms
Burst test completed: 50000 events in 8.128805288s, errors: 0
Events/sec: 6150.97
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.426575006s
Combined ops/sec: 2046.95
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 369377 queries in 1m0.005034278s
Queries/sec: 6155.77
Avg query latency: 1.850212ms
P95 query latency: 7.621476ms
P99 query latency: 11.610958ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 310678 operations (260678 queries, 50000 writes) in 1m0.003278222s
Operations/sec: 5177.68
Avg latency: 1.513088ms
Avg query latency: 1.495086ms
Avg write latency: 1.606937ms
P95 latency: 3.92433ms
P99 latency: 6.216487ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.067785126s
Total Events: 50000
Events/sec: 16298.40
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 89 MB
Avg Latency: 1.360569ms
P90 Latency: 1.819407ms
P95 Latency: 2.160818ms
P99 Latency: 3.606363ms
Bottom 10% Avg Latency: 746.704µs
----------------------------------------
Test: Burst Pattern
Duration: 8.128805288s
Total Events: 50000
Events/sec: 6150.97
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 203 MB
Avg Latency: 1.411735ms
P90 Latency: 1.9936ms
P95 Latency: 2.29313ms
P99 Latency: 3.168238ms
Bottom 10% Avg Latency: 711.036µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.426575006s
Total Events: 50000
Events/sec: 2046.95
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 127 MB
Avg Latency: 401.18µs
P90 Latency: 826.125µs
P95 Latency: 916.446µs
P99 Latency: 1.122669ms
Bottom 10% Avg Latency: 1.080638ms
----------------------------------------
Test: Query Performance
Duration: 1m0.005034278s
Total Events: 369377
Events/sec: 6155.77
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 106 MB
Avg Latency: 1.850212ms
P90 Latency: 5.767292ms
P95 Latency: 7.621476ms
P99 Latency: 11.610958ms
Bottom 10% Avg Latency: 8.365982ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003278222s
Total Events: 310678
Events/sec: 5177.68
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 133 MB
Avg Latency: 1.513088ms
P90 Latency: 3.049471ms
P95 Latency: 3.92433ms
P99 Latency: 6.216487ms
Bottom 10% Avg Latency: 4.456235ms
----------------------------------------
Report saved to: /tmp/benchmark_rely-sqlite_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_rely-sqlite_8/benchmark_report.adoc
RELAY_NAME: rely-sqlite
RELAY_URL: ws://rely-sqlite:3334
TEST_TIMESTAMP: 2025-11-26T07:37:28+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s

View File

@@ -0,0 +1,197 @@
Starting Nostr Relay Benchmark (Badger Backend)
Data Directory: /tmp/benchmark_strfry_8
Events: 50000, Workers: 24, Duration: 1m0s
1764143869786425 migrating to version 1... /build/pkg/database/migrations.go:66
1764143869786498 migrating to version 2... /build/pkg/database/migrations.go:73
1764143869786524 migrating to version 3... /build/pkg/database/migrations.go:80
1764143869786530 cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:294
1764143869786539 cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:339
1764143869786552 migrating to version 4... /build/pkg/database/migrations.go:87
1764143869786556 converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:347
1764143869786565 found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:436
1764143869786570 migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:545
1764143869786584 migrating to version 5... /build/pkg/database/migrations.go:94
1764143869786589 re-encoding events with optimized tag binary format... /build/pkg/database/migrations.go:552
1764143869786604 found 0 events with e/p tags to re-encode /build/pkg/database/migrations.go:639
1764143869786609 no events need re-encoding /build/pkg/database/migrations.go:642
╔════════════════════════════════════════════════════════╗
║ BADGER BACKEND BENCHMARK SUITE ║
╚════════════════════════════════════════════════════════╝
=== Starting Badger benchmark ===
RunPeakThroughputTest (Badger)..
=== Peak Throughput Test ===
2025/11/26 07:57:49 INFO: Successfully loaded embedded libsecp256k1 v5.0.0 from /tmp/orly-libsecp256k1/libsecp256k1.so
Events saved: 50000/50000 (100.0%), errors: 0
Duration: 3.085029825s
Events/sec: 16207.30
Avg latency: 1.381579ms
P90 latency: 1.865718ms
P95 latency: 2.15555ms
P99 latency: 3.097841ms
Bottom 10% Avg latency: 760.474µs
Wiping database between tests...
RunBurstPatternTest (Badger)..
=== Burst Pattern Test ===
Burst completed: 5000 events in 307.173651ms
Burst completed: 5000 events in 334.907841ms
Burst completed: 5000 events in 290.888159ms
Burst completed: 5000 events in 403.807089ms
Burst completed: 5000 events in 327.956144ms
Burst completed: 5000 events in 364.629959ms
Burst completed: 5000 events in 328.780115ms
Burst completed: 5000 events in 290.361314ms
Burst completed: 5000 events in 304.825415ms
Burst completed: 5000 events in 270.287065ms
Burst test completed: 50000 events in 8.230287366s, errors: 0
Events/sec: 6075.12
Wiping database between tests...
RunMixedReadWriteTest (Badger)..
=== Mixed Read/Write Test ===
Generating 1000 unique synthetic events (minimum 300 bytes each)...
Generated 1000 events:
Average content size: 312 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database for read tests...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Mixed test completed: 25000 writes, 25000 reads in 24.348961585s
Combined ops/sec: 2053.48
Wiping database between tests...
RunQueryTest (Badger)..
=== Query Test ===
Generating 10000 unique synthetic events (minimum 300 bytes each)...
Generated 10000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 10000 events for query tests...
Query test completed: 376537 queries in 1m0.004019885s
Queries/sec: 6275.20
Avg query latency: 1.80891ms
P95 query latency: 7.432319ms
P99 query latency: 11.306037ms
Wiping database between tests...
RunConcurrentQueryStoreTest (Badger)..
=== Concurrent Query/Store Test ===
Generating 5000 unique synthetic events (minimum 300 bytes each)...
Generated 5000 events:
Average content size: 313 bytes
All events are unique (incremental timestamps)
All events are properly signed
Pre-populating database with 5000 events for concurrent query/store test...
Generating 50000 unique synthetic events (minimum 300 bytes each)...
Generated 50000 events:
Average content size: 314 bytes
All events are unique (incremental timestamps)
All events are properly signed
Concurrent test completed: 310473 operations (260473 queries, 50000 writes) in 1m0.003152564s
Operations/sec: 5174.28
Avg latency: 1.532065ms
Avg query latency: 1.496816ms
Avg write latency: 1.715689ms
P95 latency: 3.943934ms
P99 latency: 6.631879ms
=== Badger benchmark completed ===
================================================================================
BENCHMARK REPORT
================================================================================
Test: Peak Throughput
Duration: 3.085029825s
Total Events: 50000
Events/sec: 16207.30
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 129 MB
Avg Latency: 1.381579ms
P90 Latency: 1.865718ms
P95 Latency: 2.15555ms
P99 Latency: 3.097841ms
Bottom 10% Avg Latency: 760.474µs
----------------------------------------
Test: Burst Pattern
Duration: 8.230287366s
Total Events: 50000
Events/sec: 6075.12
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 254 MB
Avg Latency: 1.45496ms
P90 Latency: 2.073563ms
P95 Latency: 2.414222ms
P99 Latency: 3.497151ms
Bottom 10% Avg Latency: 681.141µs
----------------------------------------
Test: Mixed Read/Write
Duration: 24.348961585s
Total Events: 50000
Events/sec: 2053.48
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 175 MB
Avg Latency: 394.928µs
P90 Latency: 814.769µs
P95 Latency: 907.647µs
P99 Latency: 1.116704ms
Bottom 10% Avg Latency: 1.044591ms
----------------------------------------
Test: Query Performance
Duration: 1m0.004019885s
Total Events: 376537
Events/sec: 6275.20
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 138 MB
Avg Latency: 1.80891ms
P90 Latency: 5.616736ms
P95 Latency: 7.432319ms
P99 Latency: 11.306037ms
Bottom 10% Avg Latency: 8.164604ms
----------------------------------------
Test: Concurrent Query/Store
Duration: 1m0.003152564s
Total Events: 310473
Events/sec: 5174.28
Success Rate: 100.0%
Concurrent Workers: 24
Memory Used: 147 MB
Avg Latency: 1.532065ms
P90 Latency: 3.05393ms
P95 Latency: 3.943934ms
P99 Latency: 6.631879ms
Bottom 10% Avg Latency: 4.619007ms
----------------------------------------
Report saved to: /tmp/benchmark_strfry_8/benchmark_report.txt
AsciiDoc report saved to: /tmp/benchmark_strfry_8/benchmark_report.adoc
RELAY_NAME: strfry
RELAY_URL: ws://strfry:8080
TEST_TIMESTAMP: 2025-11-26T08:01:07+00:00
BENCHMARK_CONFIG:
Events: 50000
Workers: 24
Duration: 60s