Skip to content

Configuration

Terminal window
particledb start [FLAGS]
FlagDefaultDescription
--configconfig.tomlPath to configuration file
--data-dir./dataData storage directory
--pg-addr0.0.0.0:5432PostgreSQL wire protocol listen address
--pg-unix-socketUnix socket path (e.g., /tmp/.s.PGSQL.5432)
--http-addr0.0.0.0:8080HTTP server (dashboard, health, REST)
--grpc-addr0.0.0.0:26257gRPC listen address
--metrics-port9090Prometheus metrics port
--health-port8080Health check port
--max-connections100Maximum concurrent connections
--connection-timeout300Idle connection timeout (seconds)
--auth-methodtrustAuthentication: trust, password, md5
--pg-passwordPassword for PG authentication
--tls-certTLS certificate file (PEM)
--tls-keyTLS private key file (PEM)
--wal-sync-modegroupsyncWAL durability: sync, groupsync, nosync
--snapshot-enabledfalseEnable automated snapshots
--snapshot-interval3600Snapshot interval (seconds)
--audit-logfalseEnable audit logging
--txn-modetable-2plTransaction isolation: fast, row-2pl, table-2pl
--oltp-partitions0Partition workers by PK hash (0 = disabled)
ModeDurabilityPerformanceUse Case
syncFull (per-transaction fsync)BaselineMission-critical data
groupsync~14ms window3-6x fasterProduction default
nosyncNoneMaximum throughputBenchmarks, ephemeral data

All CLI flags can be set in config.toml:

[network]
pg_addr = "0.0.0.0:5432"
pg_unix_path = "/tmp/.s.PGSQL.5432"
http_addr = "0.0.0.0:8080"
grpc_addr = "0.0.0.0:26257"
redis_port = 6379
max_connections = 100
[security]
auth_method = "trust"
tls_cert_path = "/path/to/cert.pem"
tls_key_path = "/path/to/key.pem"
[storage]
memtable_size = 67108864 # 64 MB
block_cache_size = 536870912 # 512 MB
bloom_bits_per_key = 10
[wal]
sync_mode = "groupsync"

Every config option can be set via environment variable with the PDB_ prefix:

Terminal window
PDB_PG_ADDR=0.0.0.0:5432
PDB_WAL_SYNC_MODE=groupsync
PDB_AUTH_METHOD=password
PDB_TLS_CERT=/path/to/cert.pem

These environment variables enable runtime diagnostics and profiling. They are read at server start (or, where noted, per-connection).

VariableValuesDescription
PDB_WIRE_TRACE1Per-query protocol sequence logging — logs every PG wire message (Parse, Bind, Execute, Sync) with timing
PDB_WIRE_DUMP1Byte-level message framing diagnostic — dumps raw wire bytes for protocol debugging
PDB_REDIS_PROFILE1 or NRedis command profiling — logs every Redis command with execution time. Set to N to sample every Nth command
PDB_OLTP_PROFILE1 or NOLTP operation profiling — logs each OLTP operation (SELECT, INSERT, UPDATE, DELETE) with timing. Set to N for sampling
PDB_AGG_TELEMETRY1Aggregate dispatch path logging — logs which aggregation strategy (zone stats, dense array, hash, SIMD masks) was chosen for each query
Terminal window
# Example: enable wire trace and aggregate telemetry
PDB_WIRE_TRACE=1 PDB_AGG_TELEMETRY=1 particledb start
# Profile every 100th Redis command
PDB_REDIS_PROFILE=100 particledb start