tikv / tikv/client-rust

UCP: support resolving locks of specific keys

Open
#111 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

challenge-program-2 enhancement help wanted
Dominant language
Rust
Stars
425
Forks
163
Avg merge
10h 51m
Merged PRs (30d)
3

Description

Description

Normal resolve lock scans the whole region for locks. With resolve lock lite, we resolve only the specified locks. This can reduce TiKV's load when there are a lot of conflicts.

Task breakdown:

  • Add an interface resolve_lock_specified_keys, the protocol is:
message ResolveLockRequest {
    Context context = 1;
    uint64 start_version  = 2;
    // If the txn is rolled back, do not set it.
    uint64 commit_version = 3;
    repeated TxnInfo txn_infos = 4;
    // Only resolve specified keys.
    repeated bytes keys = 5;
}

Set specified keys for ResolveLockRequest.

Difficulty

  • Medium

Score

  • 300

Mentor(s)

  • @sticnarf

Recommended Skills

  • Rust
  • TiKV Transaction Model

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 with the existing resolve-lock interface and the ResolveLockRequest protocol linked in the issue. Trace how normal lock resolution builds and sends its request, then add the specified-key path so keys are included. Done means the interface exists and resolution targets only the supplied keys without scanning the whole region.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
databases
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.