Real world Rust
- Why and how we use Rust in TiKV
506.53 KB
29 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档介绍了PingCAP公司选择使用Rust语言开发TiKV的原因和方法。Rust因其高性能、内存安全性和现代工具链被选为开发TiKV的语言,尽管学习成本较高。TiKV是一个高性能、稳定的分布式KV数据库,支持ACID跨行事务和MVCC无锁快照读,构建于Raft共识算法之上,不依赖分布式文件系统。文档还讨论了Rust与C的互操作性,Rust对C的调用没有开销,但C代码无法保证安全性。TiKV的设计需要处理分布式系统的复杂性,并与TiDB配合使用以支持SQL层的下推算子。 | ||
AI总结 | ||
# 《Real world Rust - Why and how we use Rust in TiKV》总结
## Rust 2017 Roadmap
- **优化学习曲线**:降低学习难度。
- **完善工具链和 IDE**:提升开发体验。
- **补全异步和并发编程工具包**:支持高性能后端服务开发。
- **常用包稳定性**:大多数包达到 1.0 版本。
## Rust 特点
- **优点**:更少代码实现更安全的程序,类似更现代的 C++。
- **缺点**:早期学习成本较高。
- **解决问题**:架构和范式为核心,语言替换不是银弹。
## TiKV 概述
- **定位**:高性能、稳定的分布式 KV 数据库。
- **设计需求**:
- **性能**:极低延迟,延迟稳定。
- **复杂性**:分布式系统逻辑复杂,涉及 Raft、Multi-Raft 和分布式测试框架。
- **交互**:与 C 模块大量交互。
- **资源**:5 人团队,目标半年内发布首个版本。
## 语言选型
- **候选语言**:Go、C++11、Rust。
- **选择理由**:
- **跨线程通信**:Channel 和 Arc+Mutex。
- **Rust 对 C 的调用**:无 overhead,但 C 调用 Rust 不保证安全。
- **场景特殊性**:配合 RocksDB 使用。
## 工具与技术
- **周边工具**:cargo、clippy、rustfmt、kcov、perf+flamegraph。
- **Sync 原语**:
- **Send 特性**:安全跨线程传递。
- **Sync 特性**:安全跨线程共享。
- **Rust 类型系统**:自动推导和编译检查,确保线程安全。
## TiKV 功能
- **核心特性**:
- 支持 ACID 和跨行事务。
- 支持 MVCC 无锁快照读。
- 基于 Raft 构建,无依赖分布式文件系统。
- 与 TiDB 配合,支持 SQL 层下推算子。
## 总结
- **Rust 优势**:高性能、内存安全、简洁代码。
- **TiKV 成功**:基于 Rust 构建的高性能分布式 KV 数据库,解决复杂分布式问题。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
22 页请下载阅读 -
文档评分