tikv/tikv

Engine abstraction tracking issue

Offen

#6.402 geöffnet am 03.01.2020

 (25 Kommentare) (7 Reaktionen) (0 zugewiesene Personen)Rust (2.189 Forks)batch import
help wantedsig/enginestatus/mentor

Repository-Metriken

Stars
 (15.922 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 28T 9h) (68 gemergte PRs in 30 T)

Beschreibung

This issue is to organize and track progress on abstracting TiKV over generic storage engines (previous issue: https://github.com/tikv/tikv/issues/4184). There are many tasks to be done and contributions are welcome.

In scope: the process of abstracting the entire RocksDB engine API into the engine_traits and engine_rocks crates, decoupling TiKV and its test suite from RocksDB., and prototyping new engine bindings. Out of scope: refactoring engine_traits to better support with non-RocksDB engines.

The engine_traits crate docs describe the design and migration process.

The issue is updated to contain a checklist of tasks that definitely need to happen, along with name of who is working on it. When you decide to take a task, say so on the issue before attempting it so that someone else doesn't duplicate your work.

It's hard to know in what order these need to happen, nor exactly how to complete each of them, as each tends to present new challenges. Instead I have documented here, in the engine_traits crate docs, and in a status report, my experiences so far and suggestions for how to proceed.

The most important thing to keep in mind is:

Make small changes: small commits, small PRs. When you find that something else needs to change first, stop what you are doing, and make that change, and submit that PR. Don't let your patches grow out of control. Don't be afraid to throw away your work and try something else.

Task list (updated 2021/01/10)

Contributor Guide