Real world Rust
- Why and how we use Rust in TiKVwe use Rust in TiKV 黄东旭 PingCAP 关于我 ● 黄东旭 Dongxu_Huang ● Open source hacker / Infrastructure Engineer ● MSRA / Netease / Wandoujia / PingCAP ● CTO of PingCAP ● Codis / TiDB / TiKV ● Go / Python 是否满足 Send + Sync TiKV ● 大规模分布式 Key-Value 数据库 ● 支持 ACID 跨行事务支持 ● 支持 MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现 SQL 层的下推算子 TiKV 的前置需求 ● 极高的性能要求,尽可能低延迟,而且延迟需要稳定 ○ Multi-Raft ○ 分布式测试框架 ● 和 C 的模块大量交互 ● 开发人员和时间不足 ○ 5 人的团队,希望半年左右发布第一个可用版本 TiKV 的语言选型参考 ● Go ● C++11 ● Rust TiKV 整体架构 KV API Coprocessor Txn, Transaction MVCC Raft KV RocksDB Placement0 码力 | 29 页 | 506.53 KB | 1 年前3
Go 构建大型开源分布式数据库技术内幕course 如何构建分布式数据库? 原则 ● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... ... ... ... Placement Driver (PD) Control flow: Storage stack 1/2 ● TiKV is the underlying storage layer ● Physically, data is stored in RocksDB ● We build a Raft layer on top of RocksDB ○ What is Raft? ● Written in Rust! TiKV API (gRPC) Transaction 2:[d-e] split 分裂: 1/4 TiKV1 Region 1:[a-e] TiKV2 Region 1:[a-e] TiKV3 Region 1:[a-e] raft raft Leader Follower Follower Raft group 分裂: 2/4 TiKV2 Region 1:[a-e] TiKV3 Region 1:[a-e] raft0 码力 | 44 页 | 649.68 KB | 1 年前3
Go in TiDBHBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL Architecture TiKV TiKV TiKV TiKV Raft Raft Raft TiDB TiDB TiDB ... ... Placement Driver (PD) Control flow: Balance / Failover Distributed Storage Layer ... TiKV - Overview • Region: a set of continuous key-value pairs • Data is organized/stored/replicated by Regions • Highly layered TiKV Key Space [ start_key, end_key) PD - Overview TiKV TiKV TiKV TiKV … ... TiKV Cluster PD Node/Region Info Management Command TiKV Client Route Info ● Meta data management ● Load balance management TiKV - Multi-Raft Multiple0 码力 | 22 页 | 1.01 MB | 1 年前3
5 How to integrate Graph mode into RDBMS smoothly 副标题 TiDB TiDB Worker Spark Driver TiKV Cluster (Storage) Metadata TiKV TiKV TiKV MySQL Clients Syncer Data location Job TiSpark DistSQL API TiKV TiDB TSO/Data location Worker Worker Worker Spark Cluster TiDB Cluster TiDB ... ... ... DistSQL API PD PD PD Cluster TiKV TiKV TiDB PD 天下大势,合久必分,分久必合 《三国演义》 图 + 关系型多模实现 01. 副标题 g_prefix Vertex_ID Tag_ID g_prefix src_Vertex_ID0 码力 | 26 页 | 1.14 MB | 1 年前3
高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁protocol SQL NoSQL tidb-server tikv-server •No single point of failure •Automatic failover High Availability at Scale •Snapshot isolation @ TiDB •Linearizability @ TiKV Strong Consistency at Scale0 码力 | 45 页 | 4.63 MB | 1 年前3
Rust分布式账务系统 - 胡宇+ Rust 插件 Gitlab CI/CD 心路历程 真刀实枪 – 文档工具 文档生成 CI/CD git page 作为文档 心路历程 吐槽点 ● Nightly 版本编译器: tikv , raft-rs ● 无官方库,官方库支持不成熟 ○ Kafka (第三方: https://github.com/kafka-rust/kafka-rust) ○ PostgreSQL0 码力 | 27 页 | 12.60 MB | 1 年前3
共 6 条
- 1













