We need a PD catagory
PD is an important component for TiKV (not TiDB), it should be written in rust and optionally embedded in TiKV executable.
We need a PD catagory
PD is an important component for TiKV (not TiDB), it should be written in rust and optionally embedded in TiKV executable.
AFAIK, someone has been working on this.
Where can I find the roadmap?
I don’t think there’s any work being done on it yet, do you have a source?
There is no source.
I have posted a similar idea in an internal discussion months ago. I suggested to rewrite PD in Rust and use Wasm to write the scheduling algorithm. So we can add/remove new scheduling policy to PD without restarting PD. And PD in Rust can reuse the raft-rs, which allows async writes and provides better performance.
So cool, sounds exciting.
Hi @BusyJay!
I can see that PD has already a plugin mechanism for scheduling strategy and also present a plugin demo.
I’d like to know that in your mind, do we implement a new plugin using cgo and load Rust Wasm manager which can add/remove new scheduling policy to PD without restarting PD?
Visually, my question is that for a plugin layout, do we have
or
I’m not quite sure about both Golang Plugin and Rust Wasm but it seems to me the first version is reasonable.
I don’t have a clear design for now. I was just exploring the possible benefits from rewriting PD in Rust. For example, if PD is written in Rust and we can embed it into TiKV, then plugins are just a type of coprocessors, they can share designs and even APIs. Being able to embed it into TiKV and get rid of one component can be a huge benefits for both deployment and maintenance.
I think Jay’s idea is a distributed scheduling method, not just a centralized scheduling plug-in running on PD.
But in fact, PD currently supports dynamic loading of Go plug-in shcedulers, but no customer wants to use it in a production environment.
Can you elaborate the difference between
I don’t get a clear image of them.
I mean decentralized scheduling.
sounds like a secret…
by the way, is there any discuss on rewriting tidb in Rust ?
You can send a post.