The beginning of heartbeats for pessimistic locks may be too late
Open
Nobody has claimed this yet.
bug
- Dominant language
- Rust
- Stars
- 425
- Forks
- 163
- Avg merge
- 10h 51m
- Merged PRs (30d)
- 3
Description
Current process:
- lock all keys
- start heartbeat
Consider we lock a lot of keys in a single command, which takes a long time. Before the heartbeat begins, some of the locks may be stale and removed.
A possible improvement:
- lock the primary key if it's not locked
- start heartbeat
- lock other keys
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the pessimistic-lock command's lock-all and heartbeat entry points, then trace their ordering for commands that lock many keys. Confirm the primary lock can establish heartbeat protection before remaining keys are locked, and add or update a test covering stale locks during a long multi-key lock operation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100