Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

RawKV Backup & Restore Project #86

@3pointer

Description

@3pointer

RawKV Backup & Restore Project

Abstract

In this project we needs focus on TiKV and BR project. and we need to

  • Implement Raw KV backup and restore based on current BR project.

Problem Statement

For now TiKV is an independent CNCF project, the ability of backup and restore data is become more important, so we need to implement backup and restore data in TiKV with BR.
Raw KV is a concept of TiKV and irrelevant with tidb, current BR already support backup Txn KV from TiDB TiKV cluster and restore Txn KV data to new cluster.
we can reuse above process to implement Raw KV backup and restore, so the main process can be divided into two section.
Backup:

  • Use BR Backup Command to send backup request to TiKV cluster.
  • TiKV receive backup request then start to backup Raw KV, then put data into specify storage(local storage for now).

Restore:

  • Use BR Restore Command to send restore request to TiKV cluster.
  • TiKV restore data from specify storage.

Success Criteria

  • With BR program, one can backup Raw KV from exist TiKV cluster, and restore to new TiKV cluster successfully.

TODO list

  • TiKV use RegionIterator to scan Raw KV by given key range. (500 points / medium) detail
  • TiKV restore raw kv depends on current TiKV restore logic. (500 points / medium) detail
  • BR support communicate with only TiKV cluster. (300 points / medium)
  • BR support restore Raw KV command. (500 points / medium)
  • BR support backup Raw KV command. (500 points / medium)

Difficulty

  • Easy

Score

  • 2300

Mentor(s)

Recommended skills

  • Go language
  • Basic understanding of TiKV

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions