Distributed read-write lock

DesignHard45 min

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