tikv / tikv/client-rust

The beginning of heartbeats for pessimistic locks may be too late

Open
#312 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
425
Forks
163
Avg merge
10h 51m
Merged PRs (30d)
3

Description

Current process:

  1. lock all keys
  2. 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:

  1. lock the primary key if it's not locked
  2. start heartbeat
  3. lock other keys

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.