tikv / tikv/client-rust

Proposal: pass Mutation and RegionStore by Arc pointer

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

Nobody has claimed this yet.

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

Description

Problem

Client-rust costs a lot of CPU to copy the structure. And most of this copy and allocation is to copy mutation between TransactionClient and kinds of PlanBuilder.

Solution

I think we can store these Mutation and RegionStore of RegionCache as an Arc Pointer. We only need to clone them before we really call gRPC API to send requests.

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 tracing how Mutation and RegionStore move through TransactionClient and the various PlanBuilder types, then locate the gRPC request boundary where they are sent. The work is done when these structures avoid unnecessary copies and are cloned only before gRPC requests, with existing tests or benchmarks confirming the behavior and cost.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
databases
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 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.