Skip to content

perf(rdma): enforce process-wide connection budgets - #306

Merged
ketor merged 1 commit into
dingodb:mainfrom
ketor:feat/async-rdma-transport
Aug 10, 2026
Merged

perf(rdma): enforce process-wide connection budgets#306
ketor merged 1 commit into
dingodb:mainfrom
ketor:feat/async-rdma-transport

Conversation

@ketor

@ketor ketor commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Problem

Per-node idle pool limits bound retained QPs locally but do not cap total live endpoints across nodes or KVClient handles. A wide or changing ring can therefore exhaust QPs, WR slots, or server receive-segment leases.

Change

  • reserve endpoint, QP, WR-slot, and remote receive-slot-byte credits before opening a QP
  • share one process-wide budget across RdmaTransport instances
  • wait with a bounded admission timeout; never oversubscribe
  • return credits only after RcEndpoint destruction
  • export fixed-cardinality used/limit and timeout metrics
  • document resolved controls

Verification

  • rdma_resource_budget_test: impossible reservation, bounded timeout, blocked waiter wakeup
  • rdma_loopback_test --gtest_filter=RdmaSafety.*

Defaults preserve the measured 0064 peak of 128 active connections with 2x headroom (256 endpoints). No deployment outside 0064 is changed.

@ketor
ketor added this pull request to the merge queue Aug 10, 2026
Merged via the queue into dingodb:main with commit 50e6fe7 Aug 10, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant