Skip to content

feat(umbp): tunable read leases and tighter master lease default#452

Open
isytwu wants to merge 1 commit into
mainfrom
feat/umbp-read-lease-tuning
Open

feat(umbp): tunable read leases and tighter master lease default#452
isytwu wants to merge 1 commit into
mainfrom
feat/umbp-read-lease-tuning

Conversation

@isytwu

@isytwu isytwu commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Expose the two peer-side read leases that were previously hardcoded:
    • UMBP_DRAM_READ_LEASE_MS (default 500) — peer DRAM/HBM read lease.
    • UMBP_SSD_READ_LEASE_MS (default 3000) — peer SSD staging-slot lease; plumbed through as std::chrono::milliseconds, dropping the unused PoolClientConfig::ssd_lease_timeout_s (was hardcoded 10s).
  • Lower UMBP_LEASE_DURATION_SEC default 10s -> 2s: the master read lease only needs to cover the master→reader RPC + reaching the peer, so 10s over-pinned actively-read (hot) keys against eviction.
  • UMBP_AUTO_FLUSH_EVENT_THRESHOLD=0 now disables size-based auto-flush instead of falling back to the default.
  • Remove legacy UMBP_ALLOCATION_TTL_SEC / UMBP_FINALIZED_RECORD_TTL_SEC (unused on the live path) from config, master startup log, and docs.
  • Update runtime-env-vars.md and design-master-control-plane.md.

Test plan

  • Builds clean (082 docker, ninja).
  • Lease-related unit tests pass: test_umbp_env_time, test_ssd_read_lease_gating, test_peer_dram_allocator, test_umbp_master_client_flush_heartbeat, test_umbp_peer_service, test_peer_ssd_read_rpc.
  • Cross-node bench (082↔083): correctness 128/128 hits, 0 mismatch; batch_perf ~0.216 ms/get @ batch=1, all with the new lease envs set — confirms the tightened master lease and new peer lease knobs don't break the read path.

- Add UMBP_DRAM_READ_LEASE_MS (default 500) to expose the peer DRAM/HBM
  read lease that was previously hardcoded at 500ms.
- Add UMBP_SSD_READ_LEASE_MS (default 3000) and plumb the peer SSD
  staging-slot lease through as std::chrono::milliseconds; drop the
  unused PoolClientConfig::ssd_lease_timeout_s field. Was hardcoded 10s.
- Lower UMBP_LEASE_DURATION_SEC default 10s -> 2s: the master read lease
  only needs to cover the master->reader RPC + reaching the peer, so 10s
  over-pinned actively-read keys against eviction.
- UMBP_AUTO_FLUSH_EVENT_THRESHOLD=0 now disables size-based auto-flush
  instead of falling back to the default.
- Remove legacy UMBP_ALLOCATION_TTL_SEC / UMBP_FINALIZED_RECORD_TTL_SEC
  (unused on the live path) from config, master startup log, and docs.
- Update runtime-env-vars.md and design-master-control-plane.md.
@isytwu isytwu self-assigned this Jul 13, 2026
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