Real world Rust
- Why and how we use Rust in TiKVTxn, Transaction MVCC Raft KV RocksDB Placement Driver PB PRC Client SDK PB PRC PB PRC PB PRC 主要组件 ● Asynchronous IO ○ mio ● Storage engine ○ RocksDB ● RPC ○ Protobuf PRC ● Metrics WIP eventloop scheduler scheduler raft router coprocessor worker worker ... worker worker ... rocksdb kv-msg raft-msg co-msg Raft store Raft store ... snapshot snapshot ... snapshot snapshot ... Mutex ○ 同构的工作线程间共享对象 Rust 和 C ● Rust 对 C 的调用没有任何 overhead ● C 区域的调用没法保证安全 ● TiKV 场景的特殊性 ○ RocksDB 周边工具 ● cargo ● clippy ● rustfmt ● kcov ● perf + flamegraph Rust 2017 Roadmap ● 优化学习曲线 ●0 码力 | 29 页 | 506.53 KB | 1 年前3
Rust分布式账务系统 - 胡宇接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ○ 共识:基于 raft-rs 的可靠消息队 列 ○ 存储: Rocksdb with Rust 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待0 码力 | 27 页 | 12.60 MB | 1 年前3
共 2 条
- 1













