TiKV 源码解析系列文章(一)序

该系列文章深入探讨了TiKV的源码,涵盖了它如何使用Rust和RocksDB实现分布式事务,基于Raft的一致性协议,以及采用gRPC进行通信。文章还讨论了Prometheus监控、错误注入机制以及与PD的交互。
摘要由CSDN通过智能技术生成

TiKV 源码解析系列文章(一)序

https://cn.pingcap.com/blog/tikv-source-code-reading-1/

  • TiKV 是一个支持事务的分布式 Key-Value 数据库
    • 项目地址:https://github.com/tikv/tikv
    • Rust:pingcap Rust 培训课程
    • TiKV文档:
      • 《TiKV 源码解析系列文章》
        • 周边库->TikV->PD
      • 《Deep Dive TiKV 系列文章》
  • 周边项目
    • raft-rs:https://github.com/pingcap/raft-rs
    • rust-prometheus:https://github.com/pingcap/rust-prometheus
    • rust-rocksdb:https://github.com/pingcap/rust-rocksdb
    • fail-rs:https://github.com/pingcap/fail-rs
    • rocksdb:https://github.com/pingcap/rocksdb
    • grpc-rs:https://github.com/pingcap/grpc-rs
    • pd:https://github.com/pingcap/pd
  • rust-rocksdb
    • TiKV 使用 RocksDB 作为底层数据存储方案
    • Rust 是如何通过 Foreign Function Interface (FFI) 来跟 C library 进行交互
      • Foreign Function Interface:调用另一种编程语言编写的服务
    • 如何将 RocksDB 的 C API 封装好给 Rust 使用的
  • pingcap/rocksdb
    • Key-Value 分离引擎 - Titan
    • 如何使用 RocksDB 对外提供的接口来构建自己的 engine
  • raft-rs
    • TiKV 使用 Raft 一致性协议,将 etcd 的 Go 实现 port 成了 Rust
    • Raft的基本功能实现
      • 选举
      • Log复制
      • snapshot
    • 对Raft的优化
      • pre-voke
      • check quorum机制
      • batch
      • pipeline
    • 如何使用Raft库,在应用中集成Raft
  • grpc-rs
    • rpc:remote procedure call,远程过程调用
    • TiKV 使用 gRPC 作为通讯框架,把 Google C gRPC 库封装在 grpc-rs 中
    • 如何去封装和操作 C gRPC 库,启动一个 gRPC 服务
    • 使用 Rust 的 futures-rs 来将异步逻辑变成类似同步的方式来处理
    • 如何通过解析 protobuf 文件来生成对应的 API 代码
    • 基于grpc-rs库构建一个简单的 gRPC 服务
  • rust-prometheus
    • TiKV 使用 Prometheus 作为其监控系统
    • rust-prometheus 库是 Prometheus 的 Rust client
    • 如何支持不同的 Prometheus 的数据类型
      • Counter
      • Gauge
      • Historgram
    • 如何通过使用 Rust 的 Macro 来支持 Prometheus 的 Vector metrics
    • 如何在项目中集成 Prometheus client,将 metrics 存到 Prometheus 里面,方便后续分析
  • fail-rs
    • 错误注入
      • 在代码的某些地方加上 hook,注入错误,然后在系统运行的时候触发相关的错误,看系统是否稳定
    • 如何通过 macro 来注入错误,如何添加 hook,以及如何触发
  • TiKV
    • Raftstore:
      • 如何使用 Raft
      • 如何支持 Multi-Raft
    • Storage:
      • Multiversion concurrency control (MVCC)
      • 基于 Percolator 的分布式事务的实现
      • 数据在 engine 里面的存储方式
      • engine 操作相关的 API
    • Server:
      • TiKV 的 gRPC API
      • 不同函数执行流程
    • Coprocessor:
      • TiKV 如何处理 TiDB 的下推请求,通过不同的表达式进行数据读取以及计算
    • PD:
      • TiKV 如何与 PD 进行交互
    • Import:
      • TiKV 如何处理大量数据的导入
      • 如何与 TiDB 数据导入工具 TiDB Lightning 交互
    • Util:
      • 介绍一些 TiKV 使用的基本功能库
  • PD
    • 负责整个 TiKV 的调度
    • PD 内部是如何使用 etcd 来进行元数据存取和高可用支持,如何跟 TiKV 交互,如何生成全局的 ID 以及 timestamp
    • 介绍 PD 提供的 scheduler,以及不同 scheduler 的职责,通过配置 scheduler 来让系统更加的稳定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值