Distributed read-write lock
Your task
Design a distributed read-write (shared/exclusive) lock service for protecting a large mutable config blob read by ~40k services continuously but updated rarely: many concurrent readers must proceed in parallel, a writer needs exclusive access, and readers must not see a half-applied write. Constraints: readers should almost never block, writer starvation must be bounded, and a crashed reader or writer must not deadlock the resource. Describe lock modes, how concurrent readers and a writer coordinate, and crash recovery.
It covers
- Read write lock
- Lease
- Hot resource