pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.