This commit is contained in:
@@ -110,7 +110,11 @@
|
|||||||
"Bash(timeout 60 go test:*)",
|
"Bash(timeout 60 go test:*)",
|
||||||
"Bash(timeout 120 go test:*)",
|
"Bash(timeout 120 go test:*)",
|
||||||
"Bash(timeout 180 ./scripts/test.sh:*)",
|
"Bash(timeout 180 ./scripts/test.sh:*)",
|
||||||
"Bash(CGO_ENABLED=0 timeout 60 go test:*)"
|
"Bash(CGO_ENABLED=0 timeout 60 go test:*)",
|
||||||
|
"Bash(CGO_ENABLED=1 go build:*)",
|
||||||
|
"Bash(lynx:*)",
|
||||||
|
"Bash(sed:*)",
|
||||||
|
"Bash(docker stop:*)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|||||||
6
cmd/benchmark/.dockerignore
Normal file
6
cmd/benchmark/.dockerignore
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
data/
|
||||||
|
reports/
|
||||||
|
*.log
|
||||||
|
*.db
|
||||||
|
external/
|
||||||
|
configs/
|
||||||
@@ -4,14 +4,19 @@ FROM golang:1.25-alpine AS builder
|
|||||||
# Install build dependencies including libsecp256k1 build requirements
|
# Install build dependencies including libsecp256k1 build requirements
|
||||||
RUN apk add --no-cache git ca-certificates gcc musl-dev autoconf automake libtool make
|
RUN apk add --no-cache git ca-certificates gcc musl-dev autoconf automake libtool make
|
||||||
|
|
||||||
# Build libsecp256k1
|
# Build libsecp256k1 EARLY - this layer will be cached unless secp256k1 version changes
|
||||||
|
# Using specific version tag and parallel builds for faster compilation
|
||||||
RUN cd /tmp && \
|
RUN cd /tmp && \
|
||||||
git clone https://github.com/bitcoin-core/secp256k1.git && \
|
git clone https://github.com/bitcoin-core/secp256k1.git && \
|
||||||
cd secp256k1 && \
|
cd secp256k1 && \
|
||||||
|
git checkout v0.6.0 && \
|
||||||
|
git submodule init && \
|
||||||
|
git submodule update && \
|
||||||
./autogen.sh && \
|
./autogen.sh && \
|
||||||
./configure --enable-module-recovery --enable-module-ecdh --enable-module-schnorrsig --enable-module-extrakeys && \
|
./configure --enable-module-recovery --enable-module-ecdh --enable-module-schnorrsig --enable-module-extrakeys && \
|
||||||
make && \
|
make -j$(nproc) && \
|
||||||
make install
|
make install && \
|
||||||
|
cd /tmp && rm -rf secp256k1
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ FROM ubuntu:22.04 as builder
|
|||||||
# Set environment variables
|
# Set environment variables
|
||||||
ARG GOLANG_VERSION=1.22.5
|
ARG GOLANG_VERSION=1.22.5
|
||||||
|
|
||||||
# Update package list and install dependencies
|
# Update package list and install ALL dependencies in one layer
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y wget ca-certificates && \
|
apt-get install -y wget ca-certificates build-essential autoconf libtool git && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Download Go binary
|
# Download and install Go binary
|
||||||
RUN wget https://go.dev/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz && \
|
RUN wget https://go.dev/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz && \
|
||||||
rm -rf /usr/local/go && \
|
rm -rf /usr/local/go && \
|
||||||
tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-amd64.tar.gz && \
|
tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-amd64.tar.gz && \
|
||||||
@@ -21,8 +21,7 @@ ENV PATH="/usr/local/go/bin:${PATH}"
|
|||||||
# Verify installation
|
# Verify installation
|
||||||
RUN go version
|
RUN go version
|
||||||
|
|
||||||
RUN apt update && \
|
# Build secp256k1 EARLY - this layer will be cached unless secp256k1 version changes
|
||||||
apt -y install build-essential autoconf libtool git wget
|
|
||||||
RUN cd /tmp && \
|
RUN cd /tmp && \
|
||||||
rm -rf secp256k1 && \
|
rm -rf secp256k1 && \
|
||||||
git clone https://github.com/bitcoin-core/secp256k1.git && \
|
git clone https://github.com/bitcoin-core/secp256k1.git && \
|
||||||
@@ -32,17 +31,18 @@ RUN cd /tmp && \
|
|||||||
git submodule update && \
|
git submodule update && \
|
||||||
./autogen.sh && \
|
./autogen.sh && \
|
||||||
./configure --enable-module-schnorrsig --enable-module-ecdh --prefix=/usr && \
|
./configure --enable-module-schnorrsig --enable-module-ecdh --prefix=/usr && \
|
||||||
make -j1 && \
|
make -j$(nproc) && \
|
||||||
make install
|
make install && \
|
||||||
|
cd /tmp && rm -rf secp256k1
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
# Copy go modules
|
# Copy go modules AFTER secp256k1 build - this allows module cache to be reused
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
# Copy source code
|
# Copy source code LAST - this is the most frequently changing layer
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Build the relay (libsecp256k1 installed via make install to /usr/lib)
|
# Build the relay (libsecp256k1 installed via make install to /usr/lib)
|
||||||
|
|||||||
@@ -269,6 +269,28 @@ services:
|
|||||||
retries: 3
|
retries: 3
|
||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
|
# Rely-SQLite relay
|
||||||
|
rely-sqlite:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.rely-sqlite
|
||||||
|
container_name: benchmark-rely-sqlite
|
||||||
|
environment:
|
||||||
|
- DATABASE_PATH=/data/relay.db
|
||||||
|
- RELAY_LISTEN=0.0.0.0:3334
|
||||||
|
volumes:
|
||||||
|
- ./data/rely-sqlite:/data
|
||||||
|
ports:
|
||||||
|
- "8009:3334"
|
||||||
|
networks:
|
||||||
|
- benchmark-net
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -s --max-time 2 http://localhost:3334 2>&1 | head -1 | grep -q ."]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
start_period: 30s
|
||||||
|
|
||||||
# Benchmark runner
|
# Benchmark runner
|
||||||
benchmark-runner:
|
benchmark-runner:
|
||||||
build:
|
build:
|
||||||
@@ -292,8 +314,10 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
nostr-rs-relay:
|
nostr-rs-relay:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
rely-sqlite:
|
||||||
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
- BENCHMARK_TARGETS=next-orly-badger:8080,next-orly-dgraph:8080,next-orly-neo4j:8080,khatru-sqlite:3334,khatru-badger:3334,relayer-basic:7447,strfry:8080,nostr-rs-relay:8080
|
- BENCHMARK_TARGETS=rely-sqlite:3334,next-orly-badger:8080,next-orly-dgraph:8080,next-orly-neo4j:8080,khatru-sqlite:3334,khatru-badger:3334,relayer-basic:7447,strfry:8080,nostr-rs-relay:8080
|
||||||
- BENCHMARK_EVENTS=50000
|
- BENCHMARK_EVENTS=50000
|
||||||
- BENCHMARK_WORKERS=24
|
- BENCHMARK_WORKERS=24
|
||||||
- BENCHMARK_DURATION=60s
|
- BENCHMARK_DURATION=60s
|
||||||
|
|||||||
@@ -42,8 +42,9 @@ type BenchmarkConfig struct {
|
|||||||
NetRate int // events/sec per worker
|
NetRate int // events/sec per worker
|
||||||
|
|
||||||
// Backend selection
|
// Backend selection
|
||||||
UseDgraph bool
|
UseDgraph bool
|
||||||
UseNeo4j bool
|
UseNeo4j bool
|
||||||
|
UseRelySQLite bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type BenchmarkResult struct {
|
type BenchmarkResult struct {
|
||||||
@@ -126,6 +127,12 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if config.UseRelySQLite {
|
||||||
|
// Run Rely-SQLite benchmark
|
||||||
|
runRelySQLiteBenchmark(config)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Run standard Badger benchmark
|
// Run standard Badger benchmark
|
||||||
fmt.Printf("Starting Nostr Relay Benchmark (Badger Backend)\n")
|
fmt.Printf("Starting Nostr Relay Benchmark (Badger Backend)\n")
|
||||||
fmt.Printf("Data Directory: %s\n", config.DataDir)
|
fmt.Printf("Data Directory: %s\n", config.DataDir)
|
||||||
@@ -189,6 +196,28 @@ func runNeo4jBenchmark(config *BenchmarkConfig) {
|
|||||||
neo4jBench.GenerateAsciidocReport()
|
neo4jBench.GenerateAsciidocReport()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func runRelySQLiteBenchmark(config *BenchmarkConfig) {
|
||||||
|
fmt.Printf("Starting Nostr Relay Benchmark (Rely-SQLite Backend)\n")
|
||||||
|
fmt.Printf("Data Directory: %s\n", config.DataDir)
|
||||||
|
fmt.Printf(
|
||||||
|
"Events: %d, Workers: %d\n",
|
||||||
|
config.NumEvents, config.ConcurrentWorkers,
|
||||||
|
)
|
||||||
|
|
||||||
|
relysqliteBench, err := NewRelySQLiteBenchmark(config)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failed to create Rely-SQLite benchmark: %v", err)
|
||||||
|
}
|
||||||
|
defer relysqliteBench.Close()
|
||||||
|
|
||||||
|
// Run Rely-SQLite benchmark suite
|
||||||
|
relysqliteBench.RunSuite()
|
||||||
|
|
||||||
|
// Generate reports
|
||||||
|
relysqliteBench.GenerateReport()
|
||||||
|
relysqliteBench.GenerateAsciidocReport()
|
||||||
|
}
|
||||||
|
|
||||||
func parseFlags() *BenchmarkConfig {
|
func parseFlags() *BenchmarkConfig {
|
||||||
config := &BenchmarkConfig{}
|
config := &BenchmarkConfig{}
|
||||||
|
|
||||||
@@ -233,6 +262,10 @@ func parseFlags() *BenchmarkConfig {
|
|||||||
&config.UseNeo4j, "neo4j", false,
|
&config.UseNeo4j, "neo4j", false,
|
||||||
"Use Neo4j backend (requires Docker)",
|
"Use Neo4j backend (requires Docker)",
|
||||||
)
|
)
|
||||||
|
flag.BoolVar(
|
||||||
|
&config.UseRelySQLite, "relysqlite", false,
|
||||||
|
"Use rely-sqlite backend",
|
||||||
|
)
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
return config
|
return config
|
||||||
|
|||||||
99
cmd/benchmark/rely-sqlite-main.go
Normal file
99
cmd/benchmark/rely-sqlite-main.go
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
//go:build ignore
|
||||||
|
// +build ignore
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/nbd-wtf/go-nostr"
|
||||||
|
sqlite "github.com/vertex-lab/nostr-sqlite"
|
||||||
|
"github.com/pippellia-btc/rely"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
// Get configuration from environment with defaults
|
||||||
|
dbPath := os.Getenv("DATABASE_PATH")
|
||||||
|
if dbPath == "" {
|
||||||
|
dbPath = "./relay.db"
|
||||||
|
}
|
||||||
|
|
||||||
|
listenAddr := os.Getenv("RELAY_LISTEN")
|
||||||
|
if listenAddr == "" {
|
||||||
|
listenAddr = "0.0.0.0:3334"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize database
|
||||||
|
db, err := sqlite.New(dbPath)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to initialize database: %v", err)
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
// Create relay with handlers
|
||||||
|
relay := rely.NewRelay(
|
||||||
|
rely.WithQueueCapacity(10_000),
|
||||||
|
rely.WithMaxProcessors(10),
|
||||||
|
)
|
||||||
|
|
||||||
|
// Register event handlers using the correct API
|
||||||
|
relay.On.Event = Save(db)
|
||||||
|
relay.On.Req = Query(db)
|
||||||
|
relay.On.Count = Count(db)
|
||||||
|
|
||||||
|
// Start relay
|
||||||
|
log.Printf("Starting rely-sqlite on %s with database %s", listenAddr, dbPath)
|
||||||
|
err = relay.StartAndServe(ctx, listenAddr)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("relay failed: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save handles incoming events
|
||||||
|
func Save(db *sqlite.Store) func(_ rely.Client, e *nostr.Event) error {
|
||||||
|
return func(_ rely.Client, e *nostr.Event) error {
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case nostr.IsRegularKind(e.Kind):
|
||||||
|
_, err := db.Save(ctx, e)
|
||||||
|
return err
|
||||||
|
case nostr.IsReplaceableKind(e.Kind) || nostr.IsAddressableKind(e.Kind):
|
||||||
|
_, err := db.Replace(ctx, e)
|
||||||
|
return err
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Query retrieves events matching filters
|
||||||
|
func Query(db *sqlite.Store) func(ctx context.Context, _ rely.Client, filters nostr.Filters) ([]nostr.Event, error) {
|
||||||
|
return func(ctx context.Context, _ rely.Client, filters nostr.Filters) ([]nostr.Event, error) {
|
||||||
|
ctx, cancel := context.WithTimeout(ctx, 2*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
return db.Query(ctx, filters...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Count counts events matching filters
|
||||||
|
func Count(db *sqlite.Store) func(_ rely.Client, filters nostr.Filters) (count int64, approx bool, err error) {
|
||||||
|
return func(_ rely.Client, filters nostr.Filters) (count int64, approx bool, err error) {
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
|
defer cancel()
|
||||||
|
count, err = db.Count(ctx, filters...)
|
||||||
|
if err != nil {
|
||||||
|
return -1, false, err
|
||||||
|
}
|
||||||
|
return count, false, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
151
cmd/benchmark/relysqlite_benchmark.go
Normal file
151
cmd/benchmark/relysqlite_benchmark.go
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"next.orly.dev/pkg/database"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RelySQLiteBenchmark wraps a Benchmark with rely-sqlite-specific setup
|
||||||
|
type RelySQLiteBenchmark struct {
|
||||||
|
config *BenchmarkConfig
|
||||||
|
database database.Database
|
||||||
|
bench *BenchmarkAdapter
|
||||||
|
dbPath string
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRelySQLiteBenchmark creates a new rely-sqlite benchmark instance
|
||||||
|
func NewRelySQLiteBenchmark(config *BenchmarkConfig) (*RelySQLiteBenchmark, error) {
|
||||||
|
// Create database path
|
||||||
|
dbPath := filepath.Join(config.DataDir, "relysqlite.db")
|
||||||
|
|
||||||
|
// Ensure parent directory exists
|
||||||
|
if err := os.MkdirAll(config.DataDir, 0755); err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to create data directory: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove existing database file if it exists
|
||||||
|
if _, err := os.Stat(dbPath); err == nil {
|
||||||
|
if err := os.Remove(dbPath); err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to remove existing database: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create wrapper
|
||||||
|
wrapper, err := NewRelySQLiteWrapper(dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to create rely-sqlite wrapper: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait for database to be ready
|
||||||
|
fmt.Println("Waiting for rely-sqlite database to be ready...")
|
||||||
|
select {
|
||||||
|
case <-wrapper.Ready():
|
||||||
|
fmt.Println("Rely-sqlite database is ready")
|
||||||
|
case <-time.After(10 * time.Second):
|
||||||
|
wrapper.Close()
|
||||||
|
return nil, fmt.Errorf("rely-sqlite database failed to become ready")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create adapter to use Database interface with Benchmark
|
||||||
|
adapter := NewBenchmarkAdapter(config, wrapper)
|
||||||
|
|
||||||
|
relysqliteBench := &RelySQLiteBenchmark{
|
||||||
|
config: config,
|
||||||
|
database: wrapper,
|
||||||
|
bench: adapter,
|
||||||
|
dbPath: dbPath,
|
||||||
|
}
|
||||||
|
|
||||||
|
return relysqliteBench, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close closes the rely-sqlite benchmark
|
||||||
|
func (rsb *RelySQLiteBenchmark) Close() {
|
||||||
|
fmt.Println("Closing rely-sqlite benchmark...")
|
||||||
|
|
||||||
|
if rsb.database != nil {
|
||||||
|
rsb.database.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clean up database file
|
||||||
|
if rsb.dbPath != "" {
|
||||||
|
os.Remove(rsb.dbPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RunSuite runs the benchmark suite on rely-sqlite
|
||||||
|
func (rsb *RelySQLiteBenchmark) RunSuite() {
|
||||||
|
fmt.Println("\n╔════════════════════════════════════════════════════════╗")
|
||||||
|
fmt.Println("║ RELY-SQLITE BACKEND BENCHMARK SUITE ║")
|
||||||
|
fmt.Println("╚════════════════════════════════════════════════════════╝")
|
||||||
|
|
||||||
|
// Run benchmark tests
|
||||||
|
fmt.Printf("\n=== Starting Rely-SQLite benchmark ===\n")
|
||||||
|
|
||||||
|
fmt.Printf("RunPeakThroughputTest (Rely-SQLite)..\n")
|
||||||
|
rsb.bench.RunPeakThroughputTest()
|
||||||
|
fmt.Println("Wiping database between tests...")
|
||||||
|
rsb.wipeDatabase()
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
fmt.Printf("RunBurstPatternTest (Rely-SQLite)..\n")
|
||||||
|
rsb.bench.RunBurstPatternTest()
|
||||||
|
fmt.Println("Wiping database between tests...")
|
||||||
|
rsb.wipeDatabase()
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
fmt.Printf("RunMixedReadWriteTest (Rely-SQLite)..\n")
|
||||||
|
rsb.bench.RunMixedReadWriteTest()
|
||||||
|
fmt.Println("Wiping database between tests...")
|
||||||
|
rsb.wipeDatabase()
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
fmt.Printf("RunQueryTest (Rely-SQLite)..\n")
|
||||||
|
rsb.bench.RunQueryTest()
|
||||||
|
fmt.Println("Wiping database between tests...")
|
||||||
|
rsb.wipeDatabase()
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
fmt.Printf("RunConcurrentQueryStoreTest (Rely-SQLite)..\n")
|
||||||
|
rsb.bench.RunConcurrentQueryStoreTest()
|
||||||
|
|
||||||
|
fmt.Printf("\n=== Rely-SQLite benchmark completed ===\n\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
// wipeDatabase recreates the database for a clean slate
|
||||||
|
func (rsb *RelySQLiteBenchmark) wipeDatabase() {
|
||||||
|
// Close existing database
|
||||||
|
if rsb.database != nil {
|
||||||
|
rsb.database.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove database file
|
||||||
|
if rsb.dbPath != "" {
|
||||||
|
os.Remove(rsb.dbPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recreate database
|
||||||
|
wrapper, err := NewRelySQLiteWrapper(rsb.dbPath)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Failed to recreate database: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
rsb.database = wrapper
|
||||||
|
rsb.bench.db = wrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateReport generates the benchmark report
|
||||||
|
func (rsb *RelySQLiteBenchmark) GenerateReport() {
|
||||||
|
rsb.bench.GenerateReport()
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateAsciidocReport generates asciidoc format report
|
||||||
|
func (rsb *RelySQLiteBenchmark) GenerateAsciidocReport() {
|
||||||
|
rsb.bench.GenerateAsciidocReport()
|
||||||
|
}
|
||||||
164
cmd/benchmark/relysqlite_converters.go
Normal file
164
cmd/benchmark/relysqlite_converters.go
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/nbd-wtf/go-nostr"
|
||||||
|
|
||||||
|
orlyEvent "next.orly.dev/pkg/encoders/event"
|
||||||
|
orlyFilter "next.orly.dev/pkg/encoders/filter"
|
||||||
|
orlyTag "next.orly.dev/pkg/encoders/tag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// convertToNostrEvent converts an ORLY event to a go-nostr event
|
||||||
|
func convertToNostrEvent(ev *orlyEvent.E) (*nostr.Event, error) {
|
||||||
|
if ev == nil {
|
||||||
|
return nil, fmt.Errorf("nil event")
|
||||||
|
}
|
||||||
|
|
||||||
|
nostrEv := &nostr.Event{
|
||||||
|
ID: hex.EncodeToString(ev.ID),
|
||||||
|
PubKey: hex.EncodeToString(ev.Pubkey),
|
||||||
|
CreatedAt: nostr.Timestamp(ev.CreatedAt),
|
||||||
|
Kind: int(ev.Kind),
|
||||||
|
Content: string(ev.Content),
|
||||||
|
Sig: hex.EncodeToString(ev.Sig),
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert tags
|
||||||
|
if ev.Tags != nil && len(*ev.Tags) > 0 {
|
||||||
|
nostrEv.Tags = make(nostr.Tags, 0, len(*ev.Tags))
|
||||||
|
for _, orlyTag := range *ev.Tags {
|
||||||
|
if orlyTag != nil && len(orlyTag.T) > 0 {
|
||||||
|
tag := make(nostr.Tag, len(orlyTag.T))
|
||||||
|
for i, val := range orlyTag.T {
|
||||||
|
tag[i] = string(val)
|
||||||
|
}
|
||||||
|
nostrEv.Tags = append(nostrEv.Tags, tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nostrEv, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertFromNostrEvent converts a go-nostr event to an ORLY event
|
||||||
|
func convertFromNostrEvent(ne *nostr.Event) (*orlyEvent.E, error) {
|
||||||
|
if ne == nil {
|
||||||
|
return nil, fmt.Errorf("nil event")
|
||||||
|
}
|
||||||
|
|
||||||
|
ev := orlyEvent.New()
|
||||||
|
|
||||||
|
// Convert ID
|
||||||
|
idBytes, err := hex.DecodeString(ne.ID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to decode ID: %w", err)
|
||||||
|
}
|
||||||
|
ev.ID = idBytes
|
||||||
|
|
||||||
|
// Convert Pubkey
|
||||||
|
pubkeyBytes, err := hex.DecodeString(ne.PubKey)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to decode pubkey: %w", err)
|
||||||
|
}
|
||||||
|
ev.Pubkey = pubkeyBytes
|
||||||
|
|
||||||
|
// Convert Sig
|
||||||
|
sigBytes, err := hex.DecodeString(ne.Sig)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to decode signature: %w", err)
|
||||||
|
}
|
||||||
|
ev.Sig = sigBytes
|
||||||
|
|
||||||
|
// Simple fields
|
||||||
|
ev.CreatedAt = int64(ne.CreatedAt)
|
||||||
|
ev.Kind = uint16(ne.Kind)
|
||||||
|
ev.Content = []byte(ne.Content)
|
||||||
|
|
||||||
|
// Convert tags
|
||||||
|
if len(ne.Tags) > 0 {
|
||||||
|
ev.Tags = orlyTag.NewS()
|
||||||
|
for _, nostrTag := range ne.Tags {
|
||||||
|
if len(nostrTag) > 0 {
|
||||||
|
tag := orlyTag.NewWithCap(len(nostrTag))
|
||||||
|
for _, val := range nostrTag {
|
||||||
|
tag.T = append(tag.T, []byte(val))
|
||||||
|
}
|
||||||
|
*ev.Tags = append(*ev.Tags, tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ev.Tags = orlyTag.NewS()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ev, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertToNostrFilter converts an ORLY filter to a go-nostr filter
|
||||||
|
func convertToNostrFilter(f *orlyFilter.F) (nostr.Filter, error) {
|
||||||
|
if f == nil {
|
||||||
|
return nostr.Filter{}, fmt.Errorf("nil filter")
|
||||||
|
}
|
||||||
|
|
||||||
|
filter := nostr.Filter{}
|
||||||
|
|
||||||
|
// Convert IDs
|
||||||
|
if f.Ids != nil && len(f.Ids.T) > 0 {
|
||||||
|
filter.IDs = make([]string, 0, len(f.Ids.T))
|
||||||
|
for _, id := range f.Ids.T {
|
||||||
|
filter.IDs = append(filter.IDs, hex.EncodeToString(id))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert Authors
|
||||||
|
if f.Authors != nil && len(f.Authors.T) > 0 {
|
||||||
|
filter.Authors = make([]string, 0, len(f.Authors.T))
|
||||||
|
for _, author := range f.Authors.T {
|
||||||
|
filter.Authors = append(filter.Authors, hex.EncodeToString(author))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert Kinds
|
||||||
|
if f.Kinds != nil && len(f.Kinds.K) > 0 {
|
||||||
|
filter.Kinds = make([]int, 0, len(f.Kinds.K))
|
||||||
|
for _, kind := range f.Kinds.K {
|
||||||
|
filter.Kinds = append(filter.Kinds, int(kind.K))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert Tags
|
||||||
|
if f.Tags != nil && len(*f.Tags) > 0 {
|
||||||
|
filter.Tags = make(nostr.TagMap)
|
||||||
|
for _, tag := range *f.Tags {
|
||||||
|
if tag != nil && len(tag.T) >= 2 {
|
||||||
|
tagName := string(tag.T[0])
|
||||||
|
tagValues := make([]string, 0, len(tag.T)-1)
|
||||||
|
for i := 1; i < len(tag.T); i++ {
|
||||||
|
tagValues = append(tagValues, string(tag.T[i]))
|
||||||
|
}
|
||||||
|
filter.Tags[tagName] = tagValues
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert timestamps
|
||||||
|
if f.Since != nil {
|
||||||
|
ts := nostr.Timestamp(f.Since.V)
|
||||||
|
filter.Since = &ts
|
||||||
|
}
|
||||||
|
|
||||||
|
if f.Until != nil {
|
||||||
|
ts := nostr.Timestamp(f.Until.V)
|
||||||
|
filter.Until = &ts
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert limit
|
||||||
|
if f.Limit != nil {
|
||||||
|
limit := int(*f.Limit)
|
||||||
|
filter.Limit = limit
|
||||||
|
}
|
||||||
|
|
||||||
|
return filter, nil
|
||||||
|
}
|
||||||
289
cmd/benchmark/relysqlite_wrapper.go
Normal file
289
cmd/benchmark/relysqlite_wrapper.go
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
sqlite "github.com/vertex-lab/nostr-sqlite"
|
||||||
|
|
||||||
|
"next.orly.dev/pkg/database"
|
||||||
|
"next.orly.dev/pkg/database/indexes/types"
|
||||||
|
"next.orly.dev/pkg/encoders/event"
|
||||||
|
"next.orly.dev/pkg/encoders/filter"
|
||||||
|
"next.orly.dev/pkg/encoders/tag"
|
||||||
|
"next.orly.dev/pkg/interfaces/store"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RelySQLiteWrapper wraps the vertex-lab/nostr-sqlite store to implement
|
||||||
|
// the minimal database.Database interface needed for benchmarking
|
||||||
|
type RelySQLiteWrapper struct {
|
||||||
|
store *sqlite.Store
|
||||||
|
path string
|
||||||
|
ready chan struct{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRelySQLiteWrapper creates a new wrapper around nostr-sqlite
|
||||||
|
func NewRelySQLiteWrapper(dbPath string) (*RelySQLiteWrapper, error) {
|
||||||
|
store, err := sqlite.New(dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to create sqlite store: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
wrapper := &RelySQLiteWrapper{
|
||||||
|
store: store,
|
||||||
|
path: dbPath,
|
||||||
|
ready: make(chan struct{}),
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the ready channel immediately as SQLite is ready on creation
|
||||||
|
close(wrapper.ready)
|
||||||
|
|
||||||
|
return wrapper, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SaveEvent saves an event to the database
|
||||||
|
func (w *RelySQLiteWrapper) SaveEvent(ctx context.Context, ev *event.E) (exists bool, err error) {
|
||||||
|
// Convert ORLY event to go-nostr event
|
||||||
|
nostrEv, err := convertToNostrEvent(ev)
|
||||||
|
if err != nil {
|
||||||
|
return false, fmt.Errorf("failed to convert event: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use Replace for replaceable/addressable events, Save otherwise
|
||||||
|
if isReplaceableKind(int(ev.Kind)) || isAddressableKind(int(ev.Kind)) {
|
||||||
|
replaced, err := w.store.Replace(ctx, nostrEv)
|
||||||
|
return replaced, err
|
||||||
|
}
|
||||||
|
|
||||||
|
saved, err := w.store.Save(ctx, nostrEv)
|
||||||
|
return !saved, err // saved=true means it's new, exists=false
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryEvents queries events matching the filter
|
||||||
|
func (w *RelySQLiteWrapper) QueryEvents(ctx context.Context, f *filter.F) (evs event.S, err error) {
|
||||||
|
// Convert ORLY filter to go-nostr filter
|
||||||
|
nostrFilter, err := convertToNostrFilter(f)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to convert filter: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Query the store
|
||||||
|
nostrEvents, err := w.store.Query(ctx, nostrFilter)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("query failed: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert back to ORLY events
|
||||||
|
events := make(event.S, 0, len(nostrEvents))
|
||||||
|
for _, ne := range nostrEvents {
|
||||||
|
ev, err := convertFromNostrEvent(&ne)
|
||||||
|
if err != nil {
|
||||||
|
continue // Skip events that fail to convert
|
||||||
|
}
|
||||||
|
events = append(events, ev)
|
||||||
|
}
|
||||||
|
|
||||||
|
return events, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close closes the database
|
||||||
|
func (w *RelySQLiteWrapper) Close() error {
|
||||||
|
if w.store != nil {
|
||||||
|
return w.store.Close()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ready returns a channel that closes when the database is ready
|
||||||
|
func (w *RelySQLiteWrapper) Ready() <-chan struct{} {
|
||||||
|
return w.ready
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path returns the database path
|
||||||
|
func (w *RelySQLiteWrapper) Path() string {
|
||||||
|
return w.path
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wipe clears all data from the database
|
||||||
|
func (w *RelySQLiteWrapper) Wipe() error {
|
||||||
|
// Close current store
|
||||||
|
if err := w.store.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete the database file
|
||||||
|
// Note: This is a simplified approach - in production you'd want
|
||||||
|
// to handle this more carefully
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stub implementations for unused interface methods
|
||||||
|
func (w *RelySQLiteWrapper) Init(path string) error { return nil }
|
||||||
|
func (w *RelySQLiteWrapper) Sync() error { return nil }
|
||||||
|
func (w *RelySQLiteWrapper) SetLogLevel(level string) {}
|
||||||
|
func (w *RelySQLiteWrapper) GetSerialsFromFilter(f *filter.F) (serials types.Uint40s, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) WouldReplaceEvent(ev *event.E) (bool, types.Uint40s, error) {
|
||||||
|
return false, nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) QueryAllVersions(c context.Context, f *filter.F) (evs event.S, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) QueryEventsWithOptions(c context.Context, f *filter.F, includeDeleteEvents bool, showAllVersions bool) (evs event.S, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) QueryDeleteEventsByTargetId(c context.Context, targetEventId []byte) (evs event.S, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) QueryForSerials(c context.Context, f *filter.F) (serials types.Uint40s, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) QueryForIds(c context.Context, f *filter.F) (idPkTs []*store.IdPkTs, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) CountEvents(c context.Context, f *filter.F) (count int, approximate bool, err error) {
|
||||||
|
return 0, false, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) FetchEventBySerial(ser *types.Uint40) (ev *event.E, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) FetchEventsBySerials(serials []*types.Uint40) (events map[uint64]*event.E, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetSerialById(id []byte) (ser *types.Uint40, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetSerialsByIds(ids *tag.T) (serials map[string]*types.Uint40, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetSerialsByIdsWithFilter(ids *tag.T, fn func(ev *event.E, ser *types.Uint40) bool) (serials map[string]*types.Uint40, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetSerialsByRange(idx database.Range) (serials types.Uint40s, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetFullIdPubkeyBySerial(ser *types.Uint40) (fidpk *store.IdPkTs, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetFullIdPubkeyBySerials(sers []*types.Uint40) (fidpks []*store.IdPkTs, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) DeleteEvent(c context.Context, eid []byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) DeleteEventBySerial(c context.Context, ser *types.Uint40, ev *event.E) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) DeleteExpired() {}
|
||||||
|
func (w *RelySQLiteWrapper) ProcessDelete(ev *event.E, admins [][]byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) CheckForDeleted(ev *event.E, admins [][]byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) Import(rr io.Reader) {}
|
||||||
|
func (w *RelySQLiteWrapper) Export(c context.Context, writer io.Writer, pubkeys ...[]byte) {
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) ImportEventsFromReader(ctx context.Context, rr io.Reader) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) ImportEventsFromStrings(ctx context.Context, eventJSONs []string, policyManager interface{ CheckPolicy(action string, ev *event.E, pubkey []byte, remote string) (bool, error) }) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetRelayIdentitySecret() (skb []byte, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) SetRelayIdentitySecret(skb []byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetOrCreateRelayIdentitySecret() (skb []byte, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) SetMarker(key string, value []byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetMarker(key string) (value []byte, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) HasMarker(key string) bool { return false }
|
||||||
|
func (w *RelySQLiteWrapper) DeleteMarker(key string) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetSubscription(pubkey []byte) (*database.Subscription, error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) IsSubscriptionActive(pubkey []byte) (bool, error) {
|
||||||
|
return false, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) ExtendSubscription(pubkey []byte, days int) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) RecordPayment(pubkey []byte, amount int64, invoice, preimage string) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetPaymentHistory(pubkey []byte) ([]database.Payment, error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) ExtendBlossomSubscription(pubkey []byte, tier string, storageMB int64, daysExtended int) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetBlossomStorageQuota(pubkey []byte) (quotaMB int64, err error) {
|
||||||
|
return 0, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) IsFirstTimeUser(pubkey []byte) (bool, error) {
|
||||||
|
return false, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) AddNIP43Member(pubkey []byte, inviteCode string) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) RemoveNIP43Member(pubkey []byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) IsNIP43Member(pubkey []byte) (isMember bool, err error) {
|
||||||
|
return false, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetNIP43Membership(pubkey []byte) (*database.NIP43Membership, error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetAllNIP43Members() ([][]byte, error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) StoreInviteCode(code string, expiresAt time.Time) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) ValidateInviteCode(code string) (valid bool, err error) {
|
||||||
|
return false, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) DeleteInviteCode(code string) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) PublishNIP43MembershipEvent(kind int, pubkey []byte) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) RunMigrations() {}
|
||||||
|
func (w *RelySQLiteWrapper) GetCachedJSON(f *filter.F) ([][]byte, bool) {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) CacheMarshaledJSON(f *filter.F, marshaledJSON [][]byte) {
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) GetCachedEvents(f *filter.F) (event.S, bool) {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
func (w *RelySQLiteWrapper) CacheEvents(f *filter.F, events event.S) {}
|
||||||
|
func (w *RelySQLiteWrapper) InvalidateQueryCache() {}
|
||||||
|
func (w *RelySQLiteWrapper) EventIdsBySerial(start uint64, count int) (evs []uint64, err error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to check if a kind is replaceable
|
||||||
|
func isReplaceableKind(kind int) bool {
|
||||||
|
return (kind >= 10000 && kind < 20000) || kind == 0 || kind == 3
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to check if a kind is addressable
|
||||||
|
func isAddressableKind(kind int) bool {
|
||||||
|
return kind >= 30000 && kind < 40000
|
||||||
|
}
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
================================================================
|
|
||||||
NOSTR RELAY BENCHMARK AGGREGATE REPORT
|
|
||||||
================================================================
|
|
||||||
Generated: 2025-11-19T06:13:40+00:00
|
|
||||||
Benchmark Configuration:
|
|
||||||
Events per test: 50000
|
|
||||||
Concurrent workers: 24
|
|
||||||
Test duration: 60s
|
|
||||||
|
|
||||||
Relays tested: 8
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
SUMMARY BY RELAY
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Relay: next-orly-badger
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2911.52
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2911.52
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 3.938925ms
|
|
||||||
Bottom 10% Avg Latency: 1.115318ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.624387ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 112.915µs
|
|
||||||
|
|
||||||
Relay: next-orly-dgraph
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2661.66
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2661.66
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.795769ms
|
|
||||||
Bottom 10% Avg Latency: 1.212562ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 6.029522ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 115.35µs
|
|
||||||
|
|
||||||
Relay: next-orly-neo4j
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2827.54
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2827.54
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.203722ms
|
|
||||||
Bottom 10% Avg Latency: 1.124184ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.568189ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 112.755µs
|
|
||||||
|
|
||||||
Relay: khatru-sqlite
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2840.91
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2840.91
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.23095ms
|
|
||||||
Bottom 10% Avg Latency: 1.142932ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.703046ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 113.897µs
|
|
||||||
|
|
||||||
Relay: khatru-badger
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2885.30
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2885.30
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 3.985846ms
|
|
||||||
Bottom 10% Avg Latency: 1.120349ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.23797ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 114.277µs
|
|
||||||
|
|
||||||
Relay: relayer-basic
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2707.76
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2707.76
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.657987ms
|
|
||||||
Bottom 10% Avg Latency: 1.266467ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 5.603449ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 112.123µs
|
|
||||||
|
|
||||||
Relay: strfry
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2841.22
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2841.22
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.088506ms
|
|
||||||
Bottom 10% Avg Latency: 1.135387ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.517428ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 113.396µs
|
|
||||||
|
|
||||||
Relay: nostr-rs-relay
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 2883.32
|
|
||||||
Events/sec: 0.00
|
|
||||||
Events/sec: 2883.32
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Avg Latency: 4.044321ms
|
|
||||||
Bottom 10% Avg Latency: 1.103637ms
|
|
||||||
Avg Latency: 0s
|
|
||||||
P95 Latency: 4.602719ms
|
|
||||||
P95 Latency: 0s
|
|
||||||
P95 Latency: 114.679µs
|
|
||||||
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
DETAILED RESULTS
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Individual relay reports are available in:
|
|
||||||
- /reports/run_20251119_054648/khatru-badger_results.txt
|
|
||||||
- /reports/run_20251119_054648/khatru-sqlite_results.txt
|
|
||||||
- /reports/run_20251119_054648/next-orly-badger_results.txt
|
|
||||||
- /reports/run_20251119_054648/next-orly-dgraph_results.txt
|
|
||||||
- /reports/run_20251119_054648/next-orly-neo4j_results.txt
|
|
||||||
- /reports/run_20251119_054648/nostr-rs-relay_results.txt
|
|
||||||
- /reports/run_20251119_054648/relayer-basic_results.txt
|
|
||||||
- /reports/run_20251119_054648/strfry_results.txt
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
BENCHMARK COMPARISON TABLE
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Relay Status Peak Tput/s Avg Latency Success Rate
|
|
||||||
---- ------ ----------- ----------- ------------
|
|
||||||
next-orly-badger OK 2911.52 3.938925ms 23.2%
|
|
||||||
next-orly-dgraph OK 2661.66 4.795769ms 23.2%
|
|
||||||
next-orly-neo4j OK 2827.54 4.203722ms 23.2%
|
|
||||||
khatru-sqlite OK 2840.91 4.23095ms 23.2%
|
|
||||||
khatru-badger OK 2885.30 3.985846ms 23.2%
|
|
||||||
relayer-basic OK 2707.76 4.657987ms 23.2%
|
|
||||||
strfry OK 2841.22 4.088506ms 23.2%
|
|
||||||
nostr-rs-relay OK 2883.32 4.044321ms 23.2%
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
End of Report
|
|
||||||
================================================================
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_khatru-badger_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763532013820368ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763532013820438ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763532013820599ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763532013820636ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763532013820660ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763532013820689ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763532013820696ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763532013820709ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763532013820716ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763532014234684🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014251555🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014251585🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014251639🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014254033🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014254683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014260808🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014260870🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014260812🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014277104🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014277657🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014278205🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014278285🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014336903🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014363478🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014364290🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014364354🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014372904🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014372959🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532014372971⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532014372938🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014373003🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532014373014⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532014383001🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014388837🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014388919🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014391202🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014391216🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014395794🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014396847🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014396979🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014396873🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014396880🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014396846🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014397913🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014398032🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014398153🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014398247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014398524🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014400310🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014403460🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014403895🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014404002🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014470332🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014934773🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014936459🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014936494🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014936497🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014937911🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014939536🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014940367🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014941984🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014942689🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014942709🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014942750🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014942741🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014942816🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014943338🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014943451🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014943893🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014944522🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014944537🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014945141🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014946012🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014946045🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532014946054⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532014952520🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014952585🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014952570🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014952563🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014952804🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014952823🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014962010🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014964509🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014966546🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014967125🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014967251🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014967275🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532014967285⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532014967615🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014967952🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014968056🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014969528🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014970610🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014971146🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014971229🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014972191🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014972290🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014972853🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014972895🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014974659🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014974684🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014974733🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014974970🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014975040🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014977640🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014978813🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014978844🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014979660🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014980760🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014981739🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014984695🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014987050🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014990255🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014990268🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014993000🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014993071🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014996648🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014997887🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014997959🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014999208🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532014999202🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015000529🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015000865🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015000886🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532015000896⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532015002409🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015004222🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015004801🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015008082🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015008121🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015009296🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015009474🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015009686🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015012705🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015012722🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015012772🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532015012781⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532015012725🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015013275🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015015485🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015019833🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015020302🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015020468🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015021079🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015021179🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015021350🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532015021469⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532015064798🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015093196🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015094045🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015094353🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015095456🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015095647🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015096130🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015097710🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015098568🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015098646🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015098916🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015098980🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015099247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015099372🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015108396🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015119916🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015119977🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015120078🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015120399🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015120616🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015122335🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015122440🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015123578🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015124232🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015124271🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015124633🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015125046🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015125334🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015125478🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015126491🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015128111🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015129915🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015130524🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015130922🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015130936🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532015130947⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532015132041🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015132140🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015132159🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532015132169⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532015132455🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015133481🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015135204🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015136901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015139167🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015139314🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015139559🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015141275🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015142111🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015142160🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015142311🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015142362🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015142802🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015144182🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015145669🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015146606🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015146730🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015146734🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015146823🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015149126🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015149475🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015150317🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015150316🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015151297🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015151530🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015153167🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015153511🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015153573🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015155305🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015155850🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015156230🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015156939🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015156993🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015157067🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015157244🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015157507🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015157735🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015158040🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015158976🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015158977🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015159156🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015169407🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015169419🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015169831🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015169843🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015170898🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171507🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171504🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171625🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171670🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171725🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015171739🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532015172695🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11594/50000 (23.2%), errors: 38406
|
|
||||||
Duration: 4.018301066s
|
|
||||||
Events/sec: 2885.30
|
|
||||||
Avg latency: 3.985846ms
|
|
||||||
P90 latency: 3.336914ms
|
|
||||||
P95 latency: 4.23797ms
|
|
||||||
P99 latency: 73.250512ms
|
|
||||||
Bottom 10% Avg latency: 1.120349ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 340.161594ms
|
|
||||||
Burst completed: 5000 events in 341.757352ms
|
|
||||||
Burst completed: 5000 events in 343.518235ms
|
|
||||||
Burst completed: 5000 events in 351.096045ms
|
|
||||||
Burst completed: 5000 events in 332.761293ms
|
|
||||||
Burst completed: 5000 events in 335.458889ms
|
|
||||||
Burst completed: 5000 events in 331.664424ms
|
|
||||||
Burst completed: 5000 events in 347.834073ms
|
|
||||||
Burst completed: 5000 events in 356.191406ms
|
|
||||||
Burst completed: 5000 events in 335.250061ms
|
|
||||||
Burst test completed: 0 events in 8.421134295s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.626390359s
|
|
||||||
Combined ops/sec: 1104.90
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 403899 queries in 1m0.00394972s
|
|
||||||
Queries/sec: 6731.21
|
|
||||||
Avg query latency: 1.574327ms
|
|
||||||
P95 query latency: 5.370236ms
|
|
||||||
P99 query latency: 9.259041ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 564827 operations (564827 queries, 0 writes) in 1m0.001868516s
|
|
||||||
Operations/sec: 9413.49
|
|
||||||
Avg latency: 45.49µs
|
|
||||||
Avg query latency: 45.49µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 87.116µs
|
|
||||||
P99 latency: 128.965µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.018301066s
|
|
||||||
Total Events: 11594
|
|
||||||
Events/sec: 2885.30
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 398 MB
|
|
||||||
Avg Latency: 3.985846ms
|
|
||||||
P90 Latency: 3.336914ms
|
|
||||||
P95 Latency: 4.23797ms
|
|
||||||
P99 Latency: 73.250512ms
|
|
||||||
Bottom 10% Avg Latency: 1.120349ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.421134295s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 226 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.626390359s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1104.90
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 400 MB
|
|
||||||
Avg Latency: 82.006µs
|
|
||||||
P90 Latency: 103.006µs
|
|
||||||
P95 Latency: 114.277µs
|
|
||||||
P99 Latency: 141.409µs
|
|
||||||
Bottom 10% Avg Latency: 128.204µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 193c67d51dab9dc19eeebcde810364f2ba7d105ab9206de1f4f0f884db23e6e2
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 1642d6770a74de7ca45169bc76dab334591bcb2191044da0b18459888164f9fc
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 11aa0b6defe3d58cef2f93c06fb194bc72241f17fb35312594d279f6c8f13d44
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.00394972s
|
|
||||||
Total Events: 403899
|
|
||||||
Events/sec: 6731.21
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 343 MB
|
|
||||||
Avg Latency: 1.574327ms
|
|
||||||
P90 Latency: 4.377275ms
|
|
||||||
P95 Latency: 5.370236ms
|
|
||||||
P99 Latency: 9.259041ms
|
|
||||||
Bottom 10% Avg Latency: 6.283482ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.001868516s
|
|
||||||
Total Events: 564827
|
|
||||||
Events/sec: 9413.49
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 314 MB
|
|
||||||
Avg Latency: 45.49µs
|
|
||||||
P90 Latency: 77.518µs
|
|
||||||
P95 Latency: 87.116µs
|
|
||||||
P99 Latency: 128.965µs
|
|
||||||
Bottom 10% Avg Latency: 98.509µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 0e0b4dfd5e4ecfb0d3acb8db48d13833edeac5163fbcba9fb94160b686c07595
|
|
||||||
- blocked: event already exists: 048d7b07155b3832a76eac0b46bea764cac3597dfbc28b559698d51f915cb6d1
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
- blocked: event already exists: 03edc6b095b2a314733ea3dc689bb54e8739d443e9e69dd61334a5d376bf72a4
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T06:03:30+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_khatru-sqlite_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763531812447164ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763531812447229ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763531812447253ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763531812447258ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763531812447267ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763531812447280ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763531812447284ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763531812447299ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763531812447305ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763531812868715🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812885777🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812885785🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812885781🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812888045🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812888883🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812894492🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812894803🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812894864🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812906496🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812906886🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812907798🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812907811🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812970866🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812994211🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812994242🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531812995432🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813002343🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813002408🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813002419⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813002352🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813002444🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813002453⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813015072🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813021384🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813021454🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813024080🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813024096🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813028103🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813028164🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813028163🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813028172🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813029347🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813029380🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813029352🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813029730🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813030214🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813030785🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813030957🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813031557🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813035531🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813036469🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813036495🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813099067🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813562314🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813562971🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813565216🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813565216🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813567538🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813567585🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813567716🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813568218🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813568287🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813569557🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813570316🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813570360🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813570365🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813571136🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813571233🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813572029🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813572530🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813572639🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813574021🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813574064🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813574094🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813574102⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813580239🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813580983🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813581043🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813581051🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813581057🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813582095🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813591212🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813592938🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813595510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813595557🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813595567⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813596639🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813597830🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813597913🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813597995🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813598000🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813601235🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813601369🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813601858🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813603356🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813603525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813604715🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813604863🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813605574🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813605606🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813607117🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813607278🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813607509🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813607624🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813612677🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813612797🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813614702🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813614764🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813614882🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813617726🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813623543🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813625833🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813626707🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813627647🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813632382🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813632571🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813635724🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813636426🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813636441🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813639483🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813639507🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813639674🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813639722🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813639732🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813639741⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813640713🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813643809🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813644009🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813647476🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813647510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813647627🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813648800🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813648916🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813650458🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813651830🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813651871🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813651882⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813652883🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813652944🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813653924🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813659588🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813659716🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813659733🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813660461🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813660671🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813660696🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813660706⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813665655🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813667093🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813669863🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813669986🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813670282🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813717436🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813717882🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813717901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813718988🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813719942🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813721821🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813738580🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813738746🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813739264🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813748490🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813759607🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813759605🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813760687🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813762309🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813765035🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813765052🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813765323🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813765579🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813765764🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813766675🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813766899🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813767155🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813767196🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813772016🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813772674🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813776484🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813776639🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813778873🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813779242🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813779285🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813779295⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813779456🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813779483🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531813779497⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531813779697🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813780185🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813781185🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813785435🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813786078🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813787727🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813788738🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813788858🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813791644🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813791838🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813791870🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813792007🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813792229🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813793643🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813795596🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813796358🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813797479🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813798679🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813800350🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813800531🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813800925🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813800936🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813800925🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813803971🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813803969🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813804958🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813806100🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813817052🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813817048🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813818064🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813818135🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813818275🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813818876🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813818912🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813819267🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813819296🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813819709🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813820510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813820746🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813821066🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813821216🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813821322🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813821776🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813822026🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813822031🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813826902🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813827998🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813828498🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813828596🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813828687🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813828721🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813828601🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813829312🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531813830658🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11596/50000 (23.2%), errors: 38404
|
|
||||||
Duration: 4.081787895s
|
|
||||||
Events/sec: 2840.91
|
|
||||||
Avg latency: 4.23095ms
|
|
||||||
P90 latency: 3.400435ms
|
|
||||||
P95 latency: 4.703046ms
|
|
||||||
P99 latency: 81.047331ms
|
|
||||||
Bottom 10% Avg latency: 1.142932ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 346.663376ms
|
|
||||||
Burst completed: 5000 events in 333.067587ms
|
|
||||||
Burst completed: 5000 events in 330.484528ms
|
|
||||||
Burst completed: 5000 events in 338.487447ms
|
|
||||||
Burst completed: 5000 events in 341.447764ms
|
|
||||||
Burst completed: 5000 events in 364.127901ms
|
|
||||||
Burst completed: 5000 events in 344.947769ms
|
|
||||||
Burst completed: 5000 events in 341.432775ms
|
|
||||||
Burst completed: 5000 events in 347.698657ms
|
|
||||||
Burst completed: 5000 events in 341.10947ms
|
|
||||||
Burst test completed: 0 events in 8.436449617s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.467041454s
|
|
||||||
Combined ops/sec: 1112.74
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 408433 queries in 1m0.005096356s
|
|
||||||
Queries/sec: 6806.64
|
|
||||||
Avg query latency: 1.551089ms
|
|
||||||
P95 query latency: 5.244046ms
|
|
||||||
P99 query latency: 9.025085ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 564551 operations (564551 queries, 0 writes) in 1m0.000283858s
|
|
||||||
Operations/sec: 9409.14
|
|
||||||
Avg latency: 45.619µs
|
|
||||||
Avg query latency: 45.619µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 87.236µs
|
|
||||||
P99 latency: 130.949µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.081787895s
|
|
||||||
Total Events: 11596
|
|
||||||
Events/sec: 2840.91
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 384 MB
|
|
||||||
Avg Latency: 4.23095ms
|
|
||||||
P90 Latency: 3.400435ms
|
|
||||||
P95 Latency: 4.703046ms
|
|
||||||
P99 Latency: 81.047331ms
|
|
||||||
Bottom 10% Avg Latency: 1.142932ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.436449617s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 215 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.467041454s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1112.74
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 385 MB
|
|
||||||
Avg Latency: 82.061µs
|
|
||||||
P90 Latency: 102.695µs
|
|
||||||
P95 Latency: 113.897µs
|
|
||||||
P99 Latency: 140.147µs
|
|
||||||
Bottom 10% Avg Latency: 129.144µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 048d7b07155b3832a76eac0b46bea764cac3597dfbc28b559698d51f915cb6d1
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 11aa0b6defe3d58cef2f93c06fb194bc72241f17fb35312594d279f6c8f13d44
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.005096356s
|
|
||||||
Total Events: 408433
|
|
||||||
Events/sec: 6806.64
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 366 MB
|
|
||||||
Avg Latency: 1.551089ms
|
|
||||||
P90 Latency: 4.323112ms
|
|
||||||
P95 Latency: 5.244046ms
|
|
||||||
P99 Latency: 9.025085ms
|
|
||||||
Bottom 10% Avg Latency: 6.133631ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.000283858s
|
|
||||||
Total Events: 564551
|
|
||||||
Events/sec: 9409.14
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 353 MB
|
|
||||||
Avg Latency: 45.619µs
|
|
||||||
P90 Latency: 77.388µs
|
|
||||||
P95 Latency: 87.236µs
|
|
||||||
P99 Latency: 130.949µs
|
|
||||||
Bottom 10% Avg Latency: 98.767µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 01e9943cf5e805283c512b9c26cf69f7e9ff412710d7543a3a52dc93ac7e8a57
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 03edc6b095b2a314733ea3dc689bb54e8739d443e9e69dd61334a5d376bf72a4
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T06:00:08+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_next-orly-badger_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763531208053542ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763531208053690ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763531208053742ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763531208053750ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763531208053760ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763531208053778ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763531208053784ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763531208053801ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763531208053808ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763531208465992🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208483000🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208483002🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208483661🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208485058🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208485701🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208491992🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208492314🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208492945🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208507228🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208507404🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208507623🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208508352🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208565748🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208593189🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208593671🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208594027🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208602302🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208602343🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531208602353⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531208602584🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208602605🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531208602611⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531208610060🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208618508🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208618604🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208622203🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208622231🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626334🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626349🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626357🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626874🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626909🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626885🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208626879🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208627275🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208627366🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208628641🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208628657🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208630021🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208632589🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208633861🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208633918🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531208707199🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209162276🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209162272🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209162817🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209162842🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209165303🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209165301🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209166674🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209166730🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209167368🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209167390🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209167886🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209168683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209168686🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209169118🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209169150🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209170268🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209170273🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209170304🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209171666🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209171826🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209171854🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209171863⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209177425🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209177559🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209178508🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209178569🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209178611🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209179115🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209187446🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209190525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209192408🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209192833🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209193582🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209193679🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209193698🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209193706🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209193707⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209193752🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209195157🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209197056🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209197225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209197585🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209198217🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209198927🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209198996🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209199967🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209200128🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209200229🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209201976🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209202454🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209202456🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209204631🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209204834🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209205952🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209206128🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209206132🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209208116🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209211081🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209213252🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209214253🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209215036🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209218532🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209219160🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209222863🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209222881🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209222965🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209224623🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209225425🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209225575🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209225925🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209225963🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209225976⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209227378🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209230128🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209231247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209234368🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209234474🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209235586🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209235721🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209235726🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209237302🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209237697🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209238490🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209238511🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209238521⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209238633🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209240817🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209244908🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209246392🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209247168🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209247218🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209247624🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209247733🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209247887⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209258006🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209279804🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209281422🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209281504🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209282064🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209282725🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209302439🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209302967🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209303684🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209304213🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209304357🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209304523🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209304583🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209305101🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209330784🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209340122🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209340215🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209345768🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209346170🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209346179🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209346425🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209346897🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209347883🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209347912🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209347965🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209348714🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209349164🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209349193🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209350881🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209350968🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209352091🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209353585🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209355263🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209355876🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209355928🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209355941⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209355985🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209356002🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531209356010⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531209356081🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209356450🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209356604🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209359937🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209360087🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209361772🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209361849🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209362879🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209363754🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209365054🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209365110🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209365144🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209365175🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209366595🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209366598🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209368981🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209369366🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209369921🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209369991🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209370020🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209371151🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209372195🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209372361🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209372416🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209372441🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209374373🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209375330🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209375383🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209375621🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209376946🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209376950🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209377448🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209377499🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209378356🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209378357🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209378418🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209378454🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209382899🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209383451🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209387993🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209388236🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209401957🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209402627🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209402903🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209403446🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209403453🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209404336🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209404676🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209404984🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209405085🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209405676🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209405823🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209405861🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531209406920🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11592/50000 (23.2%), errors: 38408
|
|
||||||
Duration: 3.98141893s
|
|
||||||
Events/sec: 2911.52
|
|
||||||
Avg latency: 3.938925ms
|
|
||||||
P90 latency: 3.357143ms
|
|
||||||
P95 latency: 4.624387ms
|
|
||||||
P99 latency: 71.546396ms
|
|
||||||
Bottom 10% Avg latency: 1.115318ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 342.062444ms
|
|
||||||
Burst completed: 5000 events in 342.428441ms
|
|
||||||
Burst completed: 5000 events in 331.568769ms
|
|
||||||
Burst completed: 5000 events in 325.104719ms
|
|
||||||
Burst completed: 5000 events in 336.284199ms
|
|
||||||
Burst completed: 5000 events in 336.312002ms
|
|
||||||
Burst completed: 5000 events in 336.094447ms
|
|
||||||
Burst completed: 5000 events in 333.072923ms
|
|
||||||
Burst completed: 5000 events in 350.917627ms
|
|
||||||
Burst completed: 5000 events in 329.621891ms
|
|
||||||
Burst test completed: 0 events in 8.368751649s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.617040249s
|
|
||||||
Combined ops/sec: 1105.36
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 404906 queries in 1m0.003855016s
|
|
||||||
Queries/sec: 6748.00
|
|
||||||
Avg query latency: 1.567428ms
|
|
||||||
P95 query latency: 5.346663ms
|
|
||||||
P99 query latency: 9.186414ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 565785 operations (565785 queries, 0 writes) in 1m0.000685928s
|
|
||||||
Operations/sec: 9429.64
|
|
||||||
Avg latency: 45.237µs
|
|
||||||
Avg query latency: 45.237µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 86.405µs
|
|
||||||
P99 latency: 126.221µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 3.98141893s
|
|
||||||
Total Events: 11592
|
|
||||||
Events/sec: 2911.52
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 409 MB
|
|
||||||
Avg Latency: 3.938925ms
|
|
||||||
P90 Latency: 3.357143ms
|
|
||||||
P95 Latency: 4.624387ms
|
|
||||||
P99 Latency: 71.546396ms
|
|
||||||
Bottom 10% Avg Latency: 1.115318ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.368751649s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 316 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.617040249s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1105.36
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 358 MB
|
|
||||||
Avg Latency: 81.046µs
|
|
||||||
P90 Latency: 102.124µs
|
|
||||||
P95 Latency: 112.915µs
|
|
||||||
P99 Latency: 137.351µs
|
|
||||||
Bottom 10% Avg Latency: 122.82µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 2197ff7ffc723d2fb4f7e44aeaf0ed8c2e0e2f3fb3aae29f2e33e0683ddf1a99
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
- blocked: event already exists: 1642d6770a74de7ca45169bc76dab334591bcb2191044da0b18459888164f9fc
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.003855016s
|
|
||||||
Total Events: 404906
|
|
||||||
Events/sec: 6748.00
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 370 MB
|
|
||||||
Avg Latency: 1.567428ms
|
|
||||||
P90 Latency: 4.371194ms
|
|
||||||
P95 Latency: 5.346663ms
|
|
||||||
P99 Latency: 9.186414ms
|
|
||||||
Bottom 10% Avg Latency: 6.253752ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.000685928s
|
|
||||||
Total Events: 565785
|
|
||||||
Events/sec: 9429.64
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 285 MB
|
|
||||||
Avg Latency: 45.237µs
|
|
||||||
P90 Latency: 76.916µs
|
|
||||||
P95 Latency: 86.405µs
|
|
||||||
P99 Latency: 126.221µs
|
|
||||||
Bottom 10% Avg Latency: 96.947µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 0f06ba91f371d4f8647a3f9529af3b9a012988eabf9f7c2eb42b39aa86697ea9
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 01e9943cf5e805283c512b9c26cf69f7e9ff412710d7543a3a52dc93ac7e8a57
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T05:50:04+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_next-orly-dgraph_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763531409344607ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763531409344681ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763531409344706ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763531409344712ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763531409344720ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763531409344735ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763531409344740ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763531409344750ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763531409344755ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763531409759610🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409776086🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409776771🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409776804🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409778374🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409779152🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409784971🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409785617🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409785633🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409800163🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409801153🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409801420🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409802414🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409862218🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409893021🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409893729🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409893845🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409903047🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409903106🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531409903118⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531409903232🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409903259🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531409903268⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531409915985🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409923045🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409923074🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409924533🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409924591🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931212🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931262🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931215🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931529🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931623🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409931717🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409932268🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409932860🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409933379🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409934990🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409935370🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409940251🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409940354🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531409940445🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410018217🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410580488🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410581675🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410581900🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410582040🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410585617🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410585827🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410586939🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410587543🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410589137🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410589245🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410589709🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410589866🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410590173🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410591177🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410591619🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410591882🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410591940🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410593576🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410593582🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410595220🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410595270🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410595283⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410601931🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410602639🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410602948🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410603018🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410603032🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410604054🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410615476🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410618852🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410621310🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410622085🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410622542🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410622694🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410623081🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410623190⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410625660🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410625875🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410627147🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410628773🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410628799🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410631527🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410633749🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410635043🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410635129🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410636981🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410637344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410637661🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410637900🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410640346🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410640479🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410641582🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410642954🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410643510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410644729🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410645234🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410646826🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410653499🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410655186🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410656858🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410657174🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410662374🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410663158🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410667648🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410667651🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410669820🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410670020🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410670837🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410670876🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410671525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410671553🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410671564⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410672779🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410674901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410676001🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410681122🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410681358🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410681494🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410683894🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410685543🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410687981🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410688533🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410724866🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410724928🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410724940⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410724987🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410770270🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410777849🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410778883🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410779911🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410780788🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410780841🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410780854⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410781677🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410791857🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410794114🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410794283🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410796455🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410797679🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410798175🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410799065🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410802177🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410803368🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410804150🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410804338🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410804382🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410804458🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410804719🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410821062🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410833464🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410834106🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410834246🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410835105🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410836569🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410837441🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410837610🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410837763🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410840857🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410841784🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410842816🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410842931🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410843145🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410843483🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410844039🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410846135🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410846834🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410848379🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410850717🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410852878🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410853093🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410853211⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410852879🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410853359🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531410853372⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531410853308🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410853791🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410855175🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410856611🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410857598🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410858251🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410859031🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410860805🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410862140🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410862321🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410862439🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410863187🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410863202🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410864904🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410868122🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410869575🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410869665🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410870058🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410870128🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410870884🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410874467🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410875395🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410891523🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410892283🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410893472🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410894764🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410895562🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410895719🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410896070🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410897173🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410897187🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410897198🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410897778🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410897979🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410898440🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410898758🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410898832🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410899952🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410900622🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410933276🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410933374🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410933901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410934099🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410934447🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410934494🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410935849🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410935923🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410936168🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410936541🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410936556🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410936570🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410937707🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531410937742🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11594/50000 (23.2%), errors: 38406
|
|
||||||
Duration: 4.355930627s
|
|
||||||
Events/sec: 2661.66
|
|
||||||
Avg latency: 4.795769ms
|
|
||||||
P90 latency: 4.155613ms
|
|
||||||
P95 latency: 6.029522ms
|
|
||||||
P99 latency: 90.290502ms
|
|
||||||
Bottom 10% Avg latency: 1.212562ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 347.262129ms
|
|
||||||
Burst completed: 5000 events in 340.789843ms
|
|
||||||
Burst completed: 5000 events in 335.779512ms
|
|
||||||
Burst completed: 5000 events in 337.508905ms
|
|
||||||
Burst completed: 5000 events in 332.483505ms
|
|
||||||
Burst completed: 5000 events in 330.245503ms
|
|
||||||
Burst completed: 5000 events in 327.047944ms
|
|
||||||
Burst completed: 5000 events in 337.854803ms
|
|
||||||
Burst completed: 5000 events in 341.472684ms
|
|
||||||
Burst completed: 5000 events in 338.139736ms
|
|
||||||
Burst test completed: 0 events in 8.375225019s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.648388132s
|
|
||||||
Combined ops/sec: 1103.83
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 392001 queries in 1m0.005057189s
|
|
||||||
Queries/sec: 6532.80
|
|
||||||
Avg query latency: 1.635372ms
|
|
||||||
P95 query latency: 5.6029ms
|
|
||||||
P99 query latency: 9.496203ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 566246 operations (566246 queries, 0 writes) in 1m0.00114177s
|
|
||||||
Operations/sec: 9437.25
|
|
||||||
Avg latency: 45.308µs
|
|
||||||
Avg query latency: 45.308µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 87.115µs
|
|
||||||
P99 latency: 132.623µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.355930627s
|
|
||||||
Total Events: 11594
|
|
||||||
Events/sec: 2661.66
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 344 MB
|
|
||||||
Avg Latency: 4.795769ms
|
|
||||||
P90 Latency: 4.155613ms
|
|
||||||
P95 Latency: 6.029522ms
|
|
||||||
P99 Latency: 90.290502ms
|
|
||||||
Bottom 10% Avg Latency: 1.212562ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.375225019s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 368 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.648388132s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1103.83
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 335 MB
|
|
||||||
Avg Latency: 82.523µs
|
|
||||||
P90 Latency: 103.357µs
|
|
||||||
P95 Latency: 115.35µs
|
|
||||||
P99 Latency: 145.828µs
|
|
||||||
Bottom 10% Avg Latency: 129.81µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 2197ff7ffc723d2fb4f7e44aeaf0ed8c2e0e2f3fb3aae29f2e33e0683ddf1a99
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.005057189s
|
|
||||||
Total Events: 392001
|
|
||||||
Events/sec: 6532.80
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 421 MB
|
|
||||||
Avg Latency: 1.635372ms
|
|
||||||
P90 Latency: 4.618756ms
|
|
||||||
P95 Latency: 5.6029ms
|
|
||||||
P99 Latency: 9.496203ms
|
|
||||||
Bottom 10% Avg Latency: 6.522705ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.00114177s
|
|
||||||
Total Events: 566246
|
|
||||||
Events/sec: 9437.25
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 437 MB
|
|
||||||
Avg Latency: 45.308µs
|
|
||||||
P90 Latency: 76.856µs
|
|
||||||
P95 Latency: 87.115µs
|
|
||||||
P99 Latency: 132.623µs
|
|
||||||
Bottom 10% Avg Latency: 98.925µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 01e9943cf5e805283c512b9c26cf69f7e9ff412710d7543a3a52dc93ac7e8a57
|
|
||||||
- blocked: event already exists: 1642d6770a74de7ca45169bc76dab334591bcb2191044da0b18459888164f9fc
|
|
||||||
- blocked: event already exists: 15c0a862ce4191bc51a1b668f77869c13cd81fd0af9473759a04ce2637a8860a
|
|
||||||
- blocked: event already exists: 0e0b4dfd5e4ecfb0d3acb8db48d13833edeac5163fbcba9fb94160b686c07595
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T05:53:26+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_next-orly-neo4j_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763531611066103ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763531611066178ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763531611066207ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763531611066214ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763531611066225ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763531611066244ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763531611066251ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763531611066267ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763531611066274ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763531611477120🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611493941🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611494126🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611494926🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611496231🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611496246🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611502279🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611503297🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611503330🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611518900🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611518891🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611519488🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611519747🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611577871🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611606029🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611606900🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611606947🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611614519🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611614565🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531611614574⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531611614525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611614608🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531611614621⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531611624602🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611629772🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611629796🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611631851🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611631931🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611636831🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611636859🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611638048🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611638089🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611638115🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611638587🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611638716🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611639199🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611639225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611639803🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611639863🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611640930🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611644335🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611644684🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611644898🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531611708589🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612171835🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612172653🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612172732🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612173556🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612175511🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612177118🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612177776🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612178379🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612178372🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612178397🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612179258🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612179440🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612179480🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612179957🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612180057🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612181198🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612181239🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612181692🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612182749🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612183455🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612183483🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612183491⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612189208🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612189347🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612189377🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612189422🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612189435🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612190775🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612199207🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612202839🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612204455🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612204751🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612204774🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612204782⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612205235🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612205306🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612205344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612206263🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612209033🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612209322🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612209353🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612210019🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612210383🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612210675🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612211567🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612211774🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612211848🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612212220🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612212273🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612213270🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612213282🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612216359🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612216384🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612217080🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612217427🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612218474🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612219554🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612221869🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612224539🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612225032🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612228378🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612230581🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612230736🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612232890🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612234376🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612234461🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612236593🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612236643🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612236655⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612236622🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612236896🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612236930🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612242225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612243552🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612244820🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612247851🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612248039🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612248536🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612248584🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612249053🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612251606🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612251935🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612251974🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612251979🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612251986⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612253040🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612255159🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612261269🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612261370🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612261469🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612262573🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612262697🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612262722🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612262731⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612294932🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612296429🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612315617🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612316570🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612317612🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612317766🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612317970🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612318694🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612321488🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612342151🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612342215🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612342415🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612342612🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612342903🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612351936🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612360967🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612361147🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612362355🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612364716🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612365603🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612365742🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612365902🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612365920🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612367122🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612367371🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612367380🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612368070🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612368460🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612368669🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612370166🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612372335🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612372509🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612373590🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612373895🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612374191🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612374269🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612374283🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612374293⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612374421🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612374456🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763531612374466⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763531612374683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612377078🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612378475🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612379970🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612380111🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612380109🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612382815🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612382875🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612382834🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612383146🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612383524🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612384208🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612386086🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612386271🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612387633🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612388100🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612388149🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612388240🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612388288🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612388990🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612389041🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612389077🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612390273🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612391060🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612392786🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612392907🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612394095🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612394516🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612394715🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612394732🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612395297🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612395359🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612395657🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612395823🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612395851🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612396829🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612397908🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612399692🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612401330🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612401868🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612404794🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612404977🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612405122🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612405322🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612405815🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612405838🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612406058🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612418956🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612419108🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612419316🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612419579🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763531612420418🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11592/50000 (23.2%), errors: 38408
|
|
||||||
Duration: 4.099682418s
|
|
||||||
Events/sec: 2827.54
|
|
||||||
Avg latency: 4.203722ms
|
|
||||||
P90 latency: 3.345671ms
|
|
||||||
P95 latency: 4.568189ms
|
|
||||||
P99 latency: 88.030281ms
|
|
||||||
Bottom 10% Avg latency: 1.124184ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 335.33957ms
|
|
||||||
Burst completed: 5000 events in 338.195898ms
|
|
||||||
Burst completed: 5000 events in 346.791988ms
|
|
||||||
Burst completed: 5000 events in 361.72302ms
|
|
||||||
Burst completed: 5000 events in 332.900946ms
|
|
||||||
Burst completed: 5000 events in 335.52954ms
|
|
||||||
Burst completed: 5000 events in 342.175918ms
|
|
||||||
Burst completed: 5000 events in 339.522755ms
|
|
||||||
Burst completed: 5000 events in 334.46846ms
|
|
||||||
Burst completed: 5000 events in 336.071402ms
|
|
||||||
Burst test completed: 0 events in 8.409696337s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.513827505s
|
|
||||||
Combined ops/sec: 1110.43
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 405671 queries in 1m0.004332664s
|
|
||||||
Queries/sec: 6760.70
|
|
||||||
Avg query latency: 1.570056ms
|
|
||||||
P95 query latency: 5.35134ms
|
|
||||||
P99 query latency: 9.169641ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 567760 operations (567760 queries, 0 writes) in 1m0.000235118s
|
|
||||||
Operations/sec: 9462.63
|
|
||||||
Avg latency: 46.433µs
|
|
||||||
Avg query latency: 46.433µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 89.831µs
|
|
||||||
P99 latency: 135.768µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.099682418s
|
|
||||||
Total Events: 11592
|
|
||||||
Events/sec: 2827.54
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 356 MB
|
|
||||||
Avg Latency: 4.203722ms
|
|
||||||
P90 Latency: 3.345671ms
|
|
||||||
P95 Latency: 4.568189ms
|
|
||||||
P99 Latency: 88.030281ms
|
|
||||||
Bottom 10% Avg Latency: 1.124184ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.409696337s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 393 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.513827505s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1110.43
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 363 MB
|
|
||||||
Avg Latency: 79.478µs
|
|
||||||
P90 Latency: 101.042µs
|
|
||||||
P95 Latency: 112.755µs
|
|
||||||
P99 Latency: 136.991µs
|
|
||||||
Bottom 10% Avg Latency: 121.765µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 238d2d2e1ddb3af636472dbf573fa52cbfc81509a9ba2f4a6902efacd5e32bbf
|
|
||||||
- blocked: event already exists: 048d7b07155b3832a76eac0b46bea764cac3597dfbc28b559698d51f915cb6d1
|
|
||||||
- blocked: event already exists: 1ebc80bd3bb172fc38ce786e0717e9c82691cd495f0de9863c892284cbe47ca3
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 2197ff7ffc723d2fb4f7e44aeaf0ed8c2e0e2f3fb3aae29f2e33e0683ddf1a99
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.004332664s
|
|
||||||
Total Events: 405671
|
|
||||||
Events/sec: 6760.70
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 372 MB
|
|
||||||
Avg Latency: 1.570056ms
|
|
||||||
P90 Latency: 4.354101ms
|
|
||||||
P95 Latency: 5.35134ms
|
|
||||||
P99 Latency: 9.169641ms
|
|
||||||
Bottom 10% Avg Latency: 6.228096ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.000235118s
|
|
||||||
Total Events: 567760
|
|
||||||
Events/sec: 9462.63
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 303 MB
|
|
||||||
Avg Latency: 46.433µs
|
|
||||||
P90 Latency: 79.071µs
|
|
||||||
P95 Latency: 89.831µs
|
|
||||||
P99 Latency: 135.768µs
|
|
||||||
Bottom 10% Avg Latency: 102.136µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 01e9943cf5e805283c512b9c26cf69f7e9ff412710d7543a3a52dc93ac7e8a57
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 05bf5bbba1a1fa85b9a5aaca7ff384d8e09a1b2441c01df5780c1bc99e377f85
|
|
||||||
- blocked: event already exists: 0b50149a50e29b084c63f0b0d16a8d280445eb389e53b5c688f654665e9d56f5
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T05:56:47+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_nostr-rs-relay_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763532618524528ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763532618524580ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763532618524706ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763532618524736ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763532618524748ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763532618524776ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763532618524782ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763532618524802ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763532618524809ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763532618930740🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618947610🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618948005🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618948153🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618950675🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618950682🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618956383🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618956435🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618957227🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618969491🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618970468🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618971159🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532618971247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619031025🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619056683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619056939🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619056952🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619066084🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619066142🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619066155⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619066695🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619066714🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619066722⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619075600🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619081811🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619081988🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619084508🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619084568🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619088652🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619088683🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619088782🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619088783🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090006🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090001🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090069🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090084🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090099🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619090832🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619091518🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619092595🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619096499🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619096548🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619096606🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619162379🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619614266🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619615621🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619615626🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619616541🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619618933🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619618974🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619620317🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619620397🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619620471🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619620484🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619621043🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619621631🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619622165🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619622167🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619622439🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619623174🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619623181🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619623220🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619624801🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619625240🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619625269🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619625280⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619630065🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619630165🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619630661🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619630663🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619630821🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619631497🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619640145🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619642792🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619644723🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619644791🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619645300🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619645371🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619645379🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619645401⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619645510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619646269🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619648954🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619649062🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619649394🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619649929🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619650596🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619650999🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619651453🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619652135🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619652189🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619652230🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619652643🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619652686🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619654452🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619656038🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619656545🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619657094🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619658010🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619658015🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619660069🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619661973🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619665795🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619665815🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619668940🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619671219🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619671256🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619675066🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619675407🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619675880🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619676648🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619676831🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619678445🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619678987🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619679007🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619679017⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619680059🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619682110🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619682946🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619686593🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619686642🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619686672🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619688599🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619688980🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619689992🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619691023🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619691071🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619691081⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619691290🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619691789🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619693914🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619698356🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619701647🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619701967🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619702011🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619702023⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619701971🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619702353🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619767837🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619770711🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619771475🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619771496🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619771616🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619771785🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619773121🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619773706🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619774076🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619775012🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619775202🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619775616🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619776224🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619776225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619783510🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619793083🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619793319🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619795252🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619795257🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619797760🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619798203🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619798747🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619798803🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619799361🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619799645🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619799874🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619800049🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619801225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619801611🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619801686🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619803757🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619804436🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619805033🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619805964🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619806089🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619806114🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619806125⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619806587🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619806617🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532619806627⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532619806746🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619806955🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619809241🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619809253🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619812247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619812468🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619812745🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619814622🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619815324🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619815599🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619816082🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619816174🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619816840🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619818752🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619819942🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619820073🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619820832🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619821226🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619821604🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619822845🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619822980🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619823804🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619823916🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619824109🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619826241🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619827137🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619827419🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619827882🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619828527🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619828762🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619829430🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619829777🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619829830🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619829856🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619829867🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619830712🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619831911🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619835536🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619835629🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619839021🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619839121🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619839259🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619841819🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619842315🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619843356🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619843525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619846344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859073🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859232🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859436🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859611🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859674🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532619859797🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11594/50000 (23.2%), errors: 38406
|
|
||||||
Duration: 4.021053985s
|
|
||||||
Events/sec: 2883.32
|
|
||||||
Avg latency: 4.044321ms
|
|
||||||
P90 latency: 3.344231ms
|
|
||||||
P95 latency: 4.602719ms
|
|
||||||
P99 latency: 79.2846ms
|
|
||||||
Bottom 10% Avg latency: 1.103637ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 352.280501ms
|
|
||||||
Burst completed: 5000 events in 344.717192ms
|
|
||||||
Burst completed: 5000 events in 342.785392ms
|
|
||||||
Burst completed: 5000 events in 348.707543ms
|
|
||||||
Burst completed: 5000 events in 365.85074ms
|
|
||||||
Burst completed: 5000 events in 351.601335ms
|
|
||||||
Burst completed: 5000 events in 349.046538ms
|
|
||||||
Burst completed: 5000 events in 345.187947ms
|
|
||||||
Burst completed: 5000 events in 343.795123ms
|
|
||||||
Burst completed: 5000 events in 331.851049ms
|
|
||||||
Burst test completed: 0 events in 8.481561189s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.659489061s
|
|
||||||
Combined ops/sec: 1103.29
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 405016 queries in 1m0.004544583s
|
|
||||||
Queries/sec: 6749.76
|
|
||||||
Avg query latency: 1.573632ms
|
|
||||||
P95 query latency: 5.332888ms
|
|
||||||
P99 query latency: 9.122117ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 566215 operations (566215 queries, 0 writes) in 1m0.001155402s
|
|
||||||
Operations/sec: 9436.73
|
|
||||||
Avg latency: 45.72µs
|
|
||||||
Avg query latency: 45.72µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 88.218µs
|
|
||||||
P99 latency: 131.26µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.021053985s
|
|
||||||
Total Events: 11594
|
|
||||||
Events/sec: 2883.32
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 379 MB
|
|
||||||
Avg Latency: 4.044321ms
|
|
||||||
P90 Latency: 3.344231ms
|
|
||||||
P95 Latency: 4.602719ms
|
|
||||||
P99 Latency: 79.2846ms
|
|
||||||
Bottom 10% Avg Latency: 1.103637ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.481561189s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 259 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.659489061s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1103.29
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 267 MB
|
|
||||||
Avg Latency: 82.3µs
|
|
||||||
P90 Latency: 102.856µs
|
|
||||||
P95 Latency: 114.679µs
|
|
||||||
P99 Latency: 142.963µs
|
|
||||||
Bottom 10% Avg Latency: 130.591µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 238d2d2e1ddb3af636472dbf573fa52cbfc81509a9ba2f4a6902efacd5e32bbf
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 1ebc80bd3bb172fc38ce786e0717e9c82691cd495f0de9863c892284cbe47ca3
|
|
||||||
- blocked: event already exists: 1642d6770a74de7ca45169bc76dab334591bcb2191044da0b18459888164f9fc
|
|
||||||
- blocked: event already exists: 2197ff7ffc723d2fb4f7e44aeaf0ed8c2e0e2f3fb3aae29f2e33e0683ddf1a99
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.004544583s
|
|
||||||
Total Events: 405016
|
|
||||||
Events/sec: 6749.76
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 446 MB
|
|
||||||
Avg Latency: 1.573632ms
|
|
||||||
P90 Latency: 4.427874ms
|
|
||||||
P95 Latency: 5.332888ms
|
|
||||||
P99 Latency: 9.122117ms
|
|
||||||
Bottom 10% Avg Latency: 6.229587ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.001155402s
|
|
||||||
Total Events: 566215
|
|
||||||
Events/sec: 9436.73
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 333 MB
|
|
||||||
Avg Latency: 45.72µs
|
|
||||||
P90 Latency: 78.159µs
|
|
||||||
P95 Latency: 88.218µs
|
|
||||||
P99 Latency: 131.26µs
|
|
||||||
Bottom 10% Avg Latency: 99.957µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 048d7b07155b3832a76eac0b46bea764cac3597dfbc28b559698d51f915cb6d1
|
|
||||||
- blocked: event already exists: 05bf5bbba1a1fa85b9a5aaca7ff384d8e09a1b2441c01df5780c1bc99e377f85
|
|
||||||
- blocked: event already exists: 0e0b4dfd5e4ecfb0d3acb8db48d13833edeac5163fbcba9fb94160b686c07595
|
|
||||||
- blocked: event already exists: 0b50149a50e29b084c63f0b0d16a8d280445eb389e53b5c688f654665e9d56f5
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T06:13:35+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_relayer-basic_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763532215281177ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763532215281256ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763532215281278ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763532215281284ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763532215281295ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763532215281311ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763532215281316ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763532215281327ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763532215281332ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763532215753642🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215771026🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215771047🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215771043🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215773057🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215773950🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215779106🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215779989🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215780044🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215794879🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215794911🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215795258🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215795902🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215864347🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215895247🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215897706🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215897846🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215909272🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215909338🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532215909351⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532215909277🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215909376🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532215909396⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532215921004🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215927644🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215927729🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215932204🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215932223🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215937326🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215937353🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215937533🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215937559🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215937604🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215938283🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215938525🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215938584🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215939171🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215941078🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215942075🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215942140🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215946108🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215946935🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532215947070🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216034256🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216575480🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216575680🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216576613🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216577132🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216579189🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216580190🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216581187🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216581297🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216581843🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216581932🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216582485🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216583310🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216583354🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216583797🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216584179🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216584829🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216584822🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216584849🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216586369🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216586560🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216586587🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216586598⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216592409🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216594068🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216594133🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216594171🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216595199🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216596193🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216604932🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216608011🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216610501🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216610709🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216610735🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216610746⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216611730🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216611905🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216612710🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216612972🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216614620🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216614890🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216616830🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216617705🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216617912🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216618767🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216619811🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216619813🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216620154🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216622289🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216622299🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216622670🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216622759🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216627036🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216627071🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216627681🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216628332🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216628497🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216630956🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216634023🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216636620🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216637097🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216640322🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216640755🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216642971🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216646272🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216646356🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216646716🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216649588🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216649624🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216649707🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216651798🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216651837🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216651846⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216652546🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216652647🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216654682🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216660436🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216660454🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216660818🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216660850🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216660892🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216664192🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216664242🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216664233🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216664284🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216664252⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216664431🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216666902🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216671811🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216671937🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216702320🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216702414🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216705566🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216705636🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216705653⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216736068🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216772632🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216772740🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216772872🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216775232🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216776926🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216778944🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216780479🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216781325🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216781901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216782007🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216781924🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216782662🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216782943🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216792109🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216801957🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216802118🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216805275🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216805608🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216806675🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216806729🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216807256🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216807332🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216807702🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216808008🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216809164🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216809928🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216810178🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216810343🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216810553🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216813468🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216813917🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216815051🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216815580🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216815621🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216815633⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216815855🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216815887🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532216815896⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532216817137🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216817988🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216818038🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216820280🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216820593🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216822434🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216822533🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216823260🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216825570🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216825661🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216825770🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216825766🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216828334🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216828596🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216830967🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216832985🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216834147🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216834169🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216834173🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216834249🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216835001🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216835042🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216835016🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216835898🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216835986🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216840462🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216841175🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216841614🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216842304🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216847871🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216864133🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216905124🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216905300🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216905361🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216905362🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216905440🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216906234🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216907434🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216907471🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216907464🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216908059🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216908080🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216908591🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216908908🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216909192🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216910036🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216910306🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216910950🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216931514🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216931602🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216931779🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216931793🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216932984🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532216933171🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11592/50000 (23.2%), errors: 38408
|
|
||||||
Duration: 4.281033199s
|
|
||||||
Events/sec: 2707.76
|
|
||||||
Avg latency: 4.657987ms
|
|
||||||
P90 latency: 4.233468ms
|
|
||||||
P95 latency: 5.603449ms
|
|
||||||
P99 latency: 68.611381ms
|
|
||||||
Bottom 10% Avg latency: 1.266467ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 351.189041ms
|
|
||||||
Burst completed: 5000 events in 345.793588ms
|
|
||||||
Burst completed: 5000 events in 349.58856ms
|
|
||||||
Burst completed: 5000 events in 347.409606ms
|
|
||||||
Burst completed: 5000 events in 336.805967ms
|
|
||||||
Burst completed: 5000 events in 342.539694ms
|
|
||||||
Burst completed: 5000 events in 333.331965ms
|
|
||||||
Burst completed: 5000 events in 343.768734ms
|
|
||||||
Burst completed: 5000 events in 348.390792ms
|
|
||||||
Burst completed: 5000 events in 349.455321ms
|
|
||||||
Burst test completed: 0 events in 8.454879556s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.626268963s
|
|
||||||
Combined ops/sec: 1104.91
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 406188 queries in 1m0.004608218s
|
|
||||||
Queries/sec: 6769.28
|
|
||||||
Avg query latency: 1.56602ms
|
|
||||||
P95 query latency: 5.365294ms
|
|
||||||
P99 query latency: 9.302026ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 563863 operations (563863 queries, 0 writes) in 1m0.001226916s
|
|
||||||
Operations/sec: 9397.52
|
|
||||||
Avg latency: 46.484µs
|
|
||||||
Avg query latency: 46.484µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 89.861µs
|
|
||||||
P99 latency: 137.252µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.281033199s
|
|
||||||
Total Events: 11592
|
|
||||||
Events/sec: 2707.76
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 344 MB
|
|
||||||
Avg Latency: 4.657987ms
|
|
||||||
P90 Latency: 4.233468ms
|
|
||||||
P95 Latency: 5.603449ms
|
|
||||||
P99 Latency: 68.611381ms
|
|
||||||
Bottom 10% Avg Latency: 1.266467ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.454879556s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 368 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.626268963s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1104.91
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 339 MB
|
|
||||||
Avg Latency: 81.834µs
|
|
||||||
P90 Latency: 101.664µs
|
|
||||||
P95 Latency: 112.123µs
|
|
||||||
P99 Latency: 136.991µs
|
|
||||||
Bottom 10% Avg Latency: 123.871µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 1ebc80bd3bb172fc38ce786e0717e9c82691cd495f0de9863c892284cbe47ca3
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 2197ff7ffc723d2fb4f7e44aeaf0ed8c2e0e2f3fb3aae29f2e33e0683ddf1a99
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.004608218s
|
|
||||||
Total Events: 406188
|
|
||||||
Events/sec: 6769.28
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 466 MB
|
|
||||||
Avg Latency: 1.56602ms
|
|
||||||
P90 Latency: 4.291057ms
|
|
||||||
P95 Latency: 5.365294ms
|
|
||||||
P99 Latency: 9.302026ms
|
|
||||||
Bottom 10% Avg Latency: 6.278431ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.001226916s
|
|
||||||
Total Events: 563863
|
|
||||||
Events/sec: 9397.52
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 347 MB
|
|
||||||
Avg Latency: 46.484µs
|
|
||||||
P90 Latency: 79.592µs
|
|
||||||
P95 Latency: 89.861µs
|
|
||||||
P99 Latency: 137.252µs
|
|
||||||
Bottom 10% Avg Latency: 102.019µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 0f06ba91f371d4f8647a3f9529af3b9a012988eabf9f7c2eb42b39aa86697ea9
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
- blocked: event already exists: 0b50149a50e29b084c63f0b0d16a8d280445eb389e53b5c688f654665e9d56f5
|
|
||||||
- blocked: event already exists: 05bf5bbba1a1fa85b9a5aaca7ff384d8e09a1b2441c01df5780c1bc99e377f85
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T06:06:51+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,422 +0,0 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
|
||||||
Data Directory: /tmp/benchmark_strfry_8
|
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
|
||||||
1763532417029005ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
|
||||||
1763532417029081ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
|
||||||
1763532417029106ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
|
||||||
1763532417029112ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
|
||||||
1763532417029144ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
|
||||||
1763532417029202ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
|
||||||
1763532417029209ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
|
||||||
1763532417029219ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
|
||||||
1763532417029225ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
|
||||||
Loading real-world sample events from embedded data...
|
|
||||||
Loading real-world sample events (11,596 events from 6 months of Nostr)...
|
|
||||||
Loaded 11596 real-world events (already signed, zero crypto overhead)
|
|
||||||
|
|
||||||
Event Statistics:
|
|
||||||
Total events: 11596
|
|
||||||
Average content size: 588 bytes
|
|
||||||
Event kinds found: 25 unique
|
|
||||||
Most common kinds:
|
|
||||||
Kind 1: 7152 events
|
|
||||||
Kind 7: 1973 events
|
|
||||||
Kind 6: 934 events
|
|
||||||
Kind 10002: 337 events
|
|
||||||
Kind 0: 290 events
|
|
||||||
|
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
|
||||||
╚════════════════════════════════════════════════════════╝
|
|
||||||
|
|
||||||
=== Starting Badger benchmark ===
|
|
||||||
RunPeakThroughputTest (Badger)..
|
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
|
||||||
1763532417446740🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417463442🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417463517🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417463528🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417465778🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417465773🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417471681🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417472327🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417473046🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417487367🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417488733🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417489155🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417489204🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417547895🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417576271🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417576642🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417577031🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417584020🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417584080🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532417584092⚠️ failed to process deletion for event 900e73566bb098d7ec1880ec68521ef76e066b933d4d6b71dbe99ee156c4b307: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532417584057🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417584119🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532417584130⚠️ failed to process deletion for event ecd7b942d5a473589b4a3bc34f0b3dadf0c6e0ba9325d7a47604167acc757d5c: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532417593777🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417599107🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417599108🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417601718🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417601761🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417605646🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417606054🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417606057🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607124🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607136🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607268🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607238🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607238🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417607152🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417608114🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417609053🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417609524🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417612855🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417613254🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417613805🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532417677741🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418142727🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418142864🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418144600🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418144630🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418145646🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418146916🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418147551🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418148156🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418148197🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418148912🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418149551🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418149549🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418150165🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418150344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418150653🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418151668🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418151756🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418151768🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418152942🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418153239🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418153258🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418153267⚠️ failed to process deletion for event 63eae8af9f42e2d37f93b1277bcf708c94aeb8935dd83d1e8e80136c4e4f8292: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418158828🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418159056🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418159184🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418160314🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418160324🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418161260🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418169316🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418172059🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418173558🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418174651🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418174692🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418174703⚠️ failed to process deletion for event 2f5e01050c81c0d711e9f391726af47933b5fcfbe497434164069787d201e3b9: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418175319🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418175322🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418175328🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418176201🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418178579🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418178687🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418179266🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418179679🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418179929🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418180514🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418180740🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418181634🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418182020🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418182137🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418182727🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418183912🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418183942🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418186474🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418186791🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418186808🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418186793🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418188620🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418189953🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418192500🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418194606🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418195626🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418199354🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418200303🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418200464🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418203342🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418204634🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418204728🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418205766🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418207111🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418207142🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418207931🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418207969🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418207980⚠️ failed to process deletion for event e56f683d8a3ad6a1d7ed41f50bf2739179ac8f6e1418ff34e5e20903172237ea: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418208766🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418210821🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418211495🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418215604🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418215614🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418216006🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418216035🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418219145🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418220994🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418221037🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418221052⚠️ failed to process deletion for event 4b07094ff22787f584f5ceddc11ae44c66ab513d01d7529e156d6adb75323eca: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418221209🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418222796🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418223147🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418227727🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418233362🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418233725🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418233725🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418233803🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418233816⚠️ failed to process deletion for event 59475e9f41d77977a2b2c0d9acf7c32bad368dafdeab1e8f7be8cf0fe0e00ceb: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418234917🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418234938🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418302772🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418304188🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418304225🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418307646🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418308235🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418309609🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418309963🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418310289🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418312036🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418312787🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418314158🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418315296🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418317296🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418317453🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418326901🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418336363🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418336826🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418337215🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418338156🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418338897🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418341107🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418341261🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418341288🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418341578🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418341805🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418344423🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418344476🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418344490🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418345300🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418345329🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418347344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418349365🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418349398🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418349748🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418349778🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418349790⚠️ failed to process deletion for event bd502ba9dc5c173b3b82708561f35118e2ca580f9c7e5baffceccdd9f6502462: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418351994🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418352043🚨 id not found in database /build/pkg/database/save-event.go:332
|
|
||||||
1763532418352055⚠️ failed to process deletion for event 961a3d9582d896fcd8755ccc634b7846e549131284740f6fec0d635d0bb072af: id not found in database /build/pkg/database/save-event.go:333
|
|
||||||
1763532418354024🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418354037🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418354129🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418355732🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418357513🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418359713🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418360257🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418361239🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418361614🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418362673🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418362796🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418362959🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418363024🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418363609🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418364681🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418366172🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418366978🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418367050🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418367077🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418367056🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418368723🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418369089🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418369211🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418369213🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418369858🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418371869🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418373452🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418373544🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418373609🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375088🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375238🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375309🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375530🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375554🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418375966🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418376137🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418376407🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418377845🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418377890🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418378015🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418378051🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418378088🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418379151🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418379686🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418390200🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418391344🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418391364🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418391484🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418392146🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418392202🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418392283🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418392401🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418393317🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
1763532418393350🚨 id not found in database /build/pkg/database/process-delete.go:43
|
|
||||||
Events saved: 11596/50000 (23.2%), errors: 38404
|
|
||||||
Duration: 4.081350203s
|
|
||||||
Events/sec: 2841.22
|
|
||||||
Avg latency: 4.088506ms
|
|
||||||
P90 latency: 3.424405ms
|
|
||||||
P95 latency: 4.517428ms
|
|
||||||
P99 latency: 75.080835ms
|
|
||||||
Bottom 10% Avg latency: 1.135387ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunBurstPatternTest (Badger)..
|
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
|
||||||
Burst completed: 5000 events in 342.084914ms
|
|
||||||
Burst completed: 5000 events in 368.596807ms
|
|
||||||
Burst completed: 5000 events in 328.015947ms
|
|
||||||
Burst completed: 5000 events in 335.615145ms
|
|
||||||
Burst completed: 5000 events in 336.465114ms
|
|
||||||
Burst completed: 5000 events in 339.72787ms
|
|
||||||
Burst completed: 5000 events in 337.178121ms
|
|
||||||
Burst completed: 5000 events in 337.603762ms
|
|
||||||
Burst completed: 5000 events in 311.194123ms
|
|
||||||
Burst completed: 5000 events in 320.093358ms
|
|
||||||
Burst test completed: 0 events in 8.36134004s, errors: 50000
|
|
||||||
Events/sec: 0.00
|
|
||||||
Wiping database between tests...
|
|
||||||
RunMixedReadWriteTest (Badger)..
|
|
||||||
|
|
||||||
=== Mixed Read/Write Test ===
|
|
||||||
Pre-populating database for read tests...
|
|
||||||
Mixed test completed: 0 writes, 25000 reads in 22.58702292s
|
|
||||||
Combined ops/sec: 1106.83
|
|
||||||
Wiping database between tests...
|
|
||||||
RunQueryTest (Badger)..
|
|
||||||
|
|
||||||
=== Query Test ===
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
|
||||||
Query test completed: 410409 queries in 1m0.005823994s
|
|
||||||
Queries/sec: 6839.49
|
|
||||||
Avg query latency: 1.547004ms
|
|
||||||
P95 query latency: 5.256194ms
|
|
||||||
P99 query latency: 9.085129ms
|
|
||||||
Wiping database between tests...
|
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
|
||||||
|
|
||||||
=== Concurrent Query/Store Test ===
|
|
||||||
Pre-populating database with 5000 events for concurrent query/store test...
|
|
||||||
Concurrent test completed: 568449 operations (568449 queries, 0 writes) in 1m0.000557559s
|
|
||||||
Operations/sec: 9474.06
|
|
||||||
Avg latency: 45.257µs
|
|
||||||
Avg query latency: 45.257µs
|
|
||||||
Avg write latency: 0s
|
|
||||||
P95 latency: 86.775µs
|
|
||||||
P99 latency: 128.615µs
|
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
BENCHMARK REPORT
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
Test: Peak Throughput
|
|
||||||
Duration: 4.081350203s
|
|
||||||
Total Events: 11596
|
|
||||||
Events/sec: 2841.22
|
|
||||||
Success Rate: 23.2%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 322 MB
|
|
||||||
Avg Latency: 4.088506ms
|
|
||||||
P90 Latency: 3.424405ms
|
|
||||||
P95 Latency: 4.517428ms
|
|
||||||
P99 Latency: 75.080835ms
|
|
||||||
Bottom 10% Avg Latency: 1.135387ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Burst Pattern
|
|
||||||
Duration: 8.36134004s
|
|
||||||
Total Events: 0
|
|
||||||
Events/sec: 0.00
|
|
||||||
Success Rate: 0.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 352 MB
|
|
||||||
Avg Latency: 0s
|
|
||||||
P90 Latency: 0s
|
|
||||||
P95 Latency: 0s
|
|
||||||
P99 Latency: 0s
|
|
||||||
Bottom 10% Avg Latency: 0s
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
|
||||||
Duration: 22.58702292s
|
|
||||||
Total Events: 25000
|
|
||||||
Events/sec: 1106.83
|
|
||||||
Success Rate: 50.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 319 MB
|
|
||||||
Avg Latency: 81.227µs
|
|
||||||
P90 Latency: 102.275µs
|
|
||||||
P95 Latency: 113.396µs
|
|
||||||
P99 Latency: 139.054µs
|
|
||||||
Bottom 10% Avg Latency: 125.516µs
|
|
||||||
Errors (25000):
|
|
||||||
- blocked: event already exists: 11aa0b6defe3d58cef2f93c06fb194bc72241f17fb35312594d279f6c8f13d44
|
|
||||||
- blocked: event already exists: 00a5f5f6c7f1c4e6f71ab7df2c056e238ccd9b441e59ddf119d7ab7f1d7510e0
|
|
||||||
- blocked: event already exists: 1ebc80bd3bb172fc38ce786e0717e9c82691cd495f0de9863c892284cbe47ca3
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 1642d6770a74de7ca45169bc76dab334591bcb2191044da0b18459888164f9fc
|
|
||||||
... and 24995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Query Performance
|
|
||||||
Duration: 1m0.005823994s
|
|
||||||
Total Events: 410409
|
|
||||||
Events/sec: 6839.49
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 403 MB
|
|
||||||
Avg Latency: 1.547004ms
|
|
||||||
P90 Latency: 4.258013ms
|
|
||||||
P95 Latency: 5.256194ms
|
|
||||||
P99 Latency: 9.085129ms
|
|
||||||
Bottom 10% Avg Latency: 6.154516ms
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
|
||||||
Duration: 1m0.000557559s
|
|
||||||
Total Events: 568449
|
|
||||||
Events/sec: 9474.06
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Concurrent Workers: 24
|
|
||||||
Memory Used: 403 MB
|
|
||||||
Avg Latency: 45.257µs
|
|
||||||
P90 Latency: 77.187µs
|
|
||||||
P95 Latency: 86.775µs
|
|
||||||
P99 Latency: 128.615µs
|
|
||||||
Bottom 10% Avg Latency: 98.387µs
|
|
||||||
Errors (50000):
|
|
||||||
- blocked: event already exists: 0312061d336fd22dc64b98130663835242e4479c54c7ca88b72c3b3093ef29a2
|
|
||||||
- blocked: event already exists: 06061b630fd0881cbe7ed02114584fea59b9621c2e9479e6e6aa2be561240a90
|
|
||||||
- blocked: event already exists: 0ea6723d131534cf6e2209169a518c4bc598e3acad0618c2ef34df34c867cca1
|
|
||||||
- blocked: event already exists: 0ce484c600cb1c0b33f1e38ddea4b38a47069615d22114a9c621a9164d9b6218
|
|
||||||
- blocked: event already exists: 0f06ba91f371d4f8647a3f9529af3b9a012988eabf9f7c2eb42b39aa86697ea9
|
|
||||||
... and 49995 more errors
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
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-19T06:10:13+00:00
|
|
||||||
BENCHMARK_CONFIG:
|
|
||||||
Events: 50000
|
|
||||||
Workers: 24
|
|
||||||
Duration: 60s
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
================================================================
|
|
||||||
NOSTR RELAY BENCHMARK AGGREGATE REPORT
|
|
||||||
================================================================
|
|
||||||
Generated: 2025-11-20T06:19:54+00:00
|
|
||||||
Benchmark Configuration:
|
|
||||||
Events per test: 50000
|
|
||||||
Concurrent workers: 24
|
|
||||||
Test duration: 60s
|
|
||||||
|
|
||||||
Relays tested: 8
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
SUMMARY BY RELAY
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Relay: next-orly-badger
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 17207.24
|
|
||||||
Events/sec: 6359.22
|
|
||||||
Events/sec: 17207.24
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.240424ms
|
|
||||||
Bottom 10% Avg Latency: 680.755µs
|
|
||||||
Avg Latency: 1.142716ms
|
|
||||||
P95 Latency: 1.987721ms
|
|
||||||
P95 Latency: 1.919402ms
|
|
||||||
P95 Latency: 858.138µs
|
|
||||||
|
|
||||||
Relay: next-orly-dgraph
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 15975.41
|
|
||||||
Events/sec: 6275.40
|
|
||||||
Events/sec: 15975.41
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.379901ms
|
|
||||||
Bottom 10% Avg Latency: 705.38µs
|
|
||||||
Avg Latency: 1.177806ms
|
|
||||||
P95 Latency: 2.307115ms
|
|
||||||
P95 Latency: 2.062351ms
|
|
||||||
P95 Latency: 858.252µs
|
|
||||||
|
|
||||||
Relay: next-orly-neo4j
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 18050.59
|
|
||||||
Events/sec: 6274.46
|
|
||||||
Events/sec: 18050.59
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.142811ms
|
|
||||||
Bottom 10% Avg Latency: 648.4µs
|
|
||||||
Avg Latency: 1.192885ms
|
|
||||||
P95 Latency: 1.69225ms
|
|
||||||
P95 Latency: 1.98103ms
|
|
||||||
P95 Latency: 864.535µs
|
|
||||||
|
|
||||||
Relay: khatru-sqlite
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 16911.01
|
|
||||||
Events/sec: 6346.70
|
|
||||||
Events/sec: 16911.01
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.278879ms
|
|
||||||
Bottom 10% Avg Latency: 694.3µs
|
|
||||||
Avg Latency: 1.145501ms
|
|
||||||
P95 Latency: 2.058912ms
|
|
||||||
P95 Latency: 1.860934ms
|
|
||||||
P95 Latency: 857.964µs
|
|
||||||
|
|
||||||
Relay: khatru-badger
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 18095.48
|
|
||||||
Events/sec: 6260.92
|
|
||||||
Events/sec: 18095.48
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.143282ms
|
|
||||||
Bottom 10% Avg Latency: 651.813µs
|
|
||||||
Avg Latency: 1.203274ms
|
|
||||||
P95 Latency: 1.721751ms
|
|
||||||
P95 Latency: 2.200764ms
|
|
||||||
P95 Latency: 865.67µs
|
|
||||||
|
|
||||||
Relay: relayer-basic
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 17973.91
|
|
||||||
Events/sec: 6364.14
|
|
||||||
Events/sec: 17973.91
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.159149ms
|
|
||||||
Bottom 10% Avg Latency: 666.22µs
|
|
||||||
Avg Latency: 1.075436ms
|
|
||||||
P95 Latency: 1.737633ms
|
|
||||||
P95 Latency: 1.805733ms
|
|
||||||
P95 Latency: 865.831µs
|
|
||||||
|
|
||||||
Relay: strfry
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 17906.42
|
|
||||||
Events/sec: 6245.55
|
|
||||||
Events/sec: 17906.42
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.165583ms
|
|
||||||
Bottom 10% Avg Latency: 663.03µs
|
|
||||||
Avg Latency: 1.143689ms
|
|
||||||
P95 Latency: 1.781377ms
|
|
||||||
P95 Latency: 2.088623ms
|
|
||||||
P95 Latency: 852.326µs
|
|
||||||
|
|
||||||
Relay: nostr-rs-relay
|
|
||||||
----------------------------------------
|
|
||||||
Status: COMPLETED
|
|
||||||
Events/sec: 18036.49
|
|
||||||
Events/sec: 6278.12
|
|
||||||
Events/sec: 18036.49
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Success Rate: 100.0%
|
|
||||||
Avg Latency: 1.14847ms
|
|
||||||
Bottom 10% Avg Latency: 653.417µs
|
|
||||||
Avg Latency: 1.18248ms
|
|
||||||
P95 Latency: 1.723577ms
|
|
||||||
P95 Latency: 2.000325ms
|
|
||||||
P95 Latency: 849.41µs
|
|
||||||
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
DETAILED RESULTS
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Individual relay reports are available in:
|
|
||||||
- /reports/run_20251120_055257/khatru-badger_results.txt
|
|
||||||
- /reports/run_20251120_055257/khatru-sqlite_results.txt
|
|
||||||
- /reports/run_20251120_055257/next-orly-badger_results.txt
|
|
||||||
- /reports/run_20251120_055257/next-orly-dgraph_results.txt
|
|
||||||
- /reports/run_20251120_055257/next-orly-neo4j_results.txt
|
|
||||||
- /reports/run_20251120_055257/nostr-rs-relay_results.txt
|
|
||||||
- /reports/run_20251120_055257/relayer-basic_results.txt
|
|
||||||
- /reports/run_20251120_055257/strfry_results.txt
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
BENCHMARK COMPARISON TABLE
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Relay Status Peak Tput/s Avg Latency Success Rate
|
|
||||||
---- ------ ----------- ----------- ------------
|
|
||||||
next-orly-badger OK 17207.24 1.240424ms 100.0%
|
|
||||||
next-orly-dgraph OK 15975.41 1.379901ms 100.0%
|
|
||||||
next-orly-neo4j OK 18050.59 1.142811ms 100.0%
|
|
||||||
khatru-sqlite OK 16911.01 1.278879ms 100.0%
|
|
||||||
khatru-badger OK 18095.48 1.143282ms 100.0%
|
|
||||||
relayer-basic OK 17973.91 1.159149ms 100.0%
|
|
||||||
strfry OK 17906.42 1.165583ms 100.0%
|
|
||||||
nostr-rs-relay OK 18036.49 1.14847ms 100.0%
|
|
||||||
|
|
||||||
================================================================
|
|
||||||
End of Report
|
|
||||||
================================================================
|
|
||||||
176
cmd/benchmark/reports/run_20251120_152640/aggregate_report.txt
Normal file
176
cmd/benchmark/reports/run_20251120_152640/aggregate_report.txt
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
================================================================
|
||||||
|
NOSTR RELAY BENCHMARK AGGREGATE REPORT
|
||||||
|
================================================================
|
||||||
|
Generated: 2025-11-20T15:53:41+00:00
|
||||||
|
Benchmark Configuration:
|
||||||
|
Events per test: 50000
|
||||||
|
Concurrent workers: 24
|
||||||
|
Test duration: 60s
|
||||||
|
|
||||||
|
Relays tested: 8
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
SUMMARY BY RELAY
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Relay: next-orly-badger
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 17836.33
|
||||||
|
Events/sec: 6340.29
|
||||||
|
Events/sec: 17836.33
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.176626ms
|
||||||
|
Bottom 10% Avg Latency: 659.571µs
|
||||||
|
Avg Latency: 1.150109ms
|
||||||
|
P95 Latency: 1.79182ms
|
||||||
|
P95 Latency: 1.87572ms
|
||||||
|
P95 Latency: 870.11µs
|
||||||
|
|
||||||
|
Relay: next-orly-dgraph
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 16687.23
|
||||||
|
Events/sec: 6230.59
|
||||||
|
Events/sec: 16687.23
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.299973ms
|
||||||
|
Bottom 10% Avg Latency: 703.285µs
|
||||||
|
Avg Latency: 1.216351ms
|
||||||
|
P95 Latency: 2.203343ms
|
||||||
|
P95 Latency: 2.205777ms
|
||||||
|
P95 Latency: 869.669µs
|
||||||
|
|
||||||
|
Relay: next-orly-neo4j
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 17497.93
|
||||||
|
Events/sec: 6254.20
|
||||||
|
Events/sec: 17497.93
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.220061ms
|
||||||
|
Bottom 10% Avg Latency: 689.107µs
|
||||||
|
Avg Latency: 1.207729ms
|
||||||
|
P95 Latency: 1.873592ms
|
||||||
|
P95 Latency: 2.026464ms
|
||||||
|
P95 Latency: 860.711µs
|
||||||
|
|
||||||
|
Relay: khatru-sqlite
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15692.37
|
||||||
|
Events/sec: 6031.64
|
||||||
|
Events/sec: 15692.37
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.434878ms
|
||||||
|
Bottom 10% Avg Latency: 773.12µs
|
||||||
|
Avg Latency: 1.438112ms
|
||||||
|
P95 Latency: 2.364988ms
|
||||||
|
P95 Latency: 2.530373ms
|
||||||
|
P95 Latency: 869.767µs
|
||||||
|
|
||||||
|
Relay: khatru-badger
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15459.86
|
||||||
|
Events/sec: 6208.94
|
||||||
|
Events/sec: 15459.86
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.468719ms
|
||||||
|
Bottom 10% Avg Latency: 802.399µs
|
||||||
|
Avg Latency: 1.250479ms
|
||||||
|
P95 Latency: 2.396216ms
|
||||||
|
P95 Latency: 2.142422ms
|
||||||
|
P95 Latency: 869.166µs
|
||||||
|
|
||||||
|
Relay: relayer-basic
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15191.51
|
||||||
|
Events/sec: 6144.49
|
||||||
|
Events/sec: 15191.51
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.494499ms
|
||||||
|
Bottom 10% Avg Latency: 790.923µs
|
||||||
|
Avg Latency: 1.322915ms
|
||||||
|
P95 Latency: 2.461731ms
|
||||||
|
P95 Latency: 2.255818ms
|
||||||
|
P95 Latency: 888.112µs
|
||||||
|
|
||||||
|
Relay: strfry
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 16583.98
|
||||||
|
Events/sec: 5979.92
|
||||||
|
Events/sec: 16583.98
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.325163ms
|
||||||
|
Bottom 10% Avg Latency: 732.389µs
|
||||||
|
Avg Latency: 1.467778ms
|
||||||
|
P95 Latency: 2.114188ms
|
||||||
|
P95 Latency: 2.793392ms
|
||||||
|
P95 Latency: 878.634µs
|
||||||
|
|
||||||
|
Relay: nostr-rs-relay
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15250.43
|
||||||
|
Events/sec: 6286.54
|
||||||
|
Events/sec: 15250.43
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.477342ms
|
||||||
|
Bottom 10% Avg Latency: 760.393µs
|
||||||
|
Avg Latency: 1.167307ms
|
||||||
|
P95 Latency: 2.527756ms
|
||||||
|
P95 Latency: 2.003086ms
|
||||||
|
P95 Latency: 868.365µs
|
||||||
|
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
DETAILED RESULTS
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Individual relay reports are available in:
|
||||||
|
- /reports/run_20251120_152640/khatru-badger_results.txt
|
||||||
|
- /reports/run_20251120_152640/khatru-sqlite_results.txt
|
||||||
|
- /reports/run_20251120_152640/next-orly-badger_results.txt
|
||||||
|
- /reports/run_20251120_152640/next-orly-dgraph_results.txt
|
||||||
|
- /reports/run_20251120_152640/next-orly-neo4j_results.txt
|
||||||
|
- /reports/run_20251120_152640/nostr-rs-relay_results.txt
|
||||||
|
- /reports/run_20251120_152640/relayer-basic_results.txt
|
||||||
|
- /reports/run_20251120_152640/strfry_results.txt
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
BENCHMARK COMPARISON TABLE
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Relay Status Peak Tput/s Avg Latency Success Rate
|
||||||
|
---- ------ ----------- ----------- ------------
|
||||||
|
next-orly-badger OK 17836.33 1.176626ms 100.0%
|
||||||
|
next-orly-dgraph OK 16687.23 1.299973ms 100.0%
|
||||||
|
next-orly-neo4j OK 17497.93 1.220061ms 100.0%
|
||||||
|
khatru-sqlite OK 15692.37 1.434878ms 100.0%
|
||||||
|
khatru-badger OK 15459.86 1.468719ms 100.0%
|
||||||
|
relayer-basic OK 15191.51 1.494499ms 100.0%
|
||||||
|
strfry OK 16583.98 1.325163ms 100.0%
|
||||||
|
nostr-rs-relay OK 15250.43 1.477342ms 100.0%
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
End of Report
|
||||||
|
================================================================
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_khatru-badger_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763653210711898ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763653210711967ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763653210712038ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763653210712063ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763653210712074ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763653210712096ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763653210712103ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763653210712120ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763653210712127ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 15:40:10 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 15:40:10 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.234182899s
|
||||||
|
Events/sec: 15459.86
|
||||||
|
Avg latency: 1.468719ms
|
||||||
|
P90 latency: 2.038084ms
|
||||||
|
P95 latency: 2.396216ms
|
||||||
|
P99 latency: 3.603968ms
|
||||||
|
Bottom 10% Avg latency: 802.399µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 297.444884ms
|
||||||
|
Burst completed: 5000 events in 304.488265ms
|
||||||
|
Burst completed: 5000 events in 279.56963ms
|
||||||
|
Burst completed: 5000 events in 292.82573ms
|
||||||
|
Burst completed: 5000 events in 272.991435ms
|
||||||
|
Burst completed: 5000 events in 326.534775ms
|
||||||
|
Burst completed: 5000 events in 384.727815ms
|
||||||
|
Burst completed: 5000 events in 311.186457ms
|
||||||
|
Burst completed: 5000 events in 290.311066ms
|
||||||
|
Burst completed: 5000 events in 285.474791ms
|
||||||
|
Burst test completed: 50000 events in 8.052899517s, errors: 0
|
||||||
|
Events/sec: 6208.94
|
||||||
|
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.439450917s
|
||||||
|
Combined ops/sec: 2045.87
|
||||||
|
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: 408824 queries in 1m0.004827316s
|
||||||
|
Queries/sec: 6813.19
|
||||||
|
Avg query latency: 1.638338ms
|
||||||
|
P95 query latency: 6.383173ms
|
||||||
|
P99 query latency: 10.185929ms
|
||||||
|
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: 320420 operations (270420 queries, 50000 writes) in 1m0.003847155s
|
||||||
|
Operations/sec: 5339.99
|
||||||
|
Avg latency: 1.440536ms
|
||||||
|
Avg query latency: 1.415027ms
|
||||||
|
Avg write latency: 1.578501ms
|
||||||
|
P95 latency: 3.603977ms
|
||||||
|
P99 latency: 6.070557ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.234182899s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15459.86
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 123 MB
|
||||||
|
Avg Latency: 1.468719ms
|
||||||
|
P90 Latency: 2.038084ms
|
||||||
|
P95 Latency: 2.396216ms
|
||||||
|
P99 Latency: 3.603968ms
|
||||||
|
Bottom 10% Avg Latency: 802.399µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.052899517s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6208.94
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 205 MB
|
||||||
|
Avg Latency: 1.250479ms
|
||||||
|
P90 Latency: 1.830558ms
|
||||||
|
P95 Latency: 2.142422ms
|
||||||
|
P99 Latency: 3.076824ms
|
||||||
|
Bottom 10% Avg Latency: 472.17µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.439450917s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2045.87
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 185 MB
|
||||||
|
Avg Latency: 370.175µs
|
||||||
|
P90 Latency: 782.31µs
|
||||||
|
P95 Latency: 869.166µs
|
||||||
|
P99 Latency: 1.071331ms
|
||||||
|
Bottom 10% Avg Latency: 972.715µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004827316s
|
||||||
|
Total Events: 408824
|
||||||
|
Events/sec: 6813.19
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 141 MB
|
||||||
|
Avg Latency: 1.638338ms
|
||||||
|
P90 Latency: 4.846916ms
|
||||||
|
P95 Latency: 6.383173ms
|
||||||
|
P99 Latency: 10.185929ms
|
||||||
|
Bottom 10% Avg Latency: 7.156294ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003847155s
|
||||||
|
Total Events: 320420
|
||||||
|
Events/sec: 5339.99
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 161 MB
|
||||||
|
Avg Latency: 1.440536ms
|
||||||
|
P90 Latency: 2.837567ms
|
||||||
|
P95 Latency: 3.603977ms
|
||||||
|
P99 Latency: 6.070557ms
|
||||||
|
Bottom 10% Avg Latency: 4.284959ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T15:43:28+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_khatru-sqlite_8
|
Data Directory: /tmp/benchmark_khatru-sqlite_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763618583847338ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763653007553371ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763618583847420ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763653007553443ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763618583847443ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763653007553473ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763618583847449ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763653007553480ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763618583847499ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763653007553488ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763618583847582ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763653007553504ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763618583847590ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763653007553510ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763618583847603ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763653007553522ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763618583847609ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763653007553530ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 06:03:03 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 15:36:47 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 06:03:03 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 15:36:47 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.956654549s
|
Duration: 3.186261331s
|
||||||
Events/sec: 16911.01
|
Events/sec: 15692.37
|
||||||
Avg latency: 1.278879ms
|
Avg latency: 1.434878ms
|
||||||
P90 latency: 1.759962ms
|
P90 latency: 1.984672ms
|
||||||
P95 latency: 2.058912ms
|
P95 latency: 2.364988ms
|
||||||
P99 latency: 2.984324ms
|
P99 latency: 3.569955ms
|
||||||
Bottom 10% Avg latency: 694.3µs
|
Bottom 10% Avg latency: 773.12µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 285.307897ms
|
Burst completed: 5000 events in 344.43488ms
|
||||||
Burst completed: 5000 events in 302.347653ms
|
Burst completed: 5000 events in 426.471328ms
|
||||||
Burst completed: 5000 events in 275.699401ms
|
Burst completed: 5000 events in 310.728105ms
|
||||||
Burst completed: 5000 events in 287.891414ms
|
Burst completed: 5000 events in 315.740557ms
|
||||||
Burst completed: 5000 events in 277.399852ms
|
Burst completed: 5000 events in 293.680822ms
|
||||||
Burst completed: 5000 events in 322.718229ms
|
Burst completed: 5000 events in 343.519782ms
|
||||||
Burst completed: 5000 events in 293.501002ms
|
Burst completed: 5000 events in 375.877865ms
|
||||||
Burst completed: 5000 events in 278.081935ms
|
Burst completed: 5000 events in 294.27327ms
|
||||||
Burst completed: 5000 events in 278.0892ms
|
Burst completed: 5000 events in 302.082884ms
|
||||||
Burst completed: 5000 events in 270.126334ms
|
Burst completed: 5000 events in 275.303333ms
|
||||||
Burst test completed: 50000 events in 7.878108141s, errors: 0
|
Burst test completed: 50000 events in 8.289618326s, errors: 0
|
||||||
Events/sec: 6346.70
|
Events/sec: 6031.64
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.39267216s
|
Mixed test completed: 25000 writes, 25000 reads in 24.589006764s
|
||||||
Combined ops/sec: 2049.80
|
Combined ops/sec: 2033.43
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 395438 queries in 1m0.004115415s
|
Query test completed: 386321 queries in 1m0.004857306s
|
||||||
Queries/sec: 6590.18
|
Queries/sec: 6438.16
|
||||||
Avg query latency: 1.693836ms
|
Avg query latency: 1.735172ms
|
||||||
P95 query latency: 6.903441ms
|
P95 query latency: 7.105431ms
|
||||||
P99 query latency: 10.799184ms
|
P99 query latency: 11.143036ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 328042 operations (278042 queries, 50000 writes) in 1m0.002877808s
|
Concurrent test completed: 307546 operations (257546 queries, 50000 writes) in 1m0.004391663s
|
||||||
Operations/sec: 5467.10
|
Operations/sec: 5125.39
|
||||||
Avg latency: 1.365831ms
|
Avg latency: 1.529592ms
|
||||||
Avg query latency: 1.362176ms
|
Avg query latency: 1.500743ms
|
||||||
Avg write latency: 1.386154ms
|
Avg write latency: 1.678192ms
|
||||||
P95 latency: 3.409256ms
|
P95 latency: 3.924759ms
|
||||||
P99 latency: 5.369811ms
|
P99 latency: 6.521318ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.956654549s
|
Duration: 3.186261331s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 16911.01
|
Events/sec: 15692.37
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 102 MB
|
Memory Used: 205 MB
|
||||||
Avg Latency: 1.278879ms
|
Avg Latency: 1.434878ms
|
||||||
P90 Latency: 1.759962ms
|
P90 Latency: 1.984672ms
|
||||||
P95 Latency: 2.058912ms
|
P95 Latency: 2.364988ms
|
||||||
P99 Latency: 2.984324ms
|
P99 Latency: 3.569955ms
|
||||||
Bottom 10% Avg Latency: 694.3µs
|
Bottom 10% Avg Latency: 773.12µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.878108141s
|
Duration: 8.289618326s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6346.70
|
Events/sec: 6031.64
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 256 MB
|
Memory Used: 205 MB
|
||||||
Avg Latency: 1.145501ms
|
Avg Latency: 1.438112ms
|
||||||
P90 Latency: 1.61688ms
|
P90 Latency: 2.076818ms
|
||||||
P95 Latency: 1.860934ms
|
P95 Latency: 2.530373ms
|
||||||
P99 Latency: 2.617195ms
|
P99 Latency: 4.989991ms
|
||||||
Bottom 10% Avg Latency: 440.724µs
|
Bottom 10% Avg Latency: 568.599µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.39267216s
|
Duration: 24.589006764s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2049.80
|
Events/sec: 2033.43
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 177 MB
|
Memory Used: 200 MB
|
||||||
Avg Latency: 366.696µs
|
Avg Latency: 375.193µs
|
||||||
P90 Latency: 772.371µs
|
P90 Latency: 783.333µs
|
||||||
P95 Latency: 857.964µs
|
P95 Latency: 869.767µs
|
||||||
P99 Latency: 1.047576ms
|
P99 Latency: 1.066383ms
|
||||||
Bottom 10% Avg Latency: 980.159µs
|
Bottom 10% Avg Latency: 1.013439ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.004115415s
|
Duration: 1m0.004857306s
|
||||||
Total Events: 395438
|
Total Events: 386321
|
||||||
Events/sec: 6590.18
|
Events/sec: 6438.16
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 124 MB
|
Memory Used: 127 MB
|
||||||
Avg Latency: 1.693836ms
|
Avg Latency: 1.735172ms
|
||||||
P90 Latency: 5.169489ms
|
P90 Latency: 5.2786ms
|
||||||
P95 Latency: 6.903441ms
|
P95 Latency: 7.105431ms
|
||||||
P99 Latency: 10.799184ms
|
P99 Latency: 11.143036ms
|
||||||
Bottom 10% Avg Latency: 7.636787ms
|
Bottom 10% Avg Latency: 7.866786ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.002877808s
|
Duration: 1m0.004391663s
|
||||||
Total Events: 328042
|
Total Events: 307546
|
||||||
Events/sec: 5467.10
|
Events/sec: 5125.39
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 117 MB
|
Memory Used: 99 MB
|
||||||
Avg Latency: 1.365831ms
|
Avg Latency: 1.529592ms
|
||||||
P90 Latency: 2.746193ms
|
P90 Latency: 3.079278ms
|
||||||
P95 Latency: 3.409256ms
|
P95 Latency: 3.924759ms
|
||||||
P99 Latency: 5.369811ms
|
P99 Latency: 6.521318ms
|
||||||
Bottom 10% Avg Latency: 3.859931ms
|
Bottom 10% Avg Latency: 4.582225ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_khatru-sqlite_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_khatru-sqlite_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_khatru-sqlite_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: khatru-sqlite
|
RELAY_NAME: khatru-sqlite
|
||||||
RELAY_URL: ws://khatru-sqlite:3334
|
RELAY_URL: ws://khatru-sqlite:3334
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:06:21+00:00
|
TEST_TIMESTAMP: 2025-11-20T15:40:05+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_next-orly-badger_8
|
Data Directory: /tmp/benchmark_next-orly-badger_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763617977092863ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763652400623108ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763617977092943ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763652400623175ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763617977092970ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763652400623195ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763617977092977ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763652400623201ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763617977092985ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763652400623212ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763617977093001ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763652400623230ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763617977093007ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763652400623235ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763617977093019ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763652400623247ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763617977093026ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763652400623253ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,33 +19,33 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 05:52:57 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
|
2025/11/20 15:26:40 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
|
||||||
2025/11/20 05:52:57 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 15:26:40 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 05:52:57 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 15:26:40 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.905753281s
|
Duration: 2.803267086s
|
||||||
Events/sec: 17207.24
|
Events/sec: 17836.33
|
||||||
Avg latency: 1.240424ms
|
Avg latency: 1.176626ms
|
||||||
P90 latency: 1.678725ms
|
P90 latency: 1.565758ms
|
||||||
P95 latency: 1.987721ms
|
P95 latency: 1.79182ms
|
||||||
P99 latency: 2.999992ms
|
P99 latency: 2.567671ms
|
||||||
Bottom 10% Avg latency: 680.755µs
|
Bottom 10% Avg latency: 659.571µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 284.828765ms
|
Burst completed: 5000 events in 273.688446ms
|
||||||
Burst completed: 5000 events in 302.028061ms
|
Burst completed: 5000 events in 302.646243ms
|
||||||
Burst completed: 5000 events in 270.908207ms
|
Burst completed: 5000 events in 288.036597ms
|
||||||
Burst completed: 5000 events in 284.981546ms
|
Burst completed: 5000 events in 307.50298ms
|
||||||
Burst completed: 5000 events in 268.367857ms
|
Burst completed: 5000 events in 274.641308ms
|
||||||
Burst completed: 5000 events in 339.898993ms
|
Burst completed: 5000 events in 333.250889ms
|
||||||
Burst completed: 5000 events in 284.918308ms
|
Burst completed: 5000 events in 290.803893ms
|
||||||
Burst completed: 5000 events in 268.931678ms
|
Burst completed: 5000 events in 266.599814ms
|
||||||
Burst completed: 5000 events in 275.363017ms
|
Burst completed: 5000 events in 274.663293ms
|
||||||
Burst completed: 5000 events in 276.370915ms
|
Burst completed: 5000 events in 268.549794ms
|
||||||
Burst test completed: 50000 events in 7.862602959s, errors: 0
|
Burst test completed: 50000 events in 7.886078444s, errors: 0
|
||||||
Events/sec: 6359.22
|
Events/sec: 6340.29
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -63,8 +63,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.450909635s
|
Mixed test completed: 25000 writes, 25000 reads in 24.493227686s
|
||||||
Combined ops/sec: 2044.91
|
Combined ops/sec: 2041.38
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -76,11 +76,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 421640 queries in 1m0.005098014s
|
Query test completed: 413626 queries in 1m0.007599287s
|
||||||
Queries/sec: 7026.74
|
Queries/sec: 6892.89
|
||||||
Avg query latency: 1.569059ms
|
Avg query latency: 1.605375ms
|
||||||
P95 query latency: 5.982148ms
|
P95 query latency: 6.217976ms
|
||||||
P99 query latency: 9.486046ms
|
P99 query latency: 9.897364ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -98,13 +98,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 325881 operations (275881 queries, 50000 writes) in 1m0.002090641s
|
Concurrent test completed: 323564 operations (273564 queries, 50000 writes) in 1m0.003158101s
|
||||||
Operations/sec: 5431.16
|
Operations/sec: 5392.45
|
||||||
Avg latency: 1.405044ms
|
Avg latency: 1.423293ms
|
||||||
Avg query latency: 1.37991ms
|
Avg query latency: 1.394356ms
|
||||||
Avg write latency: 1.543729ms
|
Avg write latency: 1.581619ms
|
||||||
P95 latency: 3.485813ms
|
P95 latency: 3.549982ms
|
||||||
P99 latency: 5.416742ms
|
P99 latency: 5.600343ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -114,73 +114,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.905753281s
|
Duration: 2.803267086s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 17207.24
|
Events/sec: 17836.33
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 163 MB
|
Memory Used: 170 MB
|
||||||
Avg Latency: 1.240424ms
|
Avg Latency: 1.176626ms
|
||||||
P90 Latency: 1.678725ms
|
P90 Latency: 1.565758ms
|
||||||
P95 Latency: 1.987721ms
|
P95 Latency: 1.79182ms
|
||||||
P99 Latency: 2.999992ms
|
P99 Latency: 2.567671ms
|
||||||
Bottom 10% Avg Latency: 680.755µs
|
Bottom 10% Avg Latency: 659.571µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.862602959s
|
Duration: 7.886078444s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6359.22
|
Events/sec: 6340.29
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 190 MB
|
Memory Used: 209 MB
|
||||||
Avg Latency: 1.142716ms
|
Avg Latency: 1.150109ms
|
||||||
P90 Latency: 1.637518ms
|
P90 Latency: 1.62389ms
|
||||||
P95 Latency: 1.919402ms
|
P95 Latency: 1.87572ms
|
||||||
P99 Latency: 2.878332ms
|
P99 Latency: 2.697118ms
|
||||||
Bottom 10% Avg Latency: 474.478µs
|
Bottom 10% Avg Latency: 460.59µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.450909635s
|
Duration: 24.493227686s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2044.91
|
Events/sec: 2041.38
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 144 MB
|
Memory Used: 214 MB
|
||||||
Avg Latency: 369.153µs
|
Avg Latency: 373.118µs
|
||||||
P90 Latency: 774.06µs
|
P90 Latency: 783.686µs
|
||||||
P95 Latency: 858.138µs
|
P95 Latency: 870.11µs
|
||||||
P99 Latency: 1.053249ms
|
P99 Latency: 1.06392ms
|
||||||
Bottom 10% Avg Latency: 986.534µs
|
Bottom 10% Avg Latency: 989.173µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.005098014s
|
Duration: 1m0.007599287s
|
||||||
Total Events: 421640
|
Total Events: 413626
|
||||||
Events/sec: 7026.74
|
Events/sec: 6892.89
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 93 MB
|
Memory Used: 101 MB
|
||||||
Avg Latency: 1.569059ms
|
Avg Latency: 1.605375ms
|
||||||
P90 Latency: 4.620816ms
|
P90 Latency: 4.744413ms
|
||||||
P95 Latency: 5.982148ms
|
P95 Latency: 6.217976ms
|
||||||
P99 Latency: 9.486046ms
|
P99 Latency: 9.897364ms
|
||||||
Bottom 10% Avg Latency: 6.685482ms
|
Bottom 10% Avg Latency: 6.953348ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.002090641s
|
Duration: 1m0.003158101s
|
||||||
Total Events: 325881
|
Total Events: 323564
|
||||||
Events/sec: 5431.16
|
Events/sec: 5392.45
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 111 MB
|
Memory Used: 106 MB
|
||||||
Avg Latency: 1.405044ms
|
Avg Latency: 1.423293ms
|
||||||
P90 Latency: 2.782888ms
|
P90 Latency: 2.81525ms
|
||||||
P95 Latency: 3.485813ms
|
P95 Latency: 3.549982ms
|
||||||
P99 Latency: 5.416742ms
|
P99 Latency: 5.600343ms
|
||||||
Bottom 10% Avg Latency: 3.929706ms
|
Bottom 10% Avg Latency: 4.011381ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_next-orly-badger_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_next-orly-badger_8/benchmark_report.txt
|
||||||
@@ -188,7 +188,7 @@ AsciiDoc report saved to: /tmp/benchmark_next-orly-badger_8/benchmark_report.ado
|
|||||||
|
|
||||||
RELAY_NAME: next-orly-badger
|
RELAY_NAME: next-orly-badger
|
||||||
RELAY_URL: ws://next-orly-badger:8080
|
RELAY_URL: ws://next-orly-badger:8080
|
||||||
TEST_TIMESTAMP: 2025-11-20T05:56:14+00:00
|
TEST_TIMESTAMP: 2025-11-20T15:29:57+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-dgraph_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763652602763705ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763652602763773ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763652602763796ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763652602763801ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763652602763811ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763652602763824ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763652602763828ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763652602763841ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763652602763847ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 15:30:02 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 15:30:02 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 2.996302267s
|
||||||
|
Events/sec: 16687.23
|
||||||
|
Avg latency: 1.299973ms
|
||||||
|
P90 latency: 1.872602ms
|
||||||
|
P95 latency: 2.203343ms
|
||||||
|
P99 latency: 3.221304ms
|
||||||
|
Bottom 10% Avg latency: 703.285µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 279.514933ms
|
||||||
|
Burst completed: 5000 events in 333.416463ms
|
||||||
|
Burst completed: 5000 events in 377.803965ms
|
||||||
|
Burst completed: 5000 events in 313.958626ms
|
||||||
|
Burst completed: 5000 events in 288.237124ms
|
||||||
|
Burst completed: 5000 events in 336.526138ms
|
||||||
|
Burst completed: 5000 events in 278.656719ms
|
||||||
|
Burst completed: 5000 events in 270.704289ms
|
||||||
|
Burst completed: 5000 events in 268.660351ms
|
||||||
|
Burst completed: 5000 events in 270.785192ms
|
||||||
|
Burst test completed: 50000 events in 8.024923997s, errors: 0
|
||||||
|
Events/sec: 6230.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.485015769s
|
||||||
|
Combined ops/sec: 2042.07
|
||||||
|
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: 414358 queries in 1m0.005939033s
|
||||||
|
Queries/sec: 6905.28
|
||||||
|
Avg query latency: 1.609497ms
|
||||||
|
P95 query latency: 6.244748ms
|
||||||
|
P99 query latency: 9.843682ms
|
||||||
|
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: 324836 operations (274836 queries, 50000 writes) in 1m0.003111101s
|
||||||
|
Operations/sec: 5413.65
|
||||||
|
Avg latency: 1.384161ms
|
||||||
|
Avg query latency: 1.372926ms
|
||||||
|
Avg write latency: 1.445917ms
|
||||||
|
P95 latency: 3.428577ms
|
||||||
|
P99 latency: 5.394055ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 2.996302267s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 16687.23
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 144 MB
|
||||||
|
Avg Latency: 1.299973ms
|
||||||
|
P90 Latency: 1.872602ms
|
||||||
|
P95 Latency: 2.203343ms
|
||||||
|
P99 Latency: 3.221304ms
|
||||||
|
Bottom 10% Avg Latency: 703.285µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.024923997s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6230.59
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 205 MB
|
||||||
|
Avg Latency: 1.216351ms
|
||||||
|
P90 Latency: 1.87152ms
|
||||||
|
P95 Latency: 2.205777ms
|
||||||
|
P99 Latency: 3.125661ms
|
||||||
|
Bottom 10% Avg Latency: 457.327µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.485015769s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2042.07
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 173 MB
|
||||||
|
Avg Latency: 374.953µs
|
||||||
|
P90 Latency: 783.735µs
|
||||||
|
P95 Latency: 869.669µs
|
||||||
|
P99 Latency: 1.048389ms
|
||||||
|
Bottom 10% Avg Latency: 1.004367ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.005939033s
|
||||||
|
Total Events: 414358
|
||||||
|
Events/sec: 6905.28
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 123 MB
|
||||||
|
Avg Latency: 1.609497ms
|
||||||
|
P90 Latency: 4.777632ms
|
||||||
|
P95 Latency: 6.244748ms
|
||||||
|
P99 Latency: 9.843682ms
|
||||||
|
Bottom 10% Avg Latency: 6.949572ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003111101s
|
||||||
|
Total Events: 324836
|
||||||
|
Events/sec: 5413.65
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 153 MB
|
||||||
|
Avg Latency: 1.384161ms
|
||||||
|
P90 Latency: 2.768438ms
|
||||||
|
P95 Latency: 3.428577ms
|
||||||
|
P99 Latency: 5.394055ms
|
||||||
|
Bottom 10% Avg Latency: 3.893148ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T15:33:20+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_next-orly-neo4j_8
|
Data Directory: /tmp/benchmark_next-orly-neo4j_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763618381699297ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763652805203358ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763618381699352ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763652805203420ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763618381699377ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763652805203442ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763618381699382ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763652805203447ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763618381699391ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763652805203457ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763618381699405ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763652805203478ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763618381699410ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763652805203483ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763618381699424ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763652805203495ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763618381699429ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763652805203501ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 05:59:41 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 15:33:25 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 05:59:41 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 15:33:25 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.769992527s
|
Duration: 2.857480805s
|
||||||
Events/sec: 18050.59
|
Events/sec: 17497.93
|
||||||
Avg latency: 1.142811ms
|
Avg latency: 1.220061ms
|
||||||
P90 latency: 1.475809ms
|
P90 latency: 1.596304ms
|
||||||
P95 latency: 1.69225ms
|
P95 latency: 1.873592ms
|
||||||
P99 latency: 2.440594ms
|
P99 latency: 2.782174ms
|
||||||
Bottom 10% Avg latency: 648.4µs
|
Bottom 10% Avg latency: 689.107µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 277.842041ms
|
Burst completed: 5000 events in 281.99337ms
|
||||||
Burst completed: 5000 events in 308.098325ms
|
Burst completed: 5000 events in 295.005478ms
|
||||||
Burst completed: 5000 events in 277.741996ms
|
Burst completed: 5000 events in 269.052958ms
|
||||||
Burst completed: 5000 events in 293.998635ms
|
Burst completed: 5000 events in 354.874939ms
|
||||||
Burst completed: 5000 events in 283.052785ms
|
Burst completed: 5000 events in 272.895272ms
|
||||||
Burst completed: 5000 events in 327.151674ms
|
Burst completed: 5000 events in 323.411741ms
|
||||||
Burst completed: 5000 events in 302.694541ms
|
Burst completed: 5000 events in 292.611169ms
|
||||||
Burst completed: 5000 events in 317.306363ms
|
Burst completed: 5000 events in 302.127762ms
|
||||||
Burst completed: 5000 events in 302.657295ms
|
Burst completed: 5000 events in 319.054762ms
|
||||||
Burst completed: 5000 events in 270.224532ms
|
Burst completed: 5000 events in 278.810535ms
|
||||||
Burst test completed: 50000 events in 7.968808771s, errors: 0
|
Burst test completed: 50000 events in 7.994629013s, errors: 0
|
||||||
Events/sec: 6274.46
|
Events/sec: 6254.20
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.488197886s
|
Mixed test completed: 25000 writes, 25000 reads in 24.55551402s
|
||||||
Combined ops/sec: 2041.80
|
Combined ops/sec: 2036.20
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 423936 queries in 1m0.004174246s
|
Query test completed: 409386 queries in 1m0.004731834s
|
||||||
Queries/sec: 7065.11
|
Queries/sec: 6822.56
|
||||||
Avg query latency: 1.560903ms
|
Avg query latency: 1.626092ms
|
||||||
P95 query latency: 5.964936ms
|
P95 query latency: 6.350996ms
|
||||||
P99 query latency: 9.506308ms
|
P99 query latency: 10.054136ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 322118 operations (272118 queries, 50000 writes) in 1m0.004816049s
|
Concurrent test completed: 323034 operations (273034 queries, 50000 writes) in 1m0.00211611s
|
||||||
Operations/sec: 5368.20
|
Operations/sec: 5383.71
|
||||||
Avg latency: 1.42877ms
|
Avg latency: 1.425098ms
|
||||||
Avg query latency: 1.406819ms
|
Avg query latency: 1.396374ms
|
||||||
Avg write latency: 1.548233ms
|
Avg write latency: 1.58195ms
|
||||||
P95 latency: 3.558185ms
|
P95 latency: 3.545999ms
|
||||||
P99 latency: 5.974717ms
|
P99 latency: 6.036557ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.769992527s
|
Duration: 2.857480805s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 18050.59
|
Events/sec: 17497.93
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 205 MB
|
Memory Used: 146 MB
|
||||||
Avg Latency: 1.142811ms
|
Avg Latency: 1.220061ms
|
||||||
P90 Latency: 1.475809ms
|
P90 Latency: 1.596304ms
|
||||||
P95 Latency: 1.69225ms
|
P95 Latency: 1.873592ms
|
||||||
P99 Latency: 2.440594ms
|
P99 Latency: 2.782174ms
|
||||||
Bottom 10% Avg Latency: 648.4µs
|
Bottom 10% Avg Latency: 689.107µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.968808771s
|
Duration: 7.994629013s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6274.46
|
Events/sec: 6254.20
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 252 MB
|
Memory Used: 252 MB
|
||||||
Avg Latency: 1.192885ms
|
Avg Latency: 1.207729ms
|
||||||
P90 Latency: 1.719783ms
|
P90 Latency: 1.708517ms
|
||||||
P95 Latency: 1.98103ms
|
P95 Latency: 2.026464ms
|
||||||
P99 Latency: 2.799408ms
|
P99 Latency: 3.279542ms
|
||||||
Bottom 10% Avg Latency: 481.913µs
|
Bottom 10% Avg Latency: 485.191µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.488197886s
|
Duration: 24.55551402s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2041.80
|
Events/sec: 2036.20
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 177 MB
|
Memory Used: 136 MB
|
||||||
Avg Latency: 372.501µs
|
Avg Latency: 373.684µs
|
||||||
P90 Latency: 775.366µs
|
P90 Latency: 776.891µs
|
||||||
P95 Latency: 864.535µs
|
P95 Latency: 860.711µs
|
||||||
P99 Latency: 1.063193ms
|
P99 Latency: 1.061864ms
|
||||||
Bottom 10% Avg Latency: 1.030084ms
|
Bottom 10% Avg Latency: 1.011492ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.004174246s
|
Duration: 1m0.004731834s
|
||||||
Total Events: 423936
|
Total Events: 409386
|
||||||
Events/sec: 7065.11
|
Events/sec: 6822.56
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 105 MB
|
Memory Used: 116 MB
|
||||||
Avg Latency: 1.560903ms
|
Avg Latency: 1.626092ms
|
||||||
P90 Latency: 4.593205ms
|
P90 Latency: 4.833133ms
|
||||||
P95 Latency: 5.964936ms
|
P95 Latency: 6.350996ms
|
||||||
P99 Latency: 9.506308ms
|
P99 Latency: 10.054136ms
|
||||||
Bottom 10% Avg Latency: 6.687404ms
|
Bottom 10% Avg Latency: 7.107595ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.004816049s
|
Duration: 1m0.00211611s
|
||||||
Total Events: 322118
|
Total Events: 323034
|
||||||
Events/sec: 5368.20
|
Events/sec: 5383.71
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 90 MB
|
Memory Used: 90 MB
|
||||||
Avg Latency: 1.42877ms
|
Avg Latency: 1.425098ms
|
||||||
P90 Latency: 2.828968ms
|
P90 Latency: 2.805728ms
|
||||||
P95 Latency: 3.558185ms
|
P95 Latency: 3.545999ms
|
||||||
P99 Latency: 5.974717ms
|
P99 Latency: 6.036557ms
|
||||||
Bottom 10% Avg Latency: 4.198317ms
|
Bottom 10% Avg Latency: 4.162695ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_next-orly-neo4j_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_next-orly-neo4j_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_next-orly-neo4j_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: next-orly-neo4j
|
RELAY_NAME: next-orly-neo4j
|
||||||
RELAY_URL: ws://next-orly-neo4j:8080
|
RELAY_URL: ws://next-orly-neo4j:8080
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:02:58+00:00
|
TEST_TIMESTAMP: 2025-11-20T15:36:42+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_nostr-rs-relay_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763653819215784ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763653819215858ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763653819215881ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763653819215886ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763653819215898ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763653819215918ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763653819215925ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763653819215941ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763653819215947ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 15:50:19 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 15:50:19 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.278596732s
|
||||||
|
Events/sec: 15250.43
|
||||||
|
Avg latency: 1.477342ms
|
||||||
|
P90 latency: 2.162459ms
|
||||||
|
P95 latency: 2.527756ms
|
||||||
|
P99 latency: 3.539613ms
|
||||||
|
Bottom 10% Avg latency: 760.393µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 347.551003ms
|
||||||
|
Burst completed: 5000 events in 310.553942ms
|
||||||
|
Burst completed: 5000 events in 274.417201ms
|
||||||
|
Burst completed: 5000 events in 290.829667ms
|
||||||
|
Burst completed: 5000 events in 269.849068ms
|
||||||
|
Burst completed: 5000 events in 319.02529ms
|
||||||
|
Burst completed: 5000 events in 298.378337ms
|
||||||
|
Burst completed: 5000 events in 283.345709ms
|
||||||
|
Burst completed: 5000 events in 276.76346ms
|
||||||
|
Burst completed: 5000 events in 276.349452ms
|
||||||
|
Burst test completed: 50000 events in 7.9534977s, errors: 0
|
||||||
|
Events/sec: 6286.54
|
||||||
|
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.492844824s
|
||||||
|
Combined ops/sec: 2041.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: 387418 queries in 1m0.003606821s
|
||||||
|
Queries/sec: 6456.58
|
||||||
|
Avg query latency: 1.742021ms
|
||||||
|
P95 query latency: 7.039881ms
|
||||||
|
P99 query latency: 11.419213ms
|
||||||
|
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: 319676 operations (269676 queries, 50000 writes) in 1m0.002980175s
|
||||||
|
Operations/sec: 5327.67
|
||||||
|
Avg latency: 1.420802ms
|
||||||
|
Avg query latency: 1.406877ms
|
||||||
|
Avg write latency: 1.495907ms
|
||||||
|
P95 latency: 3.581021ms
|
||||||
|
P99 latency: 5.785351ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.278596732s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15250.43
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 137 MB
|
||||||
|
Avg Latency: 1.477342ms
|
||||||
|
P90 Latency: 2.162459ms
|
||||||
|
P95 Latency: 2.527756ms
|
||||||
|
P99 Latency: 3.539613ms
|
||||||
|
Bottom 10% Avg Latency: 760.393µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 7.9534977s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6286.54
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 204 MB
|
||||||
|
Avg Latency: 1.167307ms
|
||||||
|
P90 Latency: 1.706552ms
|
||||||
|
P95 Latency: 2.003086ms
|
||||||
|
P99 Latency: 2.859297ms
|
||||||
|
Bottom 10% Avg Latency: 438.858µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.492844824s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2041.41
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 178 MB
|
||||||
|
Avg Latency: 377.851µs
|
||||||
|
P90 Latency: 785.336µs
|
||||||
|
P95 Latency: 868.365µs
|
||||||
|
P99 Latency: 1.068355ms
|
||||||
|
Bottom 10% Avg Latency: 1.036749ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.003606821s
|
||||||
|
Total Events: 387418
|
||||||
|
Events/sec: 6456.58
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 125 MB
|
||||||
|
Avg Latency: 1.742021ms
|
||||||
|
P90 Latency: 5.212981ms
|
||||||
|
P95 Latency: 7.039881ms
|
||||||
|
P99 Latency: 11.419213ms
|
||||||
|
Bottom 10% Avg Latency: 7.926637ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.002980175s
|
||||||
|
Total Events: 319676
|
||||||
|
Events/sec: 5327.67
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 136 MB
|
||||||
|
Avg Latency: 1.420802ms
|
||||||
|
P90 Latency: 2.833978ms
|
||||||
|
P95 Latency: 3.581021ms
|
||||||
|
P99 Latency: 5.785351ms
|
||||||
|
Bottom 10% Avg Latency: 4.147653ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T15:53:36+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_relayer-basic_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763653413403632ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763653413403714ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763653413403774ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763653413403787ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763653413403798ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763653413403814ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763653413403819ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763653413403829ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763653413403835ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 15:43:33 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 15:43:33 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.291311068s
|
||||||
|
Events/sec: 15191.51
|
||||||
|
Avg latency: 1.494499ms
|
||||||
|
P90 latency: 2.107626ms
|
||||||
|
P95 latency: 2.461731ms
|
||||||
|
P99 latency: 3.662388ms
|
||||||
|
Bottom 10% Avg latency: 790.923µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 344.087556ms
|
||||||
|
Burst completed: 5000 events in 311.578355ms
|
||||||
|
Burst completed: 5000 events in 276.67865ms
|
||||||
|
Burst completed: 5000 events in 295.952793ms
|
||||||
|
Burst completed: 5000 events in 314.347861ms
|
||||||
|
Burst completed: 5000 events in 365.599791ms
|
||||||
|
Burst completed: 5000 events in 312.086332ms
|
||||||
|
Burst completed: 5000 events in 299.872209ms
|
||||||
|
Burst completed: 5000 events in 328.254546ms
|
||||||
|
Burst completed: 5000 events in 283.179754ms
|
||||||
|
Burst test completed: 50000 events in 8.137375007s, errors: 0
|
||||||
|
Events/sec: 6144.49
|
||||||
|
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.527874554s
|
||||||
|
Combined ops/sec: 2038.50
|
||||||
|
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: 404814 queries in 1m0.005258143s
|
||||||
|
Queries/sec: 6746.31
|
||||||
|
Avg query latency: 1.649233ms
|
||||||
|
P95 query latency: 6.427316ms
|
||||||
|
P99 query latency: 10.348647ms
|
||||||
|
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: 321308 operations (271308 queries, 50000 writes) in 1m0.002966019s
|
||||||
|
Operations/sec: 5354.87
|
||||||
|
Avg latency: 1.426015ms
|
||||||
|
Avg query latency: 1.403835ms
|
||||||
|
Avg write latency: 1.546366ms
|
||||||
|
P95 latency: 3.544854ms
|
||||||
|
P99 latency: 5.812454ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.291311068s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15191.51
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 96 MB
|
||||||
|
Avg Latency: 1.494499ms
|
||||||
|
P90 Latency: 2.107626ms
|
||||||
|
P95 Latency: 2.461731ms
|
||||||
|
P99 Latency: 3.662388ms
|
||||||
|
Bottom 10% Avg Latency: 790.923µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.137375007s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6144.49
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 204 MB
|
||||||
|
Avg Latency: 1.322915ms
|
||||||
|
P90 Latency: 1.930428ms
|
||||||
|
P95 Latency: 2.255818ms
|
||||||
|
P99 Latency: 3.262786ms
|
||||||
|
Bottom 10% Avg Latency: 503.483µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.527874554s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2038.50
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 132 MB
|
||||||
|
Avg Latency: 383.613µs
|
||||||
|
P90 Latency: 799.103µs
|
||||||
|
P95 Latency: 888.112µs
|
||||||
|
P99 Latency: 1.115605ms
|
||||||
|
Bottom 10% Avg Latency: 1.022007ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.005258143s
|
||||||
|
Total Events: 404814
|
||||||
|
Events/sec: 6746.31
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 125 MB
|
||||||
|
Avg Latency: 1.649233ms
|
||||||
|
P90 Latency: 4.874718ms
|
||||||
|
P95 Latency: 6.427316ms
|
||||||
|
P99 Latency: 10.348647ms
|
||||||
|
Bottom 10% Avg Latency: 7.248468ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.002966019s
|
||||||
|
Total Events: 321308
|
||||||
|
Events/sec: 5354.87
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 89 MB
|
||||||
|
Avg Latency: 1.426015ms
|
||||||
|
P90 Latency: 2.835111ms
|
||||||
|
P95 Latency: 3.544854ms
|
||||||
|
P99 Latency: 5.812454ms
|
||||||
|
Bottom 10% Avg Latency: 4.119764ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T15:46:51+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_strfry_8
|
Data Directory: /tmp/benchmark_strfry_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763619190218220ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763653616411609ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763619190218285ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763653616411669ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763619190218308ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763653616411689ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763619190218314ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763653616411694ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763619190218321ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763653616411704ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763619190218340ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763653616411716ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763619190218345ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763653616411721ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763619190218360ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763653616411737ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763619190218365ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763653616411743ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 06:13:10 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 15:46:56 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 06:13:10 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 15:46:56 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.792294779s
|
Duration: 3.014958576s
|
||||||
Events/sec: 17906.42
|
Events/sec: 16583.98
|
||||||
Avg latency: 1.165583ms
|
Avg latency: 1.325163ms
|
||||||
P90 latency: 1.530608ms
|
P90 latency: 1.786363ms
|
||||||
P95 latency: 1.781377ms
|
P95 latency: 2.114188ms
|
||||||
P99 latency: 2.624355ms
|
P99 latency: 3.49584ms
|
||||||
Bottom 10% Avg latency: 663.03µs
|
Bottom 10% Avg latency: 732.389µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 277.678318ms
|
Burst completed: 5000 events in 278.298939ms
|
||||||
Burst completed: 5000 events in 306.128647ms
|
Burst completed: 5000 events in 313.522394ms
|
||||||
Burst completed: 5000 events in 296.483867ms
|
Burst completed: 5000 events in 294.043544ms
|
||||||
Burst completed: 5000 events in 401.910739ms
|
Burst completed: 5000 events in 309.8617ms
|
||||||
Burst completed: 5000 events in 282.04223ms
|
Burst completed: 5000 events in 328.19151ms
|
||||||
Burst completed: 5000 events in 320.586138ms
|
Burst completed: 5000 events in 383.407013ms
|
||||||
Burst completed: 5000 events in 291.737429ms
|
Burst completed: 5000 events in 529.340096ms
|
||||||
Burst completed: 5000 events in 275.451284ms
|
Burst completed: 5000 events in 322.571733ms
|
||||||
Burst completed: 5000 events in 290.811553ms
|
Burst completed: 5000 events in 303.970105ms
|
||||||
Burst completed: 5000 events in 255.912658ms
|
Burst completed: 5000 events in 289.891623ms
|
||||||
Burst test completed: 50000 events in 8.005699907s, errors: 0
|
Burst test completed: 50000 events in 8.361315231s, errors: 0
|
||||||
Events/sec: 6245.55
|
Events/sec: 5979.92
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.441964307s
|
Mixed test completed: 25000 writes, 25000 reads in 24.466759982s
|
||||||
Combined ops/sec: 2045.66
|
Combined ops/sec: 2043.59
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 423574 queries in 1m0.008334214s
|
Query test completed: 387526 queries in 1m0.00778943s
|
||||||
Queries/sec: 7058.59
|
Queries/sec: 6457.93
|
||||||
Avg query latency: 1.564339ms
|
Avg query latency: 1.741809ms
|
||||||
P95 query latency: 5.969023ms
|
P95 query latency: 6.972503ms
|
||||||
P99 query latency: 9.492963ms
|
P99 query latency: 11.293675ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 328763 operations (278763 queries, 50000 writes) in 1m0.002904523s
|
Concurrent test completed: 323401 operations (273401 queries, 50000 writes) in 1m0.003665569s
|
||||||
Operations/sec: 5479.12
|
Operations/sec: 5389.69
|
||||||
Avg latency: 1.359575ms
|
Avg latency: 1.417249ms
|
||||||
Avg query latency: 1.354662ms
|
Avg query latency: 1.392804ms
|
||||||
Avg write latency: 1.386966ms
|
Avg write latency: 1.550915ms
|
||||||
P95 latency: 3.384034ms
|
P95 latency: 3.520567ms
|
||||||
P99 latency: 5.281823ms
|
P99 latency: 5.657268ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.792294779s
|
Duration: 3.014958576s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 17906.42
|
Events/sec: 16583.98
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 207 MB
|
Memory Used: 167 MB
|
||||||
Avg Latency: 1.165583ms
|
Avg Latency: 1.325163ms
|
||||||
P90 Latency: 1.530608ms
|
P90 Latency: 1.786363ms
|
||||||
P95 Latency: 1.781377ms
|
P95 Latency: 2.114188ms
|
||||||
P99 Latency: 2.624355ms
|
P99 Latency: 3.49584ms
|
||||||
Bottom 10% Avg Latency: 663.03µs
|
Bottom 10% Avg Latency: 732.389µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 8.005699907s
|
Duration: 8.361315231s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6245.55
|
Events/sec: 5979.92
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 250 MB
|
Memory Used: 210 MB
|
||||||
Avg Latency: 1.143689ms
|
Avg Latency: 1.467778ms
|
||||||
P90 Latency: 1.750689ms
|
P90 Latency: 2.245087ms
|
||||||
P95 Latency: 2.088623ms
|
P95 Latency: 2.793392ms
|
||||||
P99 Latency: 3.274904ms
|
P99 Latency: 4.500615ms
|
||||||
Bottom 10% Avg Latency: 423.835µs
|
Bottom 10% Avg Latency: 566.462µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.441964307s
|
Duration: 24.466759982s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2045.66
|
Events/sec: 2043.59
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 215 MB
|
Memory Used: 217 MB
|
||||||
Avg Latency: 364.721µs
|
Avg Latency: 379.14µs
|
||||||
P90 Latency: 765.73µs
|
P90 Latency: 785.126µs
|
||||||
P95 Latency: 852.326µs
|
P95 Latency: 878.634µs
|
||||||
P99 Latency: 1.050373ms
|
P99 Latency: 1.097992ms
|
||||||
Bottom 10% Avg Latency: 984.48µs
|
Bottom 10% Avg Latency: 1.031459ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.008334214s
|
Duration: 1m0.00778943s
|
||||||
Total Events: 423574
|
Total Events: 387526
|
||||||
Events/sec: 7058.59
|
Events/sec: 6457.93
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 151 MB
|
Memory Used: 136 MB
|
||||||
Avg Latency: 1.564339ms
|
Avg Latency: 1.741809ms
|
||||||
P90 Latency: 4.611725ms
|
P90 Latency: 5.188695ms
|
||||||
P95 Latency: 5.969023ms
|
P95 Latency: 6.972503ms
|
||||||
P99 Latency: 9.492963ms
|
P99 Latency: 11.293675ms
|
||||||
Bottom 10% Avg Latency: 6.681727ms
|
Bottom 10% Avg Latency: 7.860799ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.002904523s
|
Duration: 1m0.003665569s
|
||||||
Total Events: 328763
|
Total Events: 323401
|
||||||
Events/sec: 5479.12
|
Events/sec: 5389.69
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 108 MB
|
Memory Used: 106 MB
|
||||||
Avg Latency: 1.359575ms
|
Avg Latency: 1.417249ms
|
||||||
P90 Latency: 2.735116ms
|
P90 Latency: 2.811055ms
|
||||||
P95 Latency: 3.384034ms
|
P95 Latency: 3.520567ms
|
||||||
P99 Latency: 5.281823ms
|
P99 Latency: 5.657268ms
|
||||||
Bottom 10% Avg Latency: 3.815359ms
|
Bottom 10% Avg Latency: 4.052952ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_strfry_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_strfry_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_strfry_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: strfry
|
RELAY_NAME: strfry
|
||||||
RELAY_URL: ws://strfry:8080
|
RELAY_URL: ws://strfry:8080
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:16:27+00:00
|
TEST_TIMESTAMP: 2025-11-20T15:50:14+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_khatru-badger_8
|
Data Directory: /tmp/benchmark_khatru-badger_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763618786076815ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763655776959677ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763618786076877ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763655776959730ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763618786076947ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763655776959750ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763618786076977ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763655776959756ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763618786076987ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763655776959766ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763618786077003ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763655776959781ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763618786077008ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763655776959786ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763618786077019ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763655776959799ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763618786077024ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763655776959805ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 06:06:26 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 16:22:56 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 06:06:26 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 16:22:56 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.763121055s
|
Duration: 3.557122297s
|
||||||
Events/sec: 18095.48
|
Events/sec: 14056.31
|
||||||
Avg latency: 1.143282ms
|
Avg latency: 1.628852ms
|
||||||
P90 latency: 1.487084ms
|
P90 latency: 2.412548ms
|
||||||
P95 latency: 1.721751ms
|
P95 latency: 2.884718ms
|
||||||
P99 latency: 2.433718ms
|
P99 latency: 4.67527ms
|
||||||
Bottom 10% Avg latency: 651.813µs
|
Bottom 10% Avg latency: 792.955µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 279.242515ms
|
Burst completed: 5000 events in 405.911535ms
|
||||||
Burst completed: 5000 events in 302.441404ms
|
Burst completed: 5000 events in 380.53618ms
|
||||||
Burst completed: 5000 events in 261.238216ms
|
Burst completed: 5000 events in 280.754351ms
|
||||||
Burst completed: 5000 events in 289.601428ms
|
Burst completed: 5000 events in 297.565192ms
|
||||||
Burst completed: 5000 events in 278.55583ms
|
Burst completed: 5000 events in 302.520216ms
|
||||||
Burst completed: 5000 events in 410.332505ms
|
Burst completed: 5000 events in 350.323686ms
|
||||||
Burst completed: 5000 events in 343.055357ms
|
Burst completed: 5000 events in 371.767707ms
|
||||||
Burst completed: 5000 events in 264.436385ms
|
Burst completed: 5000 events in 285.38171ms
|
||||||
Burst completed: 5000 events in 291.690093ms
|
Burst completed: 5000 events in 274.748193ms
|
||||||
Burst completed: 5000 events in 258.542866ms
|
Burst completed: 5000 events in 271.260586ms
|
||||||
Burst test completed: 50000 events in 7.986045814s, errors: 0
|
Burst test completed: 50000 events in 8.226487654s, errors: 0
|
||||||
Events/sec: 6260.92
|
Events/sec: 6077.93
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.456214964s
|
Mixed test completed: 25000 writes, 25000 reads in 24.533132193s
|
||||||
Combined ops/sec: 2044.47
|
Combined ops/sec: 2038.06
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 417411 queries in 1m0.006481017s
|
Query test completed: 394302 queries in 1m0.00447925s
|
||||||
Queries/sec: 6956.10
|
Queries/sec: 6571.21
|
||||||
Avg query latency: 1.593183ms
|
Avg query latency: 1.70837ms
|
||||||
P95 query latency: 6.184979ms
|
P95 query latency: 6.773469ms
|
||||||
P99 query latency: 9.84781ms
|
P99 query latency: 10.899944ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 325932 operations (275932 queries, 50000 writes) in 1m0.003734546s
|
Concurrent test completed: 317462 operations (267462 queries, 50000 writes) in 1m0.00322203s
|
||||||
Operations/sec: 5431.86
|
Operations/sec: 5290.75
|
||||||
Avg latency: 1.403237ms
|
Avg latency: 1.435958ms
|
||||||
Avg query latency: 1.376383ms
|
Avg query latency: 1.421544ms
|
||||||
Avg write latency: 1.55144ms
|
Avg write latency: 1.513062ms
|
||||||
P95 latency: 3.479172ms
|
P95 latency: 3.617935ms
|
||||||
P99 latency: 5.834682ms
|
P99 latency: 5.869627ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.763121055s
|
Duration: 3.557122297s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 18095.48
|
Events/sec: 14056.31
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 90 MB
|
Memory Used: 156 MB
|
||||||
Avg Latency: 1.143282ms
|
Avg Latency: 1.628852ms
|
||||||
P90 Latency: 1.487084ms
|
P90 Latency: 2.412548ms
|
||||||
P95 Latency: 1.721751ms
|
P95 Latency: 2.884718ms
|
||||||
P99 Latency: 2.433718ms
|
P99 Latency: 4.67527ms
|
||||||
Bottom 10% Avg Latency: 651.813µs
|
Bottom 10% Avg Latency: 792.955µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.986045814s
|
Duration: 8.226487654s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6260.92
|
Events/sec: 6077.93
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 160 MB
|
Memory Used: 205 MB
|
||||||
Avg Latency: 1.203274ms
|
Avg Latency: 1.310069ms
|
||||||
P90 Latency: 1.822603ms
|
P90 Latency: 2.055438ms
|
||||||
P95 Latency: 2.200764ms
|
P95 Latency: 2.49215ms
|
||||||
P99 Latency: 3.362057ms
|
P99 Latency: 4.005986ms
|
||||||
Bottom 10% Avg Latency: 456.813µs
|
Bottom 10% Avg Latency: 461.037µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.456214964s
|
Duration: 24.533132193s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2044.47
|
Events/sec: 2038.06
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 146 MB
|
Memory Used: 199 MB
|
||||||
Avg Latency: 371.63µs
|
Avg Latency: 388.704µs
|
||||||
P90 Latency: 776.991µs
|
P90 Latency: 808.702µs
|
||||||
P95 Latency: 865.67µs
|
P95 Latency: 904.254µs
|
||||||
P99 Latency: 1.069839ms
|
P99 Latency: 1.136966ms
|
||||||
Bottom 10% Avg Latency: 1.010599ms
|
Bottom 10% Avg Latency: 1.056324ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.006481017s
|
Duration: 1m0.00447925s
|
||||||
Total Events: 417411
|
Total Events: 394302
|
||||||
Events/sec: 6956.10
|
Events/sec: 6571.21
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 105 MB
|
Memory Used: 115 MB
|
||||||
Avg Latency: 1.593183ms
|
Avg Latency: 1.70837ms
|
||||||
P90 Latency: 4.714556ms
|
P90 Latency: 5.078238ms
|
||||||
P95 Latency: 6.184979ms
|
P95 Latency: 6.773469ms
|
||||||
P99 Latency: 9.84781ms
|
P99 Latency: 10.899944ms
|
||||||
Bottom 10% Avg Latency: 6.905275ms
|
Bottom 10% Avg Latency: 7.587998ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.003734546s
|
Duration: 1m0.00322203s
|
||||||
Total Events: 325932
|
Total Events: 317462
|
||||||
Events/sec: 5431.86
|
Events/sec: 5290.75
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 117 MB
|
Memory Used: 123 MB
|
||||||
Avg Latency: 1.403237ms
|
Avg Latency: 1.435958ms
|
||||||
P90 Latency: 2.762476ms
|
P90 Latency: 2.91748ms
|
||||||
P95 Latency: 3.479172ms
|
P95 Latency: 3.617935ms
|
||||||
P99 Latency: 5.834682ms
|
P99 Latency: 5.869627ms
|
||||||
Bottom 10% Avg Latency: 4.060934ms
|
Bottom 10% Avg Latency: 4.184418ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_khatru-badger_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_khatru-badger_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_khatru-badger_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: khatru-badger
|
RELAY_NAME: khatru-badger
|
||||||
RELAY_URL: ws://khatru-badger:3334
|
RELAY_URL: ws://khatru-badger:3334
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:09:43+00:00
|
TEST_TIMESTAMP: 2025-11-20T16:26:15+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_khatru-sqlite_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763655574035860ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763655574035914ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763655574035943ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763655574035949ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763655574035958ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763655574035975ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763655574035982ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763655574035992ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763655574035997ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:19:34 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:19:34 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.232222717s
|
||||||
|
Events/sec: 15469.23
|
||||||
|
Avg latency: 1.469007ms
|
||||||
|
P90 latency: 2.035701ms
|
||||||
|
P95 latency: 2.349899ms
|
||||||
|
P99 latency: 3.271326ms
|
||||||
|
Bottom 10% Avg latency: 801.936µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 299.732401ms
|
||||||
|
Burst completed: 5000 events in 329.942997ms
|
||||||
|
Burst completed: 5000 events in 277.351209ms
|
||||||
|
Burst completed: 5000 events in 317.930408ms
|
||||||
|
Burst completed: 5000 events in 273.472906ms
|
||||||
|
Burst completed: 5000 events in 337.06975ms
|
||||||
|
Burst completed: 5000 events in 340.407772ms
|
||||||
|
Burst completed: 5000 events in 358.760144ms
|
||||||
|
Burst completed: 5000 events in 309.592493ms
|
||||||
|
Burst completed: 5000 events in 273.260581ms
|
||||||
|
Burst test completed: 50000 events in 8.125781511s, errors: 0
|
||||||
|
Events/sec: 6153.25
|
||||||
|
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.566923076s
|
||||||
|
Combined ops/sec: 2035.26
|
||||||
|
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: 402485 queries in 1m0.004783968s
|
||||||
|
Queries/sec: 6707.55
|
||||||
|
Avg query latency: 1.665358ms
|
||||||
|
P95 query latency: 6.573038ms
|
||||||
|
P99 query latency: 10.409271ms
|
||||||
|
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: 311988 operations (261988 queries, 50000 writes) in 1m0.003852034s
|
||||||
|
Operations/sec: 5199.47
|
||||||
|
Avg latency: 1.508403ms
|
||||||
|
Avg query latency: 1.478354ms
|
||||||
|
Avg write latency: 1.665855ms
|
||||||
|
P95 latency: 3.826874ms
|
||||||
|
P99 latency: 6.740607ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.232222717s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15469.23
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 101 MB
|
||||||
|
Avg Latency: 1.469007ms
|
||||||
|
P90 Latency: 2.035701ms
|
||||||
|
P95 Latency: 2.349899ms
|
||||||
|
P99 Latency: 3.271326ms
|
||||||
|
Bottom 10% Avg Latency: 801.936µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.125781511s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6153.25
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 253 MB
|
||||||
|
Avg Latency: 1.339912ms
|
||||||
|
P90 Latency: 1.931472ms
|
||||||
|
P95 Latency: 2.248376ms
|
||||||
|
P99 Latency: 3.415521ms
|
||||||
|
Bottom 10% Avg Latency: 558.036µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.566923076s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2035.26
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 183 MB
|
||||||
|
Avg Latency: 387.89µs
|
||||||
|
P90 Latency: 800.235µs
|
||||||
|
P95 Latency: 893.473µs
|
||||||
|
P99 Latency: 1.116417ms
|
||||||
|
Bottom 10% Avg Latency: 1.061513ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004783968s
|
||||||
|
Total Events: 402485
|
||||||
|
Events/sec: 6707.55
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 122 MB
|
||||||
|
Avg Latency: 1.665358ms
|
||||||
|
P90 Latency: 4.967519ms
|
||||||
|
P95 Latency: 6.573038ms
|
||||||
|
P99 Latency: 10.409271ms
|
||||||
|
Bottom 10% Avg Latency: 7.318028ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003852034s
|
||||||
|
Total Events: 311988
|
||||||
|
Events/sec: 5199.47
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 123 MB
|
||||||
|
Avg Latency: 1.508403ms
|
||||||
|
P90 Latency: 3.026719ms
|
||||||
|
P95 Latency: 3.826874ms
|
||||||
|
P99 Latency: 6.740607ms
|
||||||
|
Bottom 10% Avg Latency: 4.581461ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:22:51+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-badger_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763654965967981ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763654965968059ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763654965968086ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763654965968093ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763654965968104ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763654965968128ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763654965968134ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763654965968148ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763654965968155ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:09:25 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
|
||||||
|
2025/11/20 16:09:25 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:09:25 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 2.86284713s
|
||||||
|
Events/sec: 17465.13
|
||||||
|
Avg latency: 1.240021ms
|
||||||
|
P90 latency: 1.632975ms
|
||||||
|
P95 latency: 1.88702ms
|
||||||
|
P99 latency: 2.588648ms
|
||||||
|
Bottom 10% Avg latency: 720.664µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 283.916078ms
|
||||||
|
Burst completed: 5000 events in 308.835391ms
|
||||||
|
Burst completed: 5000 events in 271.738649ms
|
||||||
|
Burst completed: 5000 events in 294.190093ms
|
||||||
|
Burst completed: 5000 events in 270.874739ms
|
||||||
|
Burst completed: 5000 events in 353.277008ms
|
||||||
|
Burst completed: 5000 events in 291.31675ms
|
||||||
|
Burst completed: 5000 events in 260.143176ms
|
||||||
|
Burst completed: 5000 events in 278.682529ms
|
||||||
|
Burst completed: 5000 events in 270.618556ms
|
||||||
|
Burst test completed: 50000 events in 7.890214694s, errors: 0
|
||||||
|
Events/sec: 6336.96
|
||||||
|
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.398091289s
|
||||||
|
Combined ops/sec: 2049.34
|
||||||
|
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: 375020 queries in 1m0.004407142s
|
||||||
|
Queries/sec: 6249.87
|
||||||
|
Avg query latency: 1.807546ms
|
||||||
|
P95 query latency: 7.404502ms
|
||||||
|
P99 query latency: 12.127148ms
|
||||||
|
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: 310651 operations (260651 queries, 50000 writes) in 1m0.003771057s
|
||||||
|
Operations/sec: 5177.19
|
||||||
|
Avg latency: 1.509233ms
|
||||||
|
Avg query latency: 1.487291ms
|
||||||
|
Avg write latency: 1.623615ms
|
||||||
|
P95 latency: 3.906611ms
|
||||||
|
P99 latency: 6.304613ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 2.86284713s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 17465.13
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 164 MB
|
||||||
|
Avg Latency: 1.240021ms
|
||||||
|
P90 Latency: 1.632975ms
|
||||||
|
P95 Latency: 1.88702ms
|
||||||
|
P99 Latency: 2.588648ms
|
||||||
|
Bottom 10% Avg Latency: 720.664µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 7.890214694s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6336.96
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 170 MB
|
||||||
|
Avg Latency: 1.17176ms
|
||||||
|
P90 Latency: 1.637524ms
|
||||||
|
P95 Latency: 1.909102ms
|
||||||
|
P99 Latency: 2.743443ms
|
||||||
|
Bottom 10% Avg Latency: 504.67µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.398091289s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2049.34
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 114 MB
|
||||||
|
Avg Latency: 363.633µs
|
||||||
|
P90 Latency: 765.71µs
|
||||||
|
P95 Latency: 855.742µs
|
||||||
|
P99 Latency: 1.047598ms
|
||||||
|
Bottom 10% Avg Latency: 974.416µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004407142s
|
||||||
|
Total Events: 375020
|
||||||
|
Events/sec: 6249.87
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 133 MB
|
||||||
|
Avg Latency: 1.807546ms
|
||||||
|
P90 Latency: 5.438031ms
|
||||||
|
P95 Latency: 7.404502ms
|
||||||
|
P99 Latency: 12.127148ms
|
||||||
|
Bottom 10% Avg Latency: 8.375567ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003771057s
|
||||||
|
Total Events: 310651
|
||||||
|
Events/sec: 5177.19
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 127 MB
|
||||||
|
Avg Latency: 1.509233ms
|
||||||
|
P90 Latency: 3.084923ms
|
||||||
|
P95 Latency: 3.906611ms
|
||||||
|
P99 Latency: 6.304613ms
|
||||||
|
Bottom 10% Avg Latency: 4.476784ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:12:43+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_next-orly-dgraph_8
|
Data Directory: /tmp/benchmark_next-orly-dgraph_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763618179225019ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763655168222493ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763618179225097ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763655168222619ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763618179225124ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763655168222661ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763618179225130ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763655168222668ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763618179225139ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763655168222679ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763618179225153ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763655168222696ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763618179225160ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763655168222702ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763618179225172ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763655168222720ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763618179225178ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763655168222727ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 05:56:19 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 16:12:48 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 05:56:19 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 16:12:48 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 3.129809148s
|
Duration: 3.077632558s
|
||||||
Events/sec: 15975.41
|
Events/sec: 16246.25
|
||||||
Avg latency: 1.379901ms
|
Avg latency: 1.364467ms
|
||||||
P90 latency: 1.992677ms
|
P90 latency: 1.883291ms
|
||||||
P95 latency: 2.307115ms
|
P95 latency: 2.256624ms
|
||||||
P99 latency: 3.315241ms
|
P99 latency: 3.300984ms
|
||||||
Bottom 10% Avg latency: 705.38µs
|
Bottom 10% Avg latency: 745.8µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 269.998489ms
|
Burst completed: 5000 events in 289.470058ms
|
||||||
Burst completed: 5000 events in 379.862976ms
|
Burst completed: 5000 events in 331.754037ms
|
||||||
Burst completed: 5000 events in 315.530605ms
|
Burst completed: 5000 events in 300.084597ms
|
||||||
Burst completed: 5000 events in 286.315924ms
|
Burst completed: 5000 events in 307.645494ms
|
||||||
Burst completed: 5000 events in 265.701ms
|
Burst completed: 5000 events in 438.270616ms
|
||||||
Burst completed: 5000 events in 320.067398ms
|
Burst completed: 5000 events in 438.889425ms
|
||||||
Burst completed: 5000 events in 310.332948ms
|
Burst completed: 5000 events in 312.922304ms
|
||||||
Burst completed: 5000 events in 260.739129ms
|
Burst completed: 5000 events in 276.60434ms
|
||||||
Burst completed: 5000 events in 278.464314ms
|
Burst completed: 5000 events in 415.149503ms
|
||||||
Burst completed: 5000 events in 275.687097ms
|
Burst completed: 5000 events in 287.798655ms
|
||||||
Burst test completed: 50000 events in 7.967614114s, errors: 0
|
Burst test completed: 50000 events in 8.404871327s, errors: 0
|
||||||
Events/sec: 6275.40
|
Events/sec: 5948.93
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.415571109s
|
Mixed test completed: 25000 writes, 25000 reads in 24.600967028s
|
||||||
Combined ops/sec: 2047.87
|
Combined ops/sec: 2032.44
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 413479 queries in 1m0.00605908s
|
Query test completed: 356380 queries in 1m0.003804202s
|
||||||
Queries/sec: 6890.62
|
Queries/sec: 5939.29
|
||||||
Avg query latency: 1.614876ms
|
Avg query latency: 1.921866ms
|
||||||
P95 query latency: 6.238786ms
|
P95 query latency: 7.932755ms
|
||||||
P99 query latency: 10.005161ms
|
P99 query latency: 13.087413ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 323428 operations (273428 queries, 50000 writes) in 1m0.003637465s
|
Concurrent test completed: 313316 operations (263316 queries, 50000 writes) in 1m0.002399217s
|
||||||
Operations/sec: 5390.14
|
Operations/sec: 5221.72
|
||||||
Avg latency: 1.392162ms
|
Avg latency: 1.496966ms
|
||||||
Avg query latency: 1.390979ms
|
Avg query latency: 1.470501ms
|
||||||
Avg write latency: 1.398631ms
|
Avg write latency: 1.636338ms
|
||||||
P95 latency: 3.456536ms
|
P95 latency: 3.78214ms
|
||||||
P99 latency: 5.341594ms
|
P99 latency: 6.576619ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 3.129809148s
|
Duration: 3.077632558s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 15975.41
|
Events/sec: 16246.25
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 136 MB
|
Memory Used: 101 MB
|
||||||
Avg Latency: 1.379901ms
|
Avg Latency: 1.364467ms
|
||||||
P90 Latency: 1.992677ms
|
P90 Latency: 1.883291ms
|
||||||
P95 Latency: 2.307115ms
|
P95 Latency: 2.256624ms
|
||||||
P99 Latency: 3.315241ms
|
P99 Latency: 3.300984ms
|
||||||
Bottom 10% Avg Latency: 705.38µs
|
Bottom 10% Avg Latency: 745.8µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.967614114s
|
Duration: 8.404871327s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6275.40
|
Events/sec: 5948.93
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 164 MB
|
Memory Used: 178 MB
|
||||||
Avg Latency: 1.177806ms
|
Avg Latency: 1.479051ms
|
||||||
P90 Latency: 1.743774ms
|
P90 Latency: 2.357616ms
|
||||||
P95 Latency: 2.062351ms
|
P95 Latency: 2.873991ms
|
||||||
P99 Latency: 3.08792ms
|
P99 Latency: 4.41552ms
|
||||||
Bottom 10% Avg Latency: 445.91µs
|
Bottom 10% Avg Latency: 536.061µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.415571109s
|
Duration: 24.600967028s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2047.87
|
Events/sec: 2032.44
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 142 MB
|
Memory Used: 183 MB
|
||||||
Avg Latency: 370.82µs
|
Avg Latency: 400.294µs
|
||||||
P90 Latency: 773.25µs
|
P90 Latency: 824.673µs
|
||||||
P95 Latency: 858.252µs
|
P95 Latency: 918.06µs
|
||||||
P99 Latency: 1.064304ms
|
P99 Latency: 1.128421ms
|
||||||
Bottom 10% Avg Latency: 1.01339ms
|
Bottom 10% Avg Latency: 1.06369ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.00605908s
|
Duration: 1m0.003804202s
|
||||||
Total Events: 413479
|
Total Events: 356380
|
||||||
Events/sec: 6890.62
|
Events/sec: 5939.29
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 117 MB
|
Memory Used: 124 MB
|
||||||
Avg Latency: 1.614876ms
|
Avg Latency: 1.921866ms
|
||||||
P90 Latency: 4.764101ms
|
P90 Latency: 5.832521ms
|
||||||
P95 Latency: 6.238786ms
|
P95 Latency: 7.932755ms
|
||||||
P99 Latency: 10.005161ms
|
P99 Latency: 13.087413ms
|
||||||
Bottom 10% Avg Latency: 7.015286ms
|
Bottom 10% Avg Latency: 9.018017ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.003637465s
|
Duration: 1m0.002399217s
|
||||||
Total Events: 323428
|
Total Events: 313316
|
||||||
Events/sec: 5390.14
|
Events/sec: 5221.72
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 149 MB
|
Memory Used: 143 MB
|
||||||
Avg Latency: 1.392162ms
|
Avg Latency: 1.496966ms
|
||||||
P90 Latency: 2.802772ms
|
P90 Latency: 3.008265ms
|
||||||
P95 Latency: 3.456536ms
|
P95 Latency: 3.78214ms
|
||||||
P99 Latency: 5.341594ms
|
P99 Latency: 6.576619ms
|
||||||
Bottom 10% Avg Latency: 3.885211ms
|
Bottom 10% Avg Latency: 4.546974ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_next-orly-dgraph_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_next-orly-dgraph_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_next-orly-dgraph_8/benchmark_report.ado
|
|||||||
|
|
||||||
RELAY_NAME: next-orly-dgraph
|
RELAY_NAME: next-orly-dgraph
|
||||||
RELAY_URL: ws://next-orly-dgraph:8080
|
RELAY_URL: ws://next-orly-dgraph:8080
|
||||||
TEST_TIMESTAMP: 2025-11-20T05:59:36+00:00
|
TEST_TIMESTAMP: 2025-11-20T16:16:06+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-neo4j_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763655371282183ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763655371282260ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763655371282294ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763655371282304ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763655371282313ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763655371282328ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763655371282332ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763655371282347ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763655371282352ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:16:11 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:16:11 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.322036094s
|
||||||
|
Events/sec: 15051.01
|
||||||
|
Avg latency: 1.501127ms
|
||||||
|
P90 latency: 2.132576ms
|
||||||
|
P95 latency: 2.573527ms
|
||||||
|
P99 latency: 4.7262ms
|
||||||
|
Bottom 10% Avg latency: 773.812µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 297.948317ms
|
||||||
|
Burst completed: 5000 events in 318.841207ms
|
||||||
|
Burst completed: 5000 events in 280.549165ms
|
||||||
|
Burst completed: 5000 events in 306.213632ms
|
||||||
|
Burst completed: 5000 events in 296.343565ms
|
||||||
|
Burst completed: 5000 events in 344.885086ms
|
||||||
|
Burst completed: 5000 events in 302.324928ms
|
||||||
|
Burst completed: 5000 events in 275.70635ms
|
||||||
|
Burst completed: 5000 events in 291.656138ms
|
||||||
|
Burst completed: 5000 events in 279.144014ms
|
||||||
|
Burst test completed: 50000 events in 8.000273258s, errors: 0
|
||||||
|
Events/sec: 6249.79
|
||||||
|
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.493058795s
|
||||||
|
Combined ops/sec: 2041.39
|
||||||
|
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: 379691 queries in 1m0.00424271s
|
||||||
|
Queries/sec: 6327.74
|
||||||
|
Avg query latency: 1.786907ms
|
||||||
|
P95 query latency: 7.280158ms
|
||||||
|
P99 query latency: 11.561961ms
|
||||||
|
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: 307993 operations (257993 queries, 50000 writes) in 1m0.003271216s
|
||||||
|
Operations/sec: 5132.94
|
||||||
|
Avg latency: 1.52949ms
|
||||||
|
Avg query latency: 1.502605ms
|
||||||
|
Avg write latency: 1.668216ms
|
||||||
|
P95 latency: 3.920904ms
|
||||||
|
P99 latency: 6.58322ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.322036094s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15051.01
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 169 MB
|
||||||
|
Avg Latency: 1.501127ms
|
||||||
|
P90 Latency: 2.132576ms
|
||||||
|
P95 Latency: 2.573527ms
|
||||||
|
P99 Latency: 4.7262ms
|
||||||
|
Bottom 10% Avg Latency: 773.812µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.000273258s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6249.79
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 175 MB
|
||||||
|
Avg Latency: 1.219984ms
|
||||||
|
P90 Latency: 1.785173ms
|
||||||
|
P95 Latency: 2.089965ms
|
||||||
|
P99 Latency: 2.950085ms
|
||||||
|
Bottom 10% Avg Latency: 487.01µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.493058795s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2041.39
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 216 MB
|
||||||
|
Avg Latency: 380.334µs
|
||||||
|
P90 Latency: 796.668µs
|
||||||
|
P95 Latency: 892.09µs
|
||||||
|
P99 Latency: 1.120225ms
|
||||||
|
Bottom 10% Avg Latency: 1.010816ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.00424271s
|
||||||
|
Total Events: 379691
|
||||||
|
Events/sec: 6327.74
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 112 MB
|
||||||
|
Avg Latency: 1.786907ms
|
||||||
|
P90 Latency: 5.418278ms
|
||||||
|
P95 Latency: 7.280158ms
|
||||||
|
P99 Latency: 11.561961ms
|
||||||
|
Bottom 10% Avg Latency: 8.118513ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003271216s
|
||||||
|
Total Events: 307993
|
||||||
|
Events/sec: 5132.94
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 92 MB
|
||||||
|
Avg Latency: 1.52949ms
|
||||||
|
P90 Latency: 3.119146ms
|
||||||
|
P95 Latency: 3.920904ms
|
||||||
|
P99 Latency: 6.58322ms
|
||||||
|
Bottom 10% Avg Latency: 4.575079ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:19:28+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_nostr-rs-relay_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763656386931745ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763656386931817ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763656386931845ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763656386931852ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763656386931865ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763656386931881ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763656386931888ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763656386931904ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763656386931912ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:33:06 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:33:06 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.042476532s
|
||||||
|
Events/sec: 16433.98
|
||||||
|
Avg latency: 1.35254ms
|
||||||
|
P90 latency: 1.869292ms
|
||||||
|
P95 latency: 2.195555ms
|
||||||
|
P99 latency: 3.118533ms
|
||||||
|
Bottom 10% Avg latency: 756.615µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 279.583533ms
|
||||||
|
Burst completed: 5000 events in 302.418629ms
|
||||||
|
Burst completed: 5000 events in 282.144904ms
|
||||||
|
Burst completed: 5000 events in 312.16919ms
|
||||||
|
Burst completed: 5000 events in 282.829388ms
|
||||||
|
Burst completed: 5000 events in 377.502102ms
|
||||||
|
Burst completed: 5000 events in 331.038047ms
|
||||||
|
Burst completed: 5000 events in 272.690016ms
|
||||||
|
Burst completed: 5000 events in 289.250685ms
|
||||||
|
Burst completed: 5000 events in 304.392921ms
|
||||||
|
Burst test completed: 50000 events in 8.03944091s, errors: 0
|
||||||
|
Events/sec: 6219.34
|
||||||
|
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.582126193s
|
||||||
|
Combined ops/sec: 2034.00
|
||||||
|
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: 374420 queries in 1m0.004508333s
|
||||||
|
Queries/sec: 6239.86
|
||||||
|
Avg query latency: 1.807473ms
|
||||||
|
P95 query latency: 7.370553ms
|
||||||
|
P99 query latency: 11.712034ms
|
||||||
|
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: 305067 operations (255067 queries, 50000 writes) in 1m0.003563304s
|
||||||
|
Operations/sec: 5084.15
|
||||||
|
Avg latency: 1.548146ms
|
||||||
|
Avg query latency: 1.529466ms
|
||||||
|
Avg write latency: 1.643441ms
|
||||||
|
P95 latency: 4.045539ms
|
||||||
|
P99 latency: 6.60567ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.042476532s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 16433.98
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 160 MB
|
||||||
|
Avg Latency: 1.35254ms
|
||||||
|
P90 Latency: 1.869292ms
|
||||||
|
P95 Latency: 2.195555ms
|
||||||
|
P99 Latency: 3.118533ms
|
||||||
|
Bottom 10% Avg Latency: 756.615µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.03944091s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6219.34
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 209 MB
|
||||||
|
Avg Latency: 1.18202ms
|
||||||
|
P90 Latency: 1.750716ms
|
||||||
|
P95 Latency: 2.092537ms
|
||||||
|
P99 Latency: 3.047477ms
|
||||||
|
Bottom 10% Avg Latency: 434.92µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.582126193s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2034.00
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 174 MB
|
||||||
|
Avg Latency: 392.213µs
|
||||||
|
P90 Latency: 813.45µs
|
||||||
|
P95 Latency: 906.498µs
|
||||||
|
P99 Latency: 1.156113ms
|
||||||
|
Bottom 10% Avg Latency: 1.043137ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004508333s
|
||||||
|
Total Events: 374420
|
||||||
|
Events/sec: 6239.86
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 156 MB
|
||||||
|
Avg Latency: 1.807473ms
|
||||||
|
P90 Latency: 5.506507ms
|
||||||
|
P95 Latency: 7.370553ms
|
||||||
|
P99 Latency: 11.712034ms
|
||||||
|
Bottom 10% Avg Latency: 8.221454ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003563304s
|
||||||
|
Total Events: 305067
|
||||||
|
Events/sec: 5084.15
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 166 MB
|
||||||
|
Avg Latency: 1.548146ms
|
||||||
|
P90 Latency: 3.172868ms
|
||||||
|
P95 Latency: 4.045539ms
|
||||||
|
P99 Latency: 6.60567ms
|
||||||
|
Bottom 10% Avg Latency: 4.666667ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:36:24+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_relayer-basic_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763655980207009ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763655980207065ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763655980207089ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763655980207095ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763655980207103ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763655980207116ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763655980207120ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763655980207133ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763655980207139ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:26:20 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:26:20 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.140113498s
|
||||||
|
Events/sec: 15922.99
|
||||||
|
Avg latency: 1.417584ms
|
||||||
|
P90 latency: 1.918927ms
|
||||||
|
P95 latency: 2.251932ms
|
||||||
|
P99 latency: 3.24845ms
|
||||||
|
Bottom 10% Avg latency: 781.19µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 295.016917ms
|
||||||
|
Burst completed: 5000 events in 302.477205ms
|
||||||
|
Burst completed: 5000 events in 296.524079ms
|
||||||
|
Burst completed: 5000 events in 316.859334ms
|
||||||
|
Burst completed: 5000 events in 283.043959ms
|
||||||
|
Burst completed: 5000 events in 599.696348ms
|
||||||
|
Burst completed: 5000 events in 348.408531ms
|
||||||
|
Burst completed: 5000 events in 328.489308ms
|
||||||
|
Burst completed: 5000 events in 346.767823ms
|
||||||
|
Burst completed: 5000 events in 266.423432ms
|
||||||
|
Burst test completed: 50000 events in 8.390681222s, errors: 0
|
||||||
|
Events/sec: 5958.99
|
||||||
|
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.729378008s
|
||||||
|
Combined ops/sec: 2021.89
|
||||||
|
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: 377608 queries in 1m0.004159666s
|
||||||
|
Queries/sec: 6293.03
|
||||||
|
Avg query latency: 1.78194ms
|
||||||
|
P95 query latency: 7.313999ms
|
||||||
|
P99 query latency: 11.571994ms
|
||||||
|
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: 300761 operations (250761 queries, 50000 writes) in 1m0.003300562s
|
||||||
|
Operations/sec: 5012.41
|
||||||
|
Avg latency: 1.581357ms
|
||||||
|
Avg query latency: 1.557006ms
|
||||||
|
Avg write latency: 1.703485ms
|
||||||
|
P95 latency: 4.198041ms
|
||||||
|
P99 latency: 7.134837ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.140113498s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15922.99
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 159 MB
|
||||||
|
Avg Latency: 1.417584ms
|
||||||
|
P90 Latency: 1.918927ms
|
||||||
|
P95 Latency: 2.251932ms
|
||||||
|
P99 Latency: 3.24845ms
|
||||||
|
Bottom 10% Avg Latency: 781.19µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.390681222s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 5958.99
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 210 MB
|
||||||
|
Avg Latency: 1.446634ms
|
||||||
|
P90 Latency: 2.254246ms
|
||||||
|
P95 Latency: 2.884237ms
|
||||||
|
P99 Latency: 5.436852ms
|
||||||
|
Bottom 10% Avg Latency: 520.884µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.729378008s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2021.89
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 204 MB
|
||||||
|
Avg Latency: 382.367µs
|
||||||
|
P90 Latency: 799.193µs
|
||||||
|
P95 Latency: 904.063µs
|
||||||
|
P99 Latency: 1.193034ms
|
||||||
|
Bottom 10% Avg Latency: 1.047507ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004159666s
|
||||||
|
Total Events: 377608
|
||||||
|
Events/sec: 6293.03
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 117 MB
|
||||||
|
Avg Latency: 1.78194ms
|
||||||
|
P90 Latency: 5.391074ms
|
||||||
|
P95 Latency: 7.313999ms
|
||||||
|
P99 Latency: 11.571994ms
|
||||||
|
Bottom 10% Avg Latency: 8.16248ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003300562s
|
||||||
|
Total Events: 300761
|
||||||
|
Events/sec: 5012.41
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 133 MB
|
||||||
|
Avg Latency: 1.581357ms
|
||||||
|
P90 Latency: 3.256466ms
|
||||||
|
P95 Latency: 4.198041ms
|
||||||
|
P99 Latency: 7.134837ms
|
||||||
|
Bottom 10% Avg Latency: 4.912876ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:29:38+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
RELAY: rely-sqlite
|
||||||
|
STATUS: FAILED - Relay not responding
|
||||||
|
ERROR: Connection failed
|
||||||
194
cmd/benchmark/reports/run_20251120_160925/strfry_results.txt
Normal file
194
cmd/benchmark/reports/run_20251120_160925/strfry_results.txt
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_strfry_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763656183528413ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763656183528497ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763656183528519ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763656183528525ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763656183528536ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763656183528550ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763656183528556ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763656183528578ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763656183528584ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 16:29:43 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 16:29:43 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.202996786s
|
||||||
|
Events/sec: 15610.38
|
||||||
|
Avg latency: 1.448999ms
|
||||||
|
P90 latency: 2.008548ms
|
||||||
|
P95 latency: 2.330532ms
|
||||||
|
P99 latency: 3.434816ms
|
||||||
|
Bottom 10% Avg latency: 777.487µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 343.057172ms
|
||||||
|
Burst completed: 5000 events in 368.804651ms
|
||||||
|
Burst completed: 5000 events in 421.980578ms
|
||||||
|
Burst completed: 5000 events in 432.299904ms
|
||||||
|
Burst completed: 5000 events in 386.556991ms
|
||||||
|
Burst completed: 5000 events in 405.196753ms
|
||||||
|
Burst completed: 5000 events in 321.87791ms
|
||||||
|
Burst completed: 5000 events in 271.42499ms
|
||||||
|
Burst completed: 5000 events in 289.817431ms
|
||||||
|
Burst completed: 5000 events in 273.783645ms
|
||||||
|
Burst test completed: 50000 events in 8.519189117s, errors: 0
|
||||||
|
Events/sec: 5869.10
|
||||||
|
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.676790113s
|
||||||
|
Combined ops/sec: 2026.20
|
||||||
|
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: 385413 queries in 1m0.004991772s
|
||||||
|
Queries/sec: 6423.02
|
||||||
|
Avg query latency: 1.750064ms
|
||||||
|
P95 query latency: 7.022112ms
|
||||||
|
P99 query latency: 11.130131ms
|
||||||
|
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: 304406 operations (254406 queries, 50000 writes) in 1m0.002847365s
|
||||||
|
Operations/sec: 5073.19
|
||||||
|
Avg latency: 1.53117ms
|
||||||
|
Avg query latency: 1.533671ms
|
||||||
|
Avg write latency: 1.518448ms
|
||||||
|
P95 latency: 4.027706ms
|
||||||
|
P99 latency: 6.601701ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.202996786s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15610.38
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 101 MB
|
||||||
|
Avg Latency: 1.448999ms
|
||||||
|
P90 Latency: 2.008548ms
|
||||||
|
P95 Latency: 2.330532ms
|
||||||
|
P99 Latency: 3.434816ms
|
||||||
|
Bottom 10% Avg Latency: 777.487µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.519189117s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 5869.10
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 210 MB
|
||||||
|
Avg Latency: 1.564388ms
|
||||||
|
P90 Latency: 2.434829ms
|
||||||
|
P95 Latency: 2.893144ms
|
||||||
|
P99 Latency: 4.236454ms
|
||||||
|
Bottom 10% Avg Latency: 598.315µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.676790113s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2026.20
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 123 MB
|
||||||
|
Avg Latency: 398.546µs
|
||||||
|
P90 Latency: 824.051µs
|
||||||
|
P95 Latency: 923.8µs
|
||||||
|
P99 Latency: 1.195979ms
|
||||||
|
Bottom 10% Avg Latency: 1.080906ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004991772s
|
||||||
|
Total Events: 385413
|
||||||
|
Events/sec: 6423.02
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 133 MB
|
||||||
|
Avg Latency: 1.750064ms
|
||||||
|
P90 Latency: 5.273981ms
|
||||||
|
P95 Latency: 7.022112ms
|
||||||
|
P99 Latency: 11.130131ms
|
||||||
|
Bottom 10% Avg Latency: 7.835129ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.002847365s
|
||||||
|
Total Events: 304406
|
||||||
|
Events/sec: 5073.19
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 112 MB
|
||||||
|
Avg Latency: 1.53117ms
|
||||||
|
P90 Latency: 3.181282ms
|
||||||
|
P95 Latency: 4.027706ms
|
||||||
|
P99 Latency: 6.601701ms
|
||||||
|
Bottom 10% Avg Latency: 4.654966ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T16:33:01+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
RELAY: rely-sqlite
|
||||||
|
STATUS: FAILED - Relay not responding
|
||||||
|
ERROR: Connection failed
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-badger_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763665982729511ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763665982729576ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763665982729601ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763665982729608ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763665982729620ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763665982729639ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763665982729646ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763665982729664ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763665982729670ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 19:13:02 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 19:13:02 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.002317183s
|
||||||
|
Events/sec: 16653.80
|
||||||
|
Avg latency: 1.333202ms
|
||||||
|
P90 latency: 1.77034ms
|
||||||
|
P95 latency: 2.040484ms
|
||||||
|
P99 latency: 2.890994ms
|
||||||
|
Bottom 10% Avg latency: 755.546µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 288.855321ms
|
||||||
|
Burst completed: 5000 events in 312.543723ms
|
||||||
|
Burst completed: 5000 events in 287.863452ms
|
||||||
|
Burst completed: 5000 events in 340.503526ms
|
||||||
|
Burst completed: 5000 events in 311.944621ms
|
||||||
|
Burst completed: 5000 events in 338.563592ms
|
||||||
|
Burst completed: 5000 events in 306.545393ms
|
||||||
|
Burst completed: 5000 events in 280.038154ms
|
||||||
|
Burst completed: 5000 events in 311.22972ms
|
||||||
|
Burst completed: 5000 events in 292.735765ms
|
||||||
|
Burst test completed: 50000 events in 8.076105474s, errors: 0
|
||||||
|
Events/sec: 6191.10
|
||||||
|
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.581344169s
|
||||||
|
Combined ops/sec: 2034.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...
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_rely-sqlite_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763665779574803ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763665779574872ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763665779574900ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763665779574905ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763665779574913ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763665779574927ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763665779574932ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763665779574942ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763665779574947ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 19:09:39 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
|
||||||
|
2025/11/20 19:09:39 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 19:09:39 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.135436732s
|
||||||
|
Events/sec: 15946.74
|
||||||
|
Avg latency: 1.397968ms
|
||||||
|
P90 latency: 1.930996ms
|
||||||
|
P95 latency: 2.304287ms
|
||||||
|
P99 latency: 3.616715ms
|
||||||
|
Bottom 10% Avg latency: 755.721µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 303.872847ms
|
||||||
|
Burst completed: 5000 events in 315.659456ms
|
||||||
|
Burst completed: 5000 events in 267.06077ms
|
||||||
|
Burst completed: 5000 events in 307.361928ms
|
||||||
|
Burst completed: 5000 events in 322.693287ms
|
||||||
|
Burst completed: 5000 events in 469.035773ms
|
||||||
|
Burst completed: 5000 events in 312.67366ms
|
||||||
|
Burst completed: 5000 events in 283.102039ms
|
||||||
|
Burst completed: 5000 events in 384.589076ms
|
||||||
|
Burst completed: 5000 events in 420.423539ms
|
||||||
|
Burst test completed: 50000 events in 8.393863388s, errors: 0
|
||||||
|
Events/sec: 5956.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.674556399s
|
||||||
|
Combined ops/sec: 2026.38
|
||||||
|
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: 375290 queries in 1m0.008468905s
|
||||||
|
Queries/sec: 6253.95
|
||||||
|
Avg query latency: 1.790209ms
|
||||||
|
P95 query latency: 7.345664ms
|
||||||
|
P99 query latency: 11.918719ms
|
||||||
|
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: 314061 operations (264061 queries, 50000 writes) in 1m0.003708095s
|
||||||
|
Operations/sec: 5234.03
|
||||||
|
Avg latency: 1.477392ms
|
||||||
|
Avg query latency: 1.464385ms
|
||||||
|
Avg write latency: 1.546088ms
|
||||||
|
P95 latency: 3.780257ms
|
||||||
|
P99 latency: 5.913557ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.135436732s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15946.74
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 96 MB
|
||||||
|
Avg Latency: 1.397968ms
|
||||||
|
P90 Latency: 1.930996ms
|
||||||
|
P95 Latency: 2.304287ms
|
||||||
|
P99 Latency: 3.616715ms
|
||||||
|
Bottom 10% Avg Latency: 755.721µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.393863388s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 5956.73
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 196 MB
|
||||||
|
Avg Latency: 1.477472ms
|
||||||
|
P90 Latency: 2.319807ms
|
||||||
|
P95 Latency: 2.825169ms
|
||||||
|
P99 Latency: 4.502502ms
|
||||||
|
Bottom 10% Avg Latency: 595.131µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.674556399s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2026.38
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 142 MB
|
||||||
|
Avg Latency: 387.12µs
|
||||||
|
P90 Latency: 808.479µs
|
||||||
|
P95 Latency: 902.999µs
|
||||||
|
P99 Latency: 1.121415ms
|
||||||
|
Bottom 10% Avg Latency: 1.032694ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.008468905s
|
||||||
|
Total Events: 375290
|
||||||
|
Events/sec: 6253.95
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 114 MB
|
||||||
|
Avg Latency: 1.790209ms
|
||||||
|
P90 Latency: 5.42081ms
|
||||||
|
P95 Latency: 7.345664ms
|
||||||
|
P99 Latency: 11.918719ms
|
||||||
|
Bottom 10% Avg Latency: 8.275871ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003708095s
|
||||||
|
Total Events: 314061
|
||||||
|
Events/sec: 5234.03
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 137 MB
|
||||||
|
Avg Latency: 1.477392ms
|
||||||
|
P90 Latency: 2.984261ms
|
||||||
|
P95 Latency: 3.780257ms
|
||||||
|
P99 Latency: 5.913557ms
|
||||||
|
Bottom 10% Avg Latency: 4.281848ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T19:12:57+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
194
cmd/benchmark/reports/run_20251120_200202/aggregate_report.txt
Normal file
194
cmd/benchmark/reports/run_20251120_200202/aggregate_report.txt
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
================================================================
|
||||||
|
NOSTR RELAY BENCHMARK AGGREGATE REPORT
|
||||||
|
================================================================
|
||||||
|
Generated: 2025-11-20T20:32:25+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: 17507.10
|
||||||
|
Events/sec: 6243.12
|
||||||
|
Events/sec: 17507.10
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.223582ms
|
||||||
|
Bottom 10% Avg Latency: 698.877µs
|
||||||
|
Avg Latency: 1.178662ms
|
||||||
|
P95 Latency: 1.87223ms
|
||||||
|
P95 Latency: 2.046981ms
|
||||||
|
P95 Latency: 883.507µs
|
||||||
|
|
||||||
|
Relay: next-orly-badger
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 16840.34
|
||||||
|
Events/sec: 6128.23
|
||||||
|
Events/sec: 16840.34
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.297596ms
|
||||||
|
Bottom 10% Avg Latency: 722.094µs
|
||||||
|
Avg Latency: 1.265918ms
|
||||||
|
P95 Latency: 2.027536ms
|
||||||
|
P95 Latency: 2.302166ms
|
||||||
|
P95 Latency: 894.834µs
|
||||||
|
|
||||||
|
Relay: next-orly-dgraph
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 16563.45
|
||||||
|
Events/sec: 6132.86
|
||||||
|
Events/sec: 16563.45
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.32589ms
|
||||||
|
Bottom 10% Avg Latency: 726.176µs
|
||||||
|
Avg Latency: 1.340819ms
|
||||||
|
P95 Latency: 2.152481ms
|
||||||
|
P95 Latency: 2.37338ms
|
||||||
|
P95 Latency: 904.165µs
|
||||||
|
|
||||||
|
Relay: next-orly-neo4j
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 14622.22
|
||||||
|
Events/sec: 6182.48
|
||||||
|
Events/sec: 14622.22
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.559545ms
|
||||||
|
Bottom 10% Avg Latency: 795.698µs
|
||||||
|
Avg Latency: 1.269605ms
|
||||||
|
P95 Latency: 2.658118ms
|
||||||
|
P95 Latency: 2.293256ms
|
||||||
|
P95 Latency: 867.888µs
|
||||||
|
|
||||||
|
Relay: khatru-sqlite
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 16872.81
|
||||||
|
Events/sec: 6219.91
|
||||||
|
Events/sec: 16872.81
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.294206ms
|
||||||
|
Bottom 10% Avg Latency: 724.237µs
|
||||||
|
Avg Latency: 1.28288ms
|
||||||
|
P95 Latency: 2.011193ms
|
||||||
|
P95 Latency: 2.16732ms
|
||||||
|
P95 Latency: 868.521µs
|
||||||
|
|
||||||
|
Relay: khatru-badger
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15204.92
|
||||||
|
Events/sec: 6277.98
|
||||||
|
Events/sec: 15204.92
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.485679ms
|
||||||
|
Bottom 10% Avg Latency: 768.979µs
|
||||||
|
Avg Latency: 1.216531ms
|
||||||
|
P95 Latency: 2.501619ms
|
||||||
|
P95 Latency: 2.028348ms
|
||||||
|
P95 Latency: 862.271µs
|
||||||
|
|
||||||
|
Relay: relayer-basic
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 17272.97
|
||||||
|
Events/sec: 6207.90
|
||||||
|
Events/sec: 17272.97
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.255956ms
|
||||||
|
Bottom 10% Avg Latency: 712.498µs
|
||||||
|
Avg Latency: 1.21703ms
|
||||||
|
P95 Latency: 1.909735ms
|
||||||
|
P95 Latency: 2.233521ms
|
||||||
|
P95 Latency: 871.278µs
|
||||||
|
|
||||||
|
Relay: strfry
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 15745.79
|
||||||
|
Events/sec: 6264.53
|
||||||
|
Events/sec: 15745.79
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.415908ms
|
||||||
|
Bottom 10% Avg Latency: 739.523µs
|
||||||
|
Avg Latency: 1.153768ms
|
||||||
|
P95 Latency: 2.340716ms
|
||||||
|
P95 Latency: 2.007502ms
|
||||||
|
P95 Latency: 855.87µs
|
||||||
|
|
||||||
|
Relay: nostr-rs-relay
|
||||||
|
----------------------------------------
|
||||||
|
Status: COMPLETED
|
||||||
|
Events/sec: 17638.66
|
||||||
|
Events/sec: 6241.74
|
||||||
|
Events/sec: 17638.66
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Avg Latency: 1.18563ms
|
||||||
|
Bottom 10% Avg Latency: 646.954µs
|
||||||
|
Avg Latency: 1.182584ms
|
||||||
|
P95 Latency: 1.847889ms
|
||||||
|
P95 Latency: 2.120267ms
|
||||||
|
P95 Latency: 866.51µs
|
||||||
|
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
DETAILED RESULTS
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Individual relay reports are available in:
|
||||||
|
- /reports/run_20251120_200202/khatru-badger_results.txt
|
||||||
|
- /reports/run_20251120_200202/khatru-sqlite_results.txt
|
||||||
|
- /reports/run_20251120_200202/next-orly-badger_results.txt
|
||||||
|
- /reports/run_20251120_200202/next-orly-dgraph_results.txt
|
||||||
|
- /reports/run_20251120_200202/next-orly-neo4j_results.txt
|
||||||
|
- /reports/run_20251120_200202/nostr-rs-relay_results.txt
|
||||||
|
- /reports/run_20251120_200202/relayer-basic_results.txt
|
||||||
|
- /reports/run_20251120_200202/rely-sqlite_results.txt
|
||||||
|
- /reports/run_20251120_200202/strfry_results.txt
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
BENCHMARK COMPARISON TABLE
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Relay Status Peak Tput/s Avg Latency Success Rate
|
||||||
|
---- ------ ----------- ----------- ------------
|
||||||
|
rely-sqlite OK 17507.10 1.223582ms 100.0%
|
||||||
|
next-orly-badger OK 16840.34 1.297596ms 100.0%
|
||||||
|
next-orly-dgraph OK 16563.45 1.32589ms 100.0%
|
||||||
|
next-orly-neo4j OK 14622.22 1.559545ms 100.0%
|
||||||
|
khatru-sqlite OK 16872.81 1.294206ms 100.0%
|
||||||
|
khatru-badger OK 15204.92 1.485679ms 100.0%
|
||||||
|
relayer-basic OK 17272.97 1.255956ms 100.0%
|
||||||
|
strfry OK 15745.79 1.415908ms 100.0%
|
||||||
|
nostr-rs-relay OK 17638.66 1.18563ms 100.0%
|
||||||
|
|
||||||
|
================================================================
|
||||||
|
End of Report
|
||||||
|
================================================================
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_khatru-badger_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763669935332908ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763669935332973ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763669935332998ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763669935333005ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763669935333040ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763669935333094ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763669935333104ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763669935333122ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763669935333128ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:18:55 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:18:55 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.288409868s
|
||||||
|
Events/sec: 15204.92
|
||||||
|
Avg latency: 1.485679ms
|
||||||
|
P90 latency: 2.12405ms
|
||||||
|
P95 latency: 2.501619ms
|
||||||
|
P99 latency: 3.714496ms
|
||||||
|
Bottom 10% Avg latency: 768.979µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 324.753031ms
|
||||||
|
Burst completed: 5000 events in 291.367672ms
|
||||||
|
Burst completed: 5000 events in 301.649121ms
|
||||||
|
Burst completed: 5000 events in 328.41364ms
|
||||||
|
Burst completed: 5000 events in 281.252591ms
|
||||||
|
Burst completed: 5000 events in 328.008049ms
|
||||||
|
Burst completed: 5000 events in 310.281138ms
|
||||||
|
Burst completed: 5000 events in 260.825936ms
|
||||||
|
Burst completed: 5000 events in 270.80417ms
|
||||||
|
Burst completed: 5000 events in 258.334978ms
|
||||||
|
Burst test completed: 50000 events in 7.964347994s, errors: 0
|
||||||
|
Events/sec: 6277.98
|
||||||
|
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.423948265s
|
||||||
|
Combined ops/sec: 2047.17
|
||||||
|
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: 415254 queries in 1m0.003601442s
|
||||||
|
Queries/sec: 6920.48
|
||||||
|
Avg query latency: 1.603002ms
|
||||||
|
P95 query latency: 6.256605ms
|
||||||
|
P99 query latency: 9.899737ms
|
||||||
|
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: 325890 operations (275890 queries, 50000 writes) in 1m0.003099307s
|
||||||
|
Operations/sec: 5431.22
|
||||||
|
Avg latency: 1.378137ms
|
||||||
|
Avg query latency: 1.366065ms
|
||||||
|
Avg write latency: 1.44475ms
|
||||||
|
P95 latency: 3.427873ms
|
||||||
|
P99 latency: 5.340723ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.288409868s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15204.92
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 126 MB
|
||||||
|
Avg Latency: 1.485679ms
|
||||||
|
P90 Latency: 2.12405ms
|
||||||
|
P95 Latency: 2.501619ms
|
||||||
|
P99 Latency: 3.714496ms
|
||||||
|
Bottom 10% Avg Latency: 768.979µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 7.964347994s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6277.98
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 161 MB
|
||||||
|
Avg Latency: 1.216531ms
|
||||||
|
P90 Latency: 1.748877ms
|
||||||
|
P95 Latency: 2.028348ms
|
||||||
|
P99 Latency: 2.847978ms
|
||||||
|
Bottom 10% Avg Latency: 540.737µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.423948265s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2047.17
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 132 MB
|
||||||
|
Avg Latency: 369.523µs
|
||||||
|
P90 Latency: 775.926µs
|
||||||
|
P95 Latency: 862.271µs
|
||||||
|
P99 Latency: 1.05139ms
|
||||||
|
Bottom 10% Avg Latency: 976.651µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.003601442s
|
||||||
|
Total Events: 415254
|
||||||
|
Events/sec: 6920.48
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 118 MB
|
||||||
|
Avg Latency: 1.603002ms
|
||||||
|
P90 Latency: 4.760818ms
|
||||||
|
P95 Latency: 6.256605ms
|
||||||
|
P99 Latency: 9.899737ms
|
||||||
|
Bottom 10% Avg Latency: 6.959951ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003099307s
|
||||||
|
Total Events: 325890
|
||||||
|
Events/sec: 5431.22
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 139 MB
|
||||||
|
Avg Latency: 1.378137ms
|
||||||
|
P90 Latency: 2.762527ms
|
||||||
|
P95 Latency: 3.427873ms
|
||||||
|
P99 Latency: 5.340723ms
|
||||||
|
Bottom 10% Avg Latency: 3.863556ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:22:13+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_khatru-sqlite_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763669732839163ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763669732839345ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763669732839423ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763669732839433ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763669732839447ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763669732839469ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763669732839476ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763669732839496ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763669732839504ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:15:32 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:15:32 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 2.963346692s
|
||||||
|
Events/sec: 16872.81
|
||||||
|
Avg latency: 1.294206ms
|
||||||
|
P90 latency: 1.715271ms
|
||||||
|
P95 latency: 2.011193ms
|
||||||
|
P99 latency: 3.190375ms
|
||||||
|
Bottom 10% Avg latency: 724.237µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 291.855294ms
|
||||||
|
Burst completed: 5000 events in 316.021528ms
|
||||||
|
Burst completed: 5000 events in 282.131412ms
|
||||||
|
Burst completed: 5000 events in 299.105944ms
|
||||||
|
Burst completed: 5000 events in 267.419607ms
|
||||||
|
Burst completed: 5000 events in 325.020614ms
|
||||||
|
Burst completed: 5000 events in 305.340591ms
|
||||||
|
Burst completed: 5000 events in 271.0695ms
|
||||||
|
Burst completed: 5000 events in 390.24426ms
|
||||||
|
Burst completed: 5000 events in 284.381622ms
|
||||||
|
Burst test completed: 50000 events in 8.038707278s, errors: 0
|
||||||
|
Events/sec: 6219.91
|
||||||
|
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.489286115s
|
||||||
|
Combined ops/sec: 2041.71
|
||||||
|
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: 420505 queries in 1m0.003538635s
|
||||||
|
Queries/sec: 7008.00
|
||||||
|
Avg query latency: 1.572366ms
|
||||||
|
P95 query latency: 6.018765ms
|
||||||
|
P99 query latency: 9.565009ms
|
||||||
|
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: 323946 operations (273946 queries, 50000 writes) in 1m0.003027777s
|
||||||
|
Operations/sec: 5398.83
|
||||||
|
Avg latency: 1.414998ms
|
||||||
|
Avg query latency: 1.390113ms
|
||||||
|
Avg write latency: 1.551346ms
|
||||||
|
P95 latency: 3.512421ms
|
||||||
|
P99 latency: 5.637893ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 2.963346692s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 16872.81
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 205 MB
|
||||||
|
Avg Latency: 1.294206ms
|
||||||
|
P90 Latency: 1.715271ms
|
||||||
|
P95 Latency: 2.011193ms
|
||||||
|
P99 Latency: 3.190375ms
|
||||||
|
Bottom 10% Avg Latency: 724.237µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.038707278s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6219.91
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 208 MB
|
||||||
|
Avg Latency: 1.28288ms
|
||||||
|
P90 Latency: 1.849315ms
|
||||||
|
P95 Latency: 2.16732ms
|
||||||
|
P99 Latency: 3.046622ms
|
||||||
|
Bottom 10% Avg Latency: 581.238µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.489286115s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2041.71
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 199 MB
|
||||||
|
Avg Latency: 372.036µs
|
||||||
|
P90 Latency: 778.229µs
|
||||||
|
P95 Latency: 868.521µs
|
||||||
|
P99 Latency: 1.078812ms
|
||||||
|
Bottom 10% Avg Latency: 1.036235ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.003538635s
|
||||||
|
Total Events: 420505
|
||||||
|
Events/sec: 7008.00
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 124 MB
|
||||||
|
Avg Latency: 1.572366ms
|
||||||
|
P90 Latency: 4.639693ms
|
||||||
|
P95 Latency: 6.018765ms
|
||||||
|
P99 Latency: 9.565009ms
|
||||||
|
Bottom 10% Avg Latency: 6.728349ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003027777s
|
||||||
|
Total Events: 323946
|
||||||
|
Events/sec: 5398.83
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 104 MB
|
||||||
|
Avg Latency: 1.414998ms
|
||||||
|
P90 Latency: 2.807811ms
|
||||||
|
P95 Latency: 3.512421ms
|
||||||
|
P99 Latency: 5.637893ms
|
||||||
|
Bottom 10% Avg Latency: 4.028549ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:18:50+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-badger_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763669124600787ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763669124600839ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763669124600865ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763669124600871ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763669124600882ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763669124600896ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763669124600900ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763669124600913ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763669124600919ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:05:24 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:05:24 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 2.969061628s
|
||||||
|
Events/sec: 16840.34
|
||||||
|
Avg latency: 1.297596ms
|
||||||
|
P90 latency: 1.734511ms
|
||||||
|
P95 latency: 2.027536ms
|
||||||
|
P99 latency: 2.961433ms
|
||||||
|
Bottom 10% Avg latency: 722.094µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 276.383103ms
|
||||||
|
Burst completed: 5000 events in 347.587541ms
|
||||||
|
Burst completed: 5000 events in 381.7012ms
|
||||||
|
Burst completed: 5000 events in 339.439731ms
|
||||||
|
Burst completed: 5000 events in 292.19598ms
|
||||||
|
Burst completed: 5000 events in 338.289935ms
|
||||||
|
Burst completed: 5000 events in 335.224221ms
|
||||||
|
Burst completed: 5000 events in 271.373815ms
|
||||||
|
Burst completed: 5000 events in 290.588853ms
|
||||||
|
Burst completed: 5000 events in 278.611302ms
|
||||||
|
Burst test completed: 50000 events in 8.15896297s, errors: 0
|
||||||
|
Events/sec: 6128.23
|
||||||
|
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.531766787s
|
||||||
|
Combined ops/sec: 2038.17
|
||||||
|
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: 406469 queries in 1m0.004230933s
|
||||||
|
Queries/sec: 6774.01
|
||||||
|
Avg query latency: 1.643787ms
|
||||||
|
P95 query latency: 6.491386ms
|
||||||
|
P99 query latency: 10.300562ms
|
||||||
|
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: 321891 operations (271891 queries, 50000 writes) in 1m0.003425476s
|
||||||
|
Operations/sec: 5364.54
|
||||||
|
Avg latency: 1.412817ms
|
||||||
|
Avg query latency: 1.395014ms
|
||||||
|
Avg write latency: 1.509627ms
|
||||||
|
P95 latency: 3.531794ms
|
||||||
|
P99 latency: 5.566648ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 2.969061628s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 16840.34
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 163 MB
|
||||||
|
Avg Latency: 1.297596ms
|
||||||
|
P90 Latency: 1.734511ms
|
||||||
|
P95 Latency: 2.027536ms
|
||||||
|
P99 Latency: 2.961433ms
|
||||||
|
Bottom 10% Avg Latency: 722.094µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.15896297s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6128.23
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 204 MB
|
||||||
|
Avg Latency: 1.265918ms
|
||||||
|
P90 Latency: 1.967513ms
|
||||||
|
P95 Latency: 2.302166ms
|
||||||
|
P99 Latency: 3.178464ms
|
||||||
|
Bottom 10% Avg Latency: 442.546µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.531766787s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2038.17
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 140 MB
|
||||||
|
Avg Latency: 385.858µs
|
||||||
|
P90 Latency: 804.273µs
|
||||||
|
P95 Latency: 894.834µs
|
||||||
|
P99 Latency: 1.119529ms
|
||||||
|
Bottom 10% Avg Latency: 1.040121ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.004230933s
|
||||||
|
Total Events: 406469
|
||||||
|
Events/sec: 6774.01
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 120 MB
|
||||||
|
Avg Latency: 1.643787ms
|
||||||
|
P90 Latency: 4.902634ms
|
||||||
|
P95 Latency: 6.491386ms
|
||||||
|
P99 Latency: 10.300562ms
|
||||||
|
Bottom 10% Avg Latency: 7.252457ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003425476s
|
||||||
|
Total Events: 321891
|
||||||
|
Events/sec: 5364.54
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 120 MB
|
||||||
|
Avg Latency: 1.412817ms
|
||||||
|
P90 Latency: 2.823412ms
|
||||||
|
P95 Latency: 3.531794ms
|
||||||
|
P99 Latency: 5.566648ms
|
||||||
|
Bottom 10% Avg Latency: 4.024306ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:08:42+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-dgraph_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763669327215819ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763669327215873ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763669327215897ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763669327215903ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763669327215913ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763669327215942ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763669327215950ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763669327215962ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763669327215968ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:08:47 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:08:47 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.018694521s
|
||||||
|
Events/sec: 16563.45
|
||||||
|
Avg latency: 1.32589ms
|
||||||
|
P90 latency: 1.831543ms
|
||||||
|
P95 latency: 2.152481ms
|
||||||
|
P99 latency: 3.113153ms
|
||||||
|
Bottom 10% Avg latency: 726.176µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 292.171946ms
|
||||||
|
Burst completed: 5000 events in 318.508865ms
|
||||||
|
Burst completed: 5000 events in 366.003137ms
|
||||||
|
Burst completed: 5000 events in 299.686978ms
|
||||||
|
Burst completed: 5000 events in 285.823742ms
|
||||||
|
Burst completed: 5000 events in 329.930802ms
|
||||||
|
Burst completed: 5000 events in 297.041485ms
|
||||||
|
Burst completed: 5000 events in 268.707865ms
|
||||||
|
Burst completed: 5000 events in 397.413434ms
|
||||||
|
Burst completed: 5000 events in 290.662828ms
|
||||||
|
Burst test completed: 50000 events in 8.152801342s, errors: 0
|
||||||
|
Events/sec: 6132.86
|
||||||
|
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.646214936s
|
||||||
|
Combined ops/sec: 2028.71
|
||||||
|
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: 403337 queries in 1m0.003445945s
|
||||||
|
Queries/sec: 6721.90
|
||||||
|
Avg query latency: 1.650663ms
|
||||||
|
P95 query latency: 6.533977ms
|
||||||
|
P99 query latency: 10.449883ms
|
||||||
|
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: 319133 operations (269133 queries, 50000 writes) in 1m0.003897433s
|
||||||
|
Operations/sec: 5318.54
|
||||||
|
Avg latency: 1.45724ms
|
||||||
|
Avg query latency: 1.423521ms
|
||||||
|
Avg write latency: 1.638735ms
|
||||||
|
P95 latency: 3.643619ms
|
||||||
|
P99 latency: 5.821572ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.018694521s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 16563.45
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 101 MB
|
||||||
|
Avg Latency: 1.32589ms
|
||||||
|
P90 Latency: 1.831543ms
|
||||||
|
P95 Latency: 2.152481ms
|
||||||
|
P99 Latency: 3.113153ms
|
||||||
|
Bottom 10% Avg Latency: 726.176µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.152801342s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6132.86
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 251 MB
|
||||||
|
Avg Latency: 1.340819ms
|
||||||
|
P90 Latency: 1.980055ms
|
||||||
|
P95 Latency: 2.37338ms
|
||||||
|
P99 Latency: 3.737908ms
|
||||||
|
Bottom 10% Avg Latency: 567.81µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.646214936s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2028.71
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 174 MB
|
||||||
|
Avg Latency: 387.51µs
|
||||||
|
P90 Latency: 813.774µs
|
||||||
|
P95 Latency: 904.165µs
|
||||||
|
P99 Latency: 1.114634ms
|
||||||
|
Bottom 10% Avg Latency: 1.027038ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.003445945s
|
||||||
|
Total Events: 403337
|
||||||
|
Events/sec: 6721.90
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 148 MB
|
||||||
|
Avg Latency: 1.650663ms
|
||||||
|
P90 Latency: 4.924325ms
|
||||||
|
P95 Latency: 6.533977ms
|
||||||
|
P99 Latency: 10.449883ms
|
||||||
|
Bottom 10% Avg Latency: 7.309323ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003897433s
|
||||||
|
Total Events: 319133
|
||||||
|
Events/sec: 5318.54
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 131 MB
|
||||||
|
Avg Latency: 1.45724ms
|
||||||
|
P90 Latency: 2.888865ms
|
||||||
|
P95 Latency: 3.643619ms
|
||||||
|
P99 Latency: 5.821572ms
|
||||||
|
Bottom 10% Avg Latency: 4.174905ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:12:04+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_next-orly-neo4j_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763669529971033ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763669529971109ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763669529971132ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763669529971137ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763669529971148ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763669529971161ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763669529971166ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763669529971175ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763669529971181ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:12:09 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:12:09 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.41945316s
|
||||||
|
Events/sec: 14622.22
|
||||||
|
Avg latency: 1.559545ms
|
||||||
|
P90 latency: 2.247167ms
|
||||||
|
P95 latency: 2.658118ms
|
||||||
|
P99 latency: 3.995878ms
|
||||||
|
Bottom 10% Avg latency: 795.698µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 295.869274ms
|
||||||
|
Burst completed: 5000 events in 462.260099ms
|
||||||
|
Burst completed: 5000 events in 296.659792ms
|
||||||
|
Burst completed: 5000 events in 291.58686ms
|
||||||
|
Burst completed: 5000 events in 283.019359ms
|
||||||
|
Burst completed: 5000 events in 333.11738ms
|
||||||
|
Burst completed: 5000 events in 297.160854ms
|
||||||
|
Burst completed: 5000 events in 262.623572ms
|
||||||
|
Burst completed: 5000 events in 287.679452ms
|
||||||
|
Burst completed: 5000 events in 272.330641ms
|
||||||
|
Burst test completed: 50000 events in 8.087375023s, errors: 0
|
||||||
|
Events/sec: 6182.48
|
||||||
|
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.430407247s
|
||||||
|
Combined ops/sec: 2046.63
|
||||||
|
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: 404255 queries in 1m0.00592055s
|
||||||
|
Queries/sec: 6736.92
|
||||||
|
Avg query latency: 1.650794ms
|
||||||
|
P95 query latency: 6.53105ms
|
||||||
|
P99 query latency: 10.385042ms
|
||||||
|
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: 314542 operations (264542 queries, 50000 writes) in 1m0.002714905s
|
||||||
|
Operations/sec: 5242.13
|
||||||
|
Avg latency: 1.461702ms
|
||||||
|
Avg query latency: 1.440494ms
|
||||||
|
Avg write latency: 1.573909ms
|
||||||
|
P95 latency: 3.707878ms
|
||||||
|
P99 latency: 6.186047ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.41945316s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 14622.22
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 101 MB
|
||||||
|
Avg Latency: 1.559545ms
|
||||||
|
P90 Latency: 2.247167ms
|
||||||
|
P95 Latency: 2.658118ms
|
||||||
|
P99 Latency: 3.995878ms
|
||||||
|
Bottom 10% Avg Latency: 795.698µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.087375023s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6182.48
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 204 MB
|
||||||
|
Avg Latency: 1.269605ms
|
||||||
|
P90 Latency: 1.879279ms
|
||||||
|
P95 Latency: 2.293256ms
|
||||||
|
P99 Latency: 3.759611ms
|
||||||
|
Bottom 10% Avg Latency: 515.108µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.430407247s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2046.63
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 178 MB
|
||||||
|
Avg Latency: 363.59µs
|
||||||
|
P90 Latency: 771.255µs
|
||||||
|
P95 Latency: 867.888µs
|
||||||
|
P99 Latency: 1.099979ms
|
||||||
|
Bottom 10% Avg Latency: 996.877µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.00592055s
|
||||||
|
Total Events: 404255
|
||||||
|
Events/sec: 6736.92
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 129 MB
|
||||||
|
Avg Latency: 1.650794ms
|
||||||
|
P90 Latency: 4.922944ms
|
||||||
|
P95 Latency: 6.53105ms
|
||||||
|
P99 Latency: 10.385042ms
|
||||||
|
Bottom 10% Avg Latency: 7.275184ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.002714905s
|
||||||
|
Total Events: 314542
|
||||||
|
Events/sec: 5242.13
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 132 MB
|
||||||
|
Avg Latency: 1.461702ms
|
||||||
|
P90 Latency: 2.939737ms
|
||||||
|
P95 Latency: 3.707878ms
|
||||||
|
P99 Latency: 6.186047ms
|
||||||
|
Bottom 10% Avg Latency: 4.332858ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:15:27+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_nostr-rs-relay_8
|
Data Directory: /tmp/benchmark_nostr-rs-relay_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763619392357418ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763670543093453ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763619392357482ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763670543093533ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763619392357506ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763670543093555ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763619392357513ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763670543093560ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763619392357524ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763670543093572ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763619392357540ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763670543093586ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763619392357546ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763670543093591ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763619392357561ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763670543093614ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763619392357568ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763670543093619ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 06:16:32 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 20:29:03 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 06:16:32 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 20:29:03 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.772157487s
|
Duration: 2.834683217s
|
||||||
Events/sec: 18036.49
|
Events/sec: 17638.66
|
||||||
Avg latency: 1.14847ms
|
Avg latency: 1.18563ms
|
||||||
P90 latency: 1.494791ms
|
P90 latency: 1.576272ms
|
||||||
P95 latency: 1.723577ms
|
P95 latency: 1.847889ms
|
||||||
P99 latency: 2.482173ms
|
P99 latency: 2.69928ms
|
||||||
Bottom 10% Avg latency: 653.417µs
|
Bottom 10% Avg latency: 646.954µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 268.738605ms
|
Burst completed: 5000 events in 288.243162ms
|
||||||
Burst completed: 5000 events in 303.337341ms
|
Burst completed: 5000 events in 295.639176ms
|
||||||
Burst completed: 5000 events in 271.31493ms
|
Burst completed: 5000 events in 266.183046ms
|
||||||
Burst completed: 5000 events in 306.45637ms
|
Burst completed: 5000 events in 289.772997ms
|
||||||
Burst completed: 5000 events in 277.933503ms
|
Burst completed: 5000 events in 346.857517ms
|
||||||
Burst completed: 5000 events in 329.682206ms
|
Burst completed: 5000 events in 392.30016ms
|
||||||
Burst completed: 5000 events in 299.558536ms
|
Burst completed: 5000 events in 316.952072ms
|
||||||
Burst completed: 5000 events in 308.438271ms
|
Burst completed: 5000 events in 278.495452ms
|
||||||
Burst completed: 5000 events in 325.963716ms
|
Burst completed: 5000 events in 269.495766ms
|
||||||
Burst completed: 5000 events in 268.183599ms
|
Burst completed: 5000 events in 259.647834ms
|
||||||
Burst test completed: 50000 events in 7.964171204s, errors: 0
|
Burst test completed: 50000 events in 8.010584112s, errors: 0
|
||||||
Events/sec: 6278.12
|
Events/sec: 6241.74
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.476816258s
|
Mixed test completed: 25000 writes, 25000 reads in 24.436170149s
|
||||||
Combined ops/sec: 2042.75
|
Combined ops/sec: 2046.15
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 418186 queries in 1m0.003766058s
|
Query test completed: 420104 queries in 1m0.004812476s
|
||||||
Queries/sec: 6969.33
|
Queries/sec: 7001.17
|
||||||
Avg query latency: 1.58101ms
|
Avg query latency: 1.581786ms
|
||||||
P95 query latency: 6.141965ms
|
P95 query latency: 6.095087ms
|
||||||
P99 query latency: 9.665876ms
|
P99 query latency: 9.681457ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 324142 operations (274142 queries, 50000 writes) in 1m0.003303897s
|
Concurrent test completed: 308305 operations (258305 queries, 50000 writes) in 1m0.003332271s
|
||||||
Operations/sec: 5402.07
|
Operations/sec: 5138.13
|
||||||
Avg latency: 1.412001ms
|
Avg latency: 1.532137ms
|
||||||
Avg query latency: 1.390798ms
|
Avg query latency: 1.49713ms
|
||||||
Avg write latency: 1.528256ms
|
Avg write latency: 1.712984ms
|
||||||
P95 latency: 3.493684ms
|
P95 latency: 3.933782ms
|
||||||
P99 latency: 5.810191ms
|
P99 latency: 6.685993ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.772157487s
|
Duration: 2.834683217s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 18036.49
|
Events/sec: 17638.66
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 151 MB
|
Memory Used: 88 MB
|
||||||
Avg Latency: 1.14847ms
|
Avg Latency: 1.18563ms
|
||||||
P90 Latency: 1.494791ms
|
P90 Latency: 1.576272ms
|
||||||
P95 Latency: 1.723577ms
|
P95 Latency: 1.847889ms
|
||||||
P99 Latency: 2.482173ms
|
P99 Latency: 2.69928ms
|
||||||
Bottom 10% Avg Latency: 653.417µs
|
Bottom 10% Avg Latency: 646.954µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.964171204s
|
Duration: 8.010584112s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6278.12
|
Events/sec: 6241.74
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 210 MB
|
Memory Used: 150 MB
|
||||||
Avg Latency: 1.18248ms
|
Avg Latency: 1.182584ms
|
||||||
P90 Latency: 1.718126ms
|
P90 Latency: 1.77976ms
|
||||||
P95 Latency: 2.000325ms
|
P95 Latency: 2.120267ms
|
||||||
P99 Latency: 2.834856ms
|
P99 Latency: 3.024349ms
|
||||||
Bottom 10% Avg Latency: 480.184µs
|
Bottom 10% Avg Latency: 448.582µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.476816258s
|
Duration: 24.436170149s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2042.75
|
Events/sec: 2046.15
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 197 MB
|
Memory Used: 135 MB
|
||||||
Avg Latency: 360.712µs
|
Avg Latency: 369.8µs
|
||||||
P90 Latency: 757.895µs
|
P90 Latency: 773.463µs
|
||||||
P95 Latency: 849.41µs
|
P95 Latency: 866.51µs
|
||||||
P99 Latency: 1.066494ms
|
P99 Latency: 1.074516ms
|
||||||
Bottom 10% Avg Latency: 991.825µs
|
Bottom 10% Avg Latency: 1.00298ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.003766058s
|
Duration: 1m0.004812476s
|
||||||
Total Events: 418186
|
Total Events: 420104
|
||||||
Events/sec: 6969.33
|
Events/sec: 7001.17
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 139 MB
|
Memory Used: 151 MB
|
||||||
Avg Latency: 1.58101ms
|
Avg Latency: 1.581786ms
|
||||||
P90 Latency: 4.686218ms
|
P90 Latency: 4.688809ms
|
||||||
P95 Latency: 6.141965ms
|
P95 Latency: 6.095087ms
|
||||||
P99 Latency: 9.665876ms
|
P99 Latency: 9.681457ms
|
||||||
Bottom 10% Avg Latency: 6.835975ms
|
Bottom 10% Avg Latency: 6.825004ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.003303897s
|
Duration: 1m0.003332271s
|
||||||
Total Events: 324142
|
Total Events: 308305
|
||||||
Events/sec: 5402.07
|
Events/sec: 5138.13
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 93 MB
|
Memory Used: 98 MB
|
||||||
Avg Latency: 1.412001ms
|
Avg Latency: 1.532137ms
|
||||||
P90 Latency: 2.782417ms
|
P90 Latency: 3.100785ms
|
||||||
P95 Latency: 3.493684ms
|
P95 Latency: 3.933782ms
|
||||||
P99 Latency: 5.810191ms
|
P99 Latency: 6.685993ms
|
||||||
Bottom 10% Avg Latency: 4.069703ms
|
Bottom 10% Avg Latency: 4.60825ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_nostr-rs-relay_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_nostr-rs-relay_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_nostr-rs-relay_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: nostr-rs-relay
|
RELAY_NAME: nostr-rs-relay
|
||||||
RELAY_URL: ws://nostr-rs-relay:8080
|
RELAY_URL: ws://nostr-rs-relay:8080
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:19:49+00:00
|
TEST_TIMESTAMP: 2025-11-20T20:32:20+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
Starting Nostr Relay Benchmark (Badger Backend)
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
Data Directory: /tmp/benchmark_relayer-basic_8
|
Data Directory: /tmp/benchmark_relayer-basic_8
|
||||||
Events: 50000, Workers: 24, Duration: 1m0s
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
1763618988175240ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
1763670138131829ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
1763618988175308ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
1763670138131898ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
1763618988175330ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
1763670138131920ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
1763618988175335ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
1763670138131925ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
1763618988175344ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
1763670138131932ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
1763618988175357ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
1763670138131949ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
1763618988175362ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
1763670138131956ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
1763618988175372ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
1763670138131970ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
1763618988175378ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
1763670138131976ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
╔════════════════════════════════════════════════════════╗
|
╔════════════════════════════════════════════════════════╗
|
||||||
║ BADGER BACKEND BENCHMARK SUITE ║
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
@@ -19,32 +19,32 @@ Events: 50000, Workers: 24, Duration: 1m0s
|
|||||||
RunPeakThroughputTest (Badger)..
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
=== Peak Throughput Test ===
|
=== Peak Throughput Test ===
|
||||||
2025/11/20 06:09:48 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
2025/11/20 20:22:18 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
2025/11/20 06:09:48 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
2025/11/20 20:22:18 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
Events saved: 50000/50000 (100.0%), errors: 0
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
Duration: 2.781810292s
|
Duration: 2.894695787s
|
||||||
Events/sec: 17973.91
|
Events/sec: 17272.97
|
||||||
Avg latency: 1.159149ms
|
Avg latency: 1.255956ms
|
||||||
P90 latency: 1.490872ms
|
P90 latency: 1.664187ms
|
||||||
P95 latency: 1.737633ms
|
P95 latency: 1.909735ms
|
||||||
P99 latency: 2.771573ms
|
P99 latency: 2.638381ms
|
||||||
Bottom 10% Avg latency: 666.22µs
|
Bottom 10% Avg latency: 712.498µs
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunBurstPatternTest (Badger)..
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
=== Burst Pattern Test ===
|
=== Burst Pattern Test ===
|
||||||
Burst completed: 5000 events in 271.703938ms
|
Burst completed: 5000 events in 283.945575ms
|
||||||
Burst completed: 5000 events in 317.584424ms
|
Burst completed: 5000 events in 292.547115ms
|
||||||
Burst completed: 5000 events in 272.548659ms
|
Burst completed: 5000 events in 265.116118ms
|
||||||
Burst completed: 5000 events in 289.808915ms
|
Burst completed: 5000 events in 293.14728ms
|
||||||
Burst completed: 5000 events in 275.401318ms
|
Burst completed: 5000 events in 279.669829ms
|
||||||
Burst completed: 5000 events in 318.927487ms
|
Burst completed: 5000 events in 336.159523ms
|
||||||
Burst completed: 5000 events in 295.454518ms
|
Burst completed: 5000 events in 425.381146ms
|
||||||
Burst completed: 5000 events in 256.688206ms
|
Burst completed: 5000 events in 307.31666ms
|
||||||
Burst completed: 5000 events in 286.811644ms
|
Burst completed: 5000 events in 282.776535ms
|
||||||
Burst completed: 5000 events in 264.309727ms
|
Burst completed: 5000 events in 280.815353ms
|
||||||
Burst test completed: 50000 events in 7.856524268s, errors: 0
|
Burst test completed: 50000 events in 8.054248885s, errors: 0
|
||||||
Events/sec: 6364.14
|
Events/sec: 6207.90
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunMixedReadWriteTest (Badger)..
|
RunMixedReadWriteTest (Badger)..
|
||||||
|
|
||||||
@@ -62,8 +62,8 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Mixed test completed: 25000 writes, 25000 reads in 24.510988729s
|
Mixed test completed: 25000 writes, 25000 reads in 24.441579305s
|
||||||
Combined ops/sec: 2039.90
|
Combined ops/sec: 2045.69
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunQueryTest (Badger)..
|
RunQueryTest (Badger)..
|
||||||
|
|
||||||
@@ -75,11 +75,11 @@ Generated 10000 events:
|
|||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Pre-populating database with 10000 events for query tests...
|
Pre-populating database with 10000 events for query tests...
|
||||||
Query test completed: 418829 queries in 1m0.003072978s
|
Query test completed: 415731 queries in 1m0.004450095s
|
||||||
Queries/sec: 6980.13
|
Queries/sec: 6928.34
|
||||||
Avg query latency: 1.589663ms
|
Avg query latency: 1.605783ms
|
||||||
P95 query latency: 6.123164ms
|
P95 query latency: 6.196926ms
|
||||||
P99 query latency: 9.772382ms
|
P99 query latency: 9.937346ms
|
||||||
Wiping database between tests...
|
Wiping database between tests...
|
||||||
RunConcurrentQueryStoreTest (Badger)..
|
RunConcurrentQueryStoreTest (Badger)..
|
||||||
|
|
||||||
@@ -97,13 +97,13 @@ Generated 50000 events:
|
|||||||
All events are unique (incremental timestamps)
|
All events are unique (incremental timestamps)
|
||||||
All events are properly signed
|
All events are properly signed
|
||||||
|
|
||||||
Concurrent test completed: 325492 operations (275492 queries, 50000 writes) in 1m0.002664568s
|
Concurrent test completed: 322255 operations (272255 queries, 50000 writes) in 1m0.003382114s
|
||||||
Operations/sec: 5424.63
|
Operations/sec: 5370.61
|
||||||
Avg latency: 1.392378ms
|
Avg latency: 1.423539ms
|
||||||
Avg query latency: 1.377366ms
|
Avg query latency: 1.403109ms
|
||||||
Avg write latency: 1.475091ms
|
Avg write latency: 1.534783ms
|
||||||
P95 latency: 3.499432ms
|
P95 latency: 3.538928ms
|
||||||
P99 latency: 5.584828ms
|
P99 latency: 5.905702ms
|
||||||
|
|
||||||
=== Badger benchmark completed ===
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
@@ -113,73 +113,73 @@ BENCHMARK REPORT
|
|||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
Test: Peak Throughput
|
Test: Peak Throughput
|
||||||
Duration: 2.781810292s
|
Duration: 2.894695787s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 17973.91
|
Events/sec: 17272.97
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 103 MB
|
Memory Used: 207 MB
|
||||||
Avg Latency: 1.159149ms
|
Avg Latency: 1.255956ms
|
||||||
P90 Latency: 1.490872ms
|
P90 Latency: 1.664187ms
|
||||||
P95 Latency: 1.737633ms
|
P95 Latency: 1.909735ms
|
||||||
P99 Latency: 2.771573ms
|
P99 Latency: 2.638381ms
|
||||||
Bottom 10% Avg Latency: 666.22µs
|
Bottom 10% Avg Latency: 712.498µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Burst Pattern
|
Test: Burst Pattern
|
||||||
Duration: 7.856524268s
|
Duration: 8.054248885s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 6364.14
|
Events/sec: 6207.90
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 205 MB
|
Memory Used: 205 MB
|
||||||
Avg Latency: 1.075436ms
|
Avg Latency: 1.21703ms
|
||||||
P90 Latency: 1.553ms
|
P90 Latency: 1.859279ms
|
||||||
P95 Latency: 1.805733ms
|
P95 Latency: 2.233521ms
|
||||||
P99 Latency: 2.664269ms
|
P99 Latency: 3.436661ms
|
||||||
Bottom 10% Avg Latency: 425.324µs
|
Bottom 10% Avg Latency: 441.188µs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Mixed Read/Write
|
Test: Mixed Read/Write
|
||||||
Duration: 24.510988729s
|
Duration: 24.441579305s
|
||||||
Total Events: 50000
|
Total Events: 50000
|
||||||
Events/sec: 2039.90
|
Events/sec: 2045.69
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 215 MB
|
Memory Used: 177 MB
|
||||||
Avg Latency: 374.563µs
|
Avg Latency: 375.675µs
|
||||||
P90 Latency: 783.484µs
|
P90 Latency: 782.189µs
|
||||||
P95 Latency: 865.831µs
|
P95 Latency: 871.278µs
|
||||||
P99 Latency: 1.062355ms
|
P99 Latency: 1.106456ms
|
||||||
Bottom 10% Avg Latency: 997.615µs
|
Bottom 10% Avg Latency: 1.039345ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Query Performance
|
Test: Query Performance
|
||||||
Duration: 1m0.003072978s
|
Duration: 1m0.004450095s
|
||||||
Total Events: 418829
|
Total Events: 415731
|
||||||
Events/sec: 6980.13
|
Events/sec: 6928.34
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 128 MB
|
Memory Used: 114 MB
|
||||||
Avg Latency: 1.589663ms
|
Avg Latency: 1.605783ms
|
||||||
P90 Latency: 4.685383ms
|
P90 Latency: 4.727348ms
|
||||||
P95 Latency: 6.123164ms
|
P95 Latency: 6.196926ms
|
||||||
P99 Latency: 9.772382ms
|
P99 Latency: 9.937346ms
|
||||||
Bottom 10% Avg Latency: 6.841908ms
|
Bottom 10% Avg Latency: 6.948373ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Test: Concurrent Query/Store
|
Test: Concurrent Query/Store
|
||||||
Duration: 1m0.002664568s
|
Duration: 1m0.003382114s
|
||||||
Total Events: 325492
|
Total Events: 322255
|
||||||
Events/sec: 5424.63
|
Events/sec: 5370.61
|
||||||
Success Rate: 100.0%
|
Success Rate: 100.0%
|
||||||
Concurrent Workers: 24
|
Concurrent Workers: 24
|
||||||
Memory Used: 90 MB
|
Memory Used: 110 MB
|
||||||
Avg Latency: 1.392378ms
|
Avg Latency: 1.423539ms
|
||||||
P90 Latency: 2.772957ms
|
P90 Latency: 2.827222ms
|
||||||
P95 Latency: 3.499432ms
|
P95 Latency: 3.538928ms
|
||||||
P99 Latency: 5.584828ms
|
P99 Latency: 5.905702ms
|
||||||
Bottom 10% Avg Latency: 3.959973ms
|
Bottom 10% Avg Latency: 4.165578ms
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Report saved to: /tmp/benchmark_relayer-basic_8/benchmark_report.txt
|
Report saved to: /tmp/benchmark_relayer-basic_8/benchmark_report.txt
|
||||||
@@ -187,7 +187,7 @@ AsciiDoc report saved to: /tmp/benchmark_relayer-basic_8/benchmark_report.adoc
|
|||||||
|
|
||||||
RELAY_NAME: relayer-basic
|
RELAY_NAME: relayer-basic
|
||||||
RELAY_URL: ws://relayer-basic:7447
|
RELAY_URL: ws://relayer-basic:7447
|
||||||
TEST_TIMESTAMP: 2025-11-20T06:13:05+00:00
|
TEST_TIMESTAMP: 2025-11-20T20:25:35+00:00
|
||||||
BENCHMARK_CONFIG:
|
BENCHMARK_CONFIG:
|
||||||
Events: 50000
|
Events: 50000
|
||||||
Workers: 24
|
Workers: 24
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_rely-sqlite_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763668922245115ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763668922245170ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763668922245193ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763668922245198ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763668922245208ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763668922245221ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763668922245225ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763668922245237ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763668922245243ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:02:02 INFO: Extracted embedded libsecp256k1 to /tmp/orly-libsecp256k1/libsecp256k1.so
|
||||||
|
2025/11/20 20:02:02 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:02:02 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 2.855983841s
|
||||||
|
Events/sec: 17507.10
|
||||||
|
Avg latency: 1.223582ms
|
||||||
|
P90 latency: 1.623281ms
|
||||||
|
P95 latency: 1.87223ms
|
||||||
|
P99 latency: 2.707616ms
|
||||||
|
Bottom 10% Avg latency: 698.877µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 288.827022ms
|
||||||
|
Burst completed: 5000 events in 321.067294ms
|
||||||
|
Burst completed: 5000 events in 312.273754ms
|
||||||
|
Burst completed: 5000 events in 293.093481ms
|
||||||
|
Burst completed: 5000 events in 286.553497ms
|
||||||
|
Burst completed: 5000 events in 357.201577ms
|
||||||
|
Burst completed: 5000 events in 306.752475ms
|
||||||
|
Burst completed: 5000 events in 262.736838ms
|
||||||
|
Burst completed: 5000 events in 292.763913ms
|
||||||
|
Burst completed: 5000 events in 280.351571ms
|
||||||
|
Burst test completed: 50000 events in 8.008812743s, errors: 0
|
||||||
|
Events/sec: 6243.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.537090509s
|
||||||
|
Combined ops/sec: 2037.73
|
||||||
|
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: 405957 queries in 1m0.005924644s
|
||||||
|
Queries/sec: 6765.28
|
||||||
|
Avg query latency: 1.641153ms
|
||||||
|
P95 query latency: 6.470517ms
|
||||||
|
P99 query latency: 10.153469ms
|
||||||
|
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: 318529 operations (268529 queries, 50000 writes) in 1m0.003008545s
|
||||||
|
Operations/sec: 5308.55
|
||||||
|
Avg latency: 1.451707ms
|
||||||
|
Avg query latency: 1.426735ms
|
||||||
|
Avg write latency: 1.585823ms
|
||||||
|
P95 latency: 3.701027ms
|
||||||
|
P99 latency: 5.870958ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 2.855983841s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 17507.10
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 162 MB
|
||||||
|
Avg Latency: 1.223582ms
|
||||||
|
P90 Latency: 1.623281ms
|
||||||
|
P95 Latency: 1.87223ms
|
||||||
|
P99 Latency: 2.707616ms
|
||||||
|
Bottom 10% Avg Latency: 698.877µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 8.008812743s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6243.12
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 155 MB
|
||||||
|
Avg Latency: 1.178662ms
|
||||||
|
P90 Latency: 1.750812ms
|
||||||
|
P95 Latency: 2.046981ms
|
||||||
|
P99 Latency: 2.905169ms
|
||||||
|
Bottom 10% Avg Latency: 438.058µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.537090509s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2037.73
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 143 MB
|
||||||
|
Avg Latency: 380.772µs
|
||||||
|
P90 Latency: 793.938µs
|
||||||
|
P95 Latency: 883.507µs
|
||||||
|
P99 Latency: 1.103633ms
|
||||||
|
Bottom 10% Avg Latency: 1.040974ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.005924644s
|
||||||
|
Total Events: 405957
|
||||||
|
Events/sec: 6765.28
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 105 MB
|
||||||
|
Avg Latency: 1.641153ms
|
||||||
|
P90 Latency: 4.911473ms
|
||||||
|
P95 Latency: 6.470517ms
|
||||||
|
P99 Latency: 10.153469ms
|
||||||
|
Bottom 10% Avg Latency: 7.198928ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003008545s
|
||||||
|
Total Events: 318529
|
||||||
|
Events/sec: 5308.55
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 109 MB
|
||||||
|
Avg Latency: 1.451707ms
|
||||||
|
P90 Latency: 2.895473ms
|
||||||
|
P95 Latency: 3.701027ms
|
||||||
|
P99 Latency: 5.870958ms
|
||||||
|
Bottom 10% Avg Latency: 4.211348ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:05:19+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
194
cmd/benchmark/reports/run_20251120_200202/strfry_results.txt
Normal file
194
cmd/benchmark/reports/run_20251120_200202/strfry_results.txt
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
Starting Nostr Relay Benchmark (Badger Backend)
|
||||||
|
Data Directory: /tmp/benchmark_strfry_8
|
||||||
|
Events: 50000, Workers: 24, Duration: 1m0s
|
||||||
|
1763670340478661ℹ️ migrating to version 1... /build/pkg/database/migrations.go:66
|
||||||
|
1763670340478739ℹ️ migrating to version 2... /build/pkg/database/migrations.go:73
|
||||||
|
1763670340478771ℹ️ migrating to version 3... /build/pkg/database/migrations.go:80
|
||||||
|
1763670340478778ℹ️ cleaning up ephemeral events (kinds 20000-29999)... /build/pkg/database/migrations.go:287
|
||||||
|
1763670340478786ℹ️ cleaned up 0 ephemeral events from database /build/pkg/database/migrations.go:332
|
||||||
|
1763670340478806ℹ️ migrating to version 4... /build/pkg/database/migrations.go:87
|
||||||
|
1763670340478813ℹ️ converting events to optimized inline storage (Reiser4 optimization)... /build/pkg/database/migrations.go:340
|
||||||
|
1763670340478835ℹ️ found 0 events to convert (0 regular, 0 replaceable, 0 addressable) /build/pkg/database/migrations.go:429
|
||||||
|
1763670340478843ℹ️ migration complete: converted 0 events to optimized inline storage, deleted 0 old keys /build/pkg/database/migrations.go:538
|
||||||
|
|
||||||
|
╔════════════════════════════════════════════════════════╗
|
||||||
|
║ BADGER BACKEND BENCHMARK SUITE ║
|
||||||
|
╚════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
=== Starting Badger benchmark ===
|
||||||
|
RunPeakThroughputTest (Badger)..
|
||||||
|
|
||||||
|
=== Peak Throughput Test ===
|
||||||
|
2025/11/20 20:25:40 WARN: Failed to load embedded library from /tmp/orly-libsecp256k1/libsecp256k1.so: Error relocating /tmp/orly-libsecp256k1/libsecp256k1.so: __fprintf_chk: symbol not found, falling back to system paths
|
||||||
|
2025/11/20 20:25:40 INFO: Successfully loaded libsecp256k1 v5.0.0 from system path: libsecp256k1.so.2
|
||||||
|
Events saved: 50000/50000 (100.0%), errors: 0
|
||||||
|
Duration: 3.175451317s
|
||||||
|
Events/sec: 15745.79
|
||||||
|
Avg latency: 1.415908ms
|
||||||
|
P90 latency: 2.004386ms
|
||||||
|
P95 latency: 2.340716ms
|
||||||
|
P99 latency: 3.348014ms
|
||||||
|
Bottom 10% Avg latency: 739.523µs
|
||||||
|
Wiping database between tests...
|
||||||
|
RunBurstPatternTest (Badger)..
|
||||||
|
|
||||||
|
=== Burst Pattern Test ===
|
||||||
|
Burst completed: 5000 events in 301.102872ms
|
||||||
|
Burst completed: 5000 events in 294.117464ms
|
||||||
|
Burst completed: 5000 events in 273.073371ms
|
||||||
|
Burst completed: 5000 events in 301.704249ms
|
||||||
|
Burst completed: 5000 events in 299.9922ms
|
||||||
|
Burst completed: 5000 events in 339.238559ms
|
||||||
|
Burst completed: 5000 events in 312.837356ms
|
||||||
|
Burst completed: 5000 events in 280.591707ms
|
||||||
|
Burst completed: 5000 events in 277.848886ms
|
||||||
|
Burst completed: 5000 events in 295.019415ms
|
||||||
|
Burst test completed: 50000 events in 7.9814445s, errors: 0
|
||||||
|
Events/sec: 6264.53
|
||||||
|
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.456792977s
|
||||||
|
Combined ops/sec: 2044.42
|
||||||
|
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: 419503 queries in 1m0.005474925s
|
||||||
|
Queries/sec: 6991.08
|
||||||
|
Avg query latency: 1.585509ms
|
||||||
|
P95 query latency: 6.132577ms
|
||||||
|
P99 query latency: 9.715848ms
|
||||||
|
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: 327824 operations (277824 queries, 50000 writes) in 1m0.003814409s
|
||||||
|
Operations/sec: 5463.39
|
||||||
|
Avg latency: 1.370145ms
|
||||||
|
Avg query latency: 1.364611ms
|
||||||
|
Avg write latency: 1.400897ms
|
||||||
|
P95 latency: 3.384594ms
|
||||||
|
P99 latency: 5.290584ms
|
||||||
|
|
||||||
|
=== Badger benchmark completed ===
|
||||||
|
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
BENCHMARK REPORT
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Test: Peak Throughput
|
||||||
|
Duration: 3.175451317s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 15745.79
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 205 MB
|
||||||
|
Avg Latency: 1.415908ms
|
||||||
|
P90 Latency: 2.004386ms
|
||||||
|
P95 Latency: 2.340716ms
|
||||||
|
P99 Latency: 3.348014ms
|
||||||
|
Bottom 10% Avg Latency: 739.523µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Burst Pattern
|
||||||
|
Duration: 7.9814445s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 6264.53
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 205 MB
|
||||||
|
Avg Latency: 1.153768ms
|
||||||
|
P90 Latency: 1.713633ms
|
||||||
|
P95 Latency: 2.007502ms
|
||||||
|
P99 Latency: 2.81005ms
|
||||||
|
Bottom 10% Avg Latency: 410.391µs
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Mixed Read/Write
|
||||||
|
Duration: 24.456792977s
|
||||||
|
Total Events: 50000
|
||||||
|
Events/sec: 2044.42
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 144 MB
|
||||||
|
Avg Latency: 365.739µs
|
||||||
|
P90 Latency: 766.479µs
|
||||||
|
P95 Latency: 855.87µs
|
||||||
|
P99 Latency: 1.053084ms
|
||||||
|
Bottom 10% Avg Latency: 1.00241ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Query Performance
|
||||||
|
Duration: 1m0.005474925s
|
||||||
|
Total Events: 419503
|
||||||
|
Events/sec: 6991.08
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 101 MB
|
||||||
|
Avg Latency: 1.585509ms
|
||||||
|
P90 Latency: 4.683097ms
|
||||||
|
P95 Latency: 6.132577ms
|
||||||
|
P99 Latency: 9.715848ms
|
||||||
|
Bottom 10% Avg Latency: 6.848119ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Test: Concurrent Query/Store
|
||||||
|
Duration: 1m0.003814409s
|
||||||
|
Total Events: 327824
|
||||||
|
Events/sec: 5463.39
|
||||||
|
Success Rate: 100.0%
|
||||||
|
Concurrent Workers: 24
|
||||||
|
Memory Used: 143 MB
|
||||||
|
Avg Latency: 1.370145ms
|
||||||
|
P90 Latency: 2.759625ms
|
||||||
|
P95 Latency: 3.384594ms
|
||||||
|
P99 Latency: 5.290584ms
|
||||||
|
Bottom 10% Avg Latency: 3.84975ms
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
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-20T20:28:58+00:00
|
||||||
|
BENCHMARK_CONFIG:
|
||||||
|
Events: 50000
|
||||||
|
Workers: 24
|
||||||
|
Duration: 60s
|
||||||
@@ -42,12 +42,12 @@ if [ -d "data/neo4j" ]; then
|
|||||||
rm -rf data/neo4j/*
|
rm -rf data/neo4j/*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p data/{next-orly-badger,next-orly-dgraph,next-orly-neo4j,dgraph-zero,dgraph-alpha,neo4j,neo4j-logs,khatru-sqlite,khatru-badger,relayer-basic,strfry,nostr-rs-relay,postgres}
|
mkdir -p data/{next-orly-badger,next-orly-dgraph,next-orly-neo4j,dgraph-zero,dgraph-alpha,neo4j,neo4j-logs,khatru-sqlite,khatru-badger,relayer-basic,strfry,nostr-rs-relay,rely-sqlite,postgres}
|
||||||
chmod 777 data/{next-orly-badger,next-orly-dgraph,next-orly-neo4j,dgraph-zero,dgraph-alpha,neo4j,neo4j-logs,khatru-sqlite,khatru-badger,relayer-basic,strfry,nostr-rs-relay,postgres}
|
chmod 777 data/{next-orly-badger,next-orly-dgraph,next-orly-neo4j,dgraph-zero,dgraph-alpha,neo4j,neo4j-logs,khatru-sqlite,khatru-badger,relayer-basic,strfry,nostr-rs-relay,rely-sqlite,postgres}
|
||||||
|
|
||||||
echo "Building fresh Docker images..."
|
echo "Building fresh Docker images..."
|
||||||
# Force rebuild to pick up latest code changes
|
# Force rebuild to pick up latest code changes
|
||||||
$DOCKER_COMPOSE build --no-cache benchmark-runner next-orly-badger next-orly-dgraph next-orly-neo4j
|
$DOCKER_COMPOSE build --no-cache benchmark-runner next-orly-badger next-orly-dgraph next-orly-neo4j rely-sqlite
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Starting benchmark suite..."
|
echo "Starting benchmark suite..."
|
||||||
|
|||||||
24
go.mod
24
go.mod
@@ -31,7 +31,16 @@ require (
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/BurntSushi/toml v1.5.0 // indirect
|
github.com/BurntSushi/toml v1.5.0 // indirect
|
||||||
|
github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect
|
||||||
|
github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect
|
||||||
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect
|
||||||
|
github.com/bytedance/sonic v1.13.1 // indirect
|
||||||
|
github.com/bytedance/sonic/loader v0.2.4 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
github.com/cloudwego/base64x v0.1.5 // indirect
|
||||||
|
github.com/coder/websocket v1.8.12 // indirect
|
||||||
|
github.com/decred/dcrd/crypto/blake256 v1.1.0 // indirect
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
|
||||||
github.com/dgraph-io/ristretto/v2 v2.3.0 // indirect
|
github.com/dgraph-io/ristretto/v2 v2.3.0 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/felixge/fgprof v0.9.5 // indirect
|
github.com/felixge/fgprof v0.9.5 // indirect
|
||||||
@@ -41,14 +50,27 @@ require (
|
|||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
github.com/google/flatbuffers v25.9.23+incompatible // indirect
|
github.com/google/flatbuffers v25.9.23+incompatible // indirect
|
||||||
github.com/google/pprof v0.0.0-20251007162407-5df77e3f7d1d // indirect
|
github.com/google/pprof v0.0.0-20251007162407-5df77e3f7d1d // indirect
|
||||||
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
||||||
github.com/pkg/errors v0.8.1 // indirect
|
github.com/mailru/easyjson v0.9.0 // indirect
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.32 // indirect
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
|
github.com/nbd-wtf/go-nostr v0.52.0 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/templexxx/cpu v0.1.1 // indirect
|
github.com/templexxx/cpu v0.1.1 // indirect
|
||||||
|
github.com/tidwall/gjson v1.18.0 // indirect
|
||||||
|
github.com/tidwall/match v1.1.1 // indirect
|
||||||
|
github.com/tidwall/pretty v1.2.1 // indirect
|
||||||
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||||
|
github.com/vertex-lab/nostr-sqlite v0.3.2 // indirect
|
||||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||||
go.opentelemetry.io/otel v1.38.0 // indirect
|
go.opentelemetry.io/otel v1.38.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.38.0 // indirect
|
go.opentelemetry.io/otel/metric v1.38.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.38.0 // indirect
|
go.opentelemetry.io/otel/trace v1.38.0 // indirect
|
||||||
|
golang.org/x/arch v0.15.0 // indirect
|
||||||
golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 // indirect
|
golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 // indirect
|
||||||
golang.org/x/mod v0.29.0 // indirect
|
golang.org/x/mod v0.29.0 // indirect
|
||||||
golang.org/x/sync v0.17.0 // indirect
|
golang.org/x/sync v0.17.0 // indirect
|
||||||
|
|||||||
60
go.sum
60
go.sum
@@ -2,8 +2,20 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
|
|||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
||||||
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||||
|
github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 h1:ClzzXMDDuUbWfNNZqGeYq4PnYOlwlOVIvSyNaIy0ykg=
|
||||||
|
github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3/go.mod h1:we0YA5CsBbH5+/NUzC/AlMmxaDtWlXeNsqrwXjTzmzA=
|
||||||
github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78=
|
github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78=
|
||||||
github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ=
|
github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ=
|
||||||
|
github.com/btcsuite/btcd v0.24.2 h1:aLmxPguqxza+4ag8R1I2nnJjSu2iFn/kqtHTIImswcY=
|
||||||
|
github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ=
|
||||||
|
github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
|
||||||
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ=
|
||||||
|
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
|
||||||
|
github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g=
|
||||||
|
github.com/bytedance/sonic v1.13.1/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
|
||||||
|
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
|
||||||
|
github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY=
|
||||||
|
github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@@ -17,9 +29,18 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk
|
|||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8=
|
github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
|
github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
|
||||||
|
github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
|
||||||
|
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
|
||||||
|
github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo=
|
||||||
|
github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8=
|
||||||
|
github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc=
|
||||||
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40=
|
||||||
github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yhN/bs=
|
github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yhN/bs=
|
||||||
github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w=
|
github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w=
|
||||||
github.com/dgraph-io/dgo/v230 v230.0.1 h1:kR7gI7/ZZv0jtG6dnedNgNOCxe1cbSG8ekF+pNfReks=
|
github.com/dgraph-io/dgo/v230 v230.0.1 h1:kR7gI7/ZZv0jtG6dnedNgNOCxe1cbSG8ekF+pNfReks=
|
||||||
@@ -30,6 +51,7 @@ github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa5
|
|||||||
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
|
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
|
||||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
|
github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
|
||||||
github.com/ebitengine/purego v0.9.1 h1:a/k2f2HQU3Pi399RPW1MOaZyhKJL9w/xFpKAg4q1s0A=
|
github.com/ebitengine/purego v0.9.1 h1:a/k2f2HQU3Pi399RPW1MOaZyhKJL9w/xFpKAg4q1s0A=
|
||||||
github.com/ebitengine/purego v0.9.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
github.com/ebitengine/purego v0.9.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
@@ -67,6 +89,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
|||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||||
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
|
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
|
||||||
github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
|
github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
|
||||||
github.com/google/pprof v0.0.0-20251007162407-5df77e3f7d1d h1:KJIErDwbSHjnp/SGzE5ed8Aol7JsKiI5X7yWKAtzhM0=
|
github.com/google/pprof v0.0.0-20251007162407-5df77e3f7d1d h1:KJIErDwbSHjnp/SGzE5ed8Aol7JsKiI5X7yWKAtzhM0=
|
||||||
@@ -77,28 +100,46 @@ github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aN
|
|||||||
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw=
|
github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw=
|
||||||
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
|
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
|
||||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
|
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
|
github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
|
||||||
github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
|
github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
|
||||||
|
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||||
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
|
github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
|
||||||
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
|
github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
|
||||||
|
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs=
|
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs=
|
||||||
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||||
|
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
|
||||||
|
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||||
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
|
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
|
||||||
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
|
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
|
github.com/nbd-wtf/go-nostr v0.52.0 h1:9gtz0VOUPOb0PC2kugr2WJAxThlCSSM62t5VC3tvk1g=
|
||||||
|
github.com/nbd-wtf/go-nostr v0.52.0/go.mod h1:4avYoc9mDGZ9wHsvCOhHH9vPzKucCfuYBtJUSpHTfNk=
|
||||||
github.com/neo4j/neo4j-go-driver/v5 v5.28.4 h1:7toxehVcYkZbyxV4W3Ib9VcnyRBQPucF+VwNNmtSXi4=
|
github.com/neo4j/neo4j-go-driver/v5 v5.28.4 h1:7toxehVcYkZbyxV4W3Ib9VcnyRBQPucF+VwNNmtSXi4=
|
||||||
github.com/neo4j/neo4j-go-driver/v5 v5.28.4/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k=
|
github.com/neo4j/neo4j-go-driver/v5 v5.28.4/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k=
|
||||||
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
|
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=
|
github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=
|
||||||
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=
|
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
@@ -110,8 +151,13 @@ github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0t
|
|||||||
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||||
github.com/templexxx/cpu v0.0.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk=
|
github.com/templexxx/cpu v0.0.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk=
|
||||||
@@ -119,6 +165,17 @@ github.com/templexxx/cpu v0.1.1 h1:isxHaxBXpYFWnk2DReuKkigaZyrjs2+9ypIdGP4h+HI=
|
|||||||
github.com/templexxx/cpu v0.1.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk=
|
github.com/templexxx/cpu v0.1.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk=
|
||||||
github.com/templexxx/xhex v0.0.0-20200614015412-aed53437177b h1:XeDLE6c9mzHpdv3Wb1+pWBaWv/BlHK0ZYIu/KaL6eHg=
|
github.com/templexxx/xhex v0.0.0-20200614015412-aed53437177b h1:XeDLE6c9mzHpdv3Wb1+pWBaWv/BlHK0ZYIu/KaL6eHg=
|
||||||
github.com/templexxx/xhex v0.0.0-20200614015412-aed53437177b/go.mod h1:7rwmCH0wC2fQvNEvPZ3sKXukhyCTyiaZ5VTZMQYpZKQ=
|
github.com/templexxx/xhex v0.0.0-20200614015412-aed53437177b/go.mod h1:7rwmCH0wC2fQvNEvPZ3sKXukhyCTyiaZ5VTZMQYpZKQ=
|
||||||
|
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
||||||
|
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||||
|
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
||||||
|
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||||
|
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
|
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
|
||||||
|
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
|
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
||||||
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
|
github.com/vertex-lab/nostr-sqlite v0.3.2 h1:8nZYYIwiKnWLA446qA/wL/Gy+bU0kuaxdLfUyfeTt/E=
|
||||||
|
github.com/vertex-lab/nostr-sqlite v0.3.2/go.mod h1:5bw1wMgJhSdrumsZAWxqy+P0u1g+q02PnlGQn15dnSM=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go-simpler.org/env v0.12.0 h1:kt/lBts0J1kjWJAnB740goNdvwNxt5emhYngL0Fzufs=
|
go-simpler.org/env v0.12.0 h1:kt/lBts0J1kjWJAnB740goNdvwNxt5emhYngL0Fzufs=
|
||||||
@@ -137,6 +194,8 @@ go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJr
|
|||||||
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
||||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||||
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
|
golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw=
|
||||||
|
golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@@ -241,3 +300,4 @@ lol.mleku.dev v1.0.5 h1:irwfwz+Scv74G/2OXmv05YFKOzUNOVZ735EAkYgjgM8=
|
|||||||
lol.mleku.dev v1.0.5/go.mod h1:JlsqP0CZDLKRyd85XGcy79+ydSRqmFkrPzYFMYxQ+zs=
|
lol.mleku.dev v1.0.5/go.mod h1:JlsqP0CZDLKRyd85XGcy79+ydSRqmFkrPzYFMYxQ+zs=
|
||||||
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
|
lukechampine.com/frand v1.5.1 h1:fg0eRtdmGFIxhP5zQJzM1lFDbD6CUfu/f+7WgAZd5/w=
|
||||||
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q=
|
lukechampine.com/frand v1.5.1/go.mod h1:4VstaWc2plN4Mjr10chUD46RAVGWhpkZ5Nja8+Azp0Q=
|
||||||
|
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
|
||||||
|
|||||||
Reference in New Issue
Block a user