Skip to main content

Limits

Size caps, budgets, lifetimes, and fixed maximums in RushDB, with their defaults. Limits marked configurable can be changed (see the configuration reference); the others are fixed in this release.

Requests and responses​

LimitDefaultConfigurableBehavior when exceeded
HTTP request body16 MiBserver.body-limit413, invalid_request
Response size (all transports)16 MiBserver.body-limitHTTP 413, execution_failed; elsewhere resource_exhausted
gRPC message size (in and out)16 MiBserver.body-limitgRPC error
HTTP request bodies in flight (all connections)256 MiB (never below the body limit)http-inflight-body-bytes503, resource_exhausted, before the body is read
Admitted concurrent requests (scheduler)workers + queue; workers = CPU count clamped to 2–256, queue = 32 × workers clamped to 64–4096threads503, unavailable
Concurrent requests per tenant (multitenant)unlimited--max-concurrent-requests-per-tenantunavailable
Request execution deadline (every transport)none--request-timeout-mscancelled
X-RushDB-Tenant header length1024 bytesno400, invalid_request
pgwire connections1024noconnection refused
Bolt connections1024noconnection refused
Bolt message size64 MiBnoconnection error
Bolt buffered rows per result100,000noerror
Bolt idle I/O timeout60 snoconnection closed
Bolt authentication timeout10 snoconnection closed
gRPC concurrent requests per connection64noqueued by HTTP/2
gRPC concurrent streams per connection64noqueued by HTTP/2

Queries​

LimitDefaultConfigurableBehavior when exceeded
Query working set256 MiBquery-memory-max (0 = off)resource_exhausted
Query phase reservation8 MiB per request, drawn from the managed envelopenoresource_exhausted when the envelope is full
Records cursor page size1–10,000norefused
Retained cursor state (node-wide)64 MiBnonew cursor refused
Cursor lifetimeas requested, capped at tx-max-age-secondstx-max-age-secondscursor expires
Aggregation buckets per query1,000norefused
SQL: records per label (table)100,000noquery refused
Graph-language mutation: records created or changed100,000nomutation refused
Graph-language mutation staging64 MiBnoresource_exhausted (not retryable)
Graph-language statement clauses8,192noinvalid_request
text query default limit10per request—
vectorIndexCandidates default limit500per request—
Vector spaces per tenant256norefused
Records per transport responsebounded by the response sizeserver.body-limitsee above

Writes and transactions​

LimitDefaultConfigurableBehavior when exceeded
Expanded size of one commit512 MiBmax-expanded-commit-bytesresource_exhausted (not retryable)
WAL record size64 MiB (larger commits are chained automatically)no—
Active transactions128tx-max-activeresource_exhausted (retryable)
Operations per transaction10,000tx-max-operationsresource_exhausted (not retryable)
Staged bytes per transaction8 MiBtx-max-staged-bytesresource_exhausted (not retryable)
Staged JSON nesting depth64noresource_exhausted (not retryable)
Transaction pool (all transactions)128 MiBtransaction-poolresource_exhausted (retryable)
Staged bytes per tenant (multitenant)shared pooltx-max-staged-bytes-per-tenantresource_exhausted
Default transaction lifetime60 stx-default-ttl-secondstransaction expires
Maximum transaction lifetime60 stx-max-age-secondsrequested TTL is capped
Write-lock waitunlimitedlock-timeout-msresource_exhausted (retryable)
Idempotent retry window24 hidempotency-window-secondsa retry becomes a new commit
Free disk for writes (every transport)10%disk-space-threshold-percentunavailable (HTTP 503)

Memory budgets​

BudgetDefaultConfigurable
Managed envelope512 MiBmanaged-limit
Storage page cache128 MiB (minimum 64 KiB)storage-cache
Logical caches (vector, text, planner statistics)128 MiBlogical-cache-bytes
Planner statistics32 MiB (child of the logical caches)planner-stats-bytes
ANN segment cache256 MiB, and at most 12 cached generationsno
Resident tenant handles512 MiB (16 KiB minimum charge per tenant)tenant-resident-bytes
Tenant handle idle time300 stenant-idle-seconds
Memory headroom inside a declared deployment limit128 MiBmemory-headroom

Retention and storage​

LimitDefaultConfigurable
WAL commit cap100,000 commitstx-log-retention-commits, tx-log-keep-all
WAL byte cap4 GiBtx-log-retention-bytes
WAL keep window without consumers0 commitstx-log-keep-commits
WAL segment size64 MiBno
Retention consumer lease24 hretention-consumer-lease-seconds
Abandoned read view lease60 sno
WAL archive window7 dayswal-archive-retention-seconds
WAL archive byte capnonewal-archive-retention-bytes
Physical storage shards1 (maximum 256, Preview above 1)shards
Compaction triggerfile grew to 150% or ≥ 10,000 keys purgedcompact-growth-percent
Replication page2,000 WAL records per pollno

Background intervals​

TaskIntervalConfigurable
Maintenance tick (GC, retention, index builds, checkpoint)5 s, up to 512 keys per stepcheckpoint-interval-seconds
Index build budget per tick250 msno
Idle compaction check300 scompact-interval-seconds
Compaction quiet period10 scompact-quiesce-seconds
Expired-transaction reaper1 sno
Text index applier250 msno
WAL archiver5 sno
Storage byte statistics refresh15 minno
RSS watchdog (when enabled)10 srss-max
Replication follower poll when caught up200 msno

Shutdown​

PhaseDeadline
HTTP connection drain30 s
Background maintenance drain30 s
Final durability checkpoint5 s
pgwire / gRPC / Bolt drain5 s each, inside a 7 s transport budget

See also​