Raft在Curve存储中的工程实践## raft在Curve存储中的工程实践 D I G I T A L S A I L 陈威 Curve Maintaner 网易资深服务端开发工程师 01 Curve介绍 项目背景 | Curve架构 | 使用场景 | Curve社区 raft和braft raft协议介绍 | braft介绍 raft在Curve中的应用 raft in Curve块存储 Curve块存储 | raft in curve文件存储 | 配置变更 Curve对raft的优化 优化点1 | 优化点2 05 Q&A 答疑 ## 项目背景 ## Curve是一个高性能、更稳定、易运维的云原生分布式存储系统,支持块存储和文件存储 Curve块存储和文件存储均采用raft协议 ## 2021 ~2022 Curve文件存储 ## 2018 ~2021 Curve块存储 Curve社区 02 raft和braft raft协议介绍 | braft介绍 03 raft在Curve中的应用 raft in Curve块存储 | raft in curve文件存储 | 配置变更 04 Curve对raft的优化 优化点1 | 优化点2 05 Q&A 答疑 ## RAFT协议简介 ## 什么是raft - raft 是一种新型0 码力 | 29 页 | 2.20 MB | 1 年前3
Hyperledger Fabric 1.4 Documentationimplementations. The first is based on the etcd library [https://coreos.com/etcd/] of the Raft protocol [https://raft.github.io/raft.pdf]. The other is Kafka [https://kafka.apache.org/] (which uses Zookeeper [https://zookeeper patch release. ## Raft ordering service Introduced in v1.4.1, Raft [https://raft.github.io/raft.pdf] is a crash fault tolerant (CFT) ordering service based on an implementation of Raft protocol in etcd [https://coreos.com/etcd/]. Raft follows a “leader and follower” model, where a leader node is elected (per channel) and its decisions are replicated to the followers. Raft ordering services should be0 码力 | 701 页 | 9.02 MB | 2 年前3
PingCAP Infra Meeutp 申砾 82 What is New TiDBTools • What's next? ### TiDB 2.1 ## PD/TiKV (1/2) • Version Control • PreVote ○ PD ○ TiKV • Raft Learner • Hotspot scheduling • Asynchronous log ## PD/TiKV (2/2) • Fix DST issue • Batch Split balance/split hot region • Powerful replica strategy ☐ IDC ☐ Replica count 3/5/7 ## TiKV • Multi-thread Raft store • Multi-thread Apply worker • Consensus Join • The next generation storage engine ☐ Optimize0 码力 | 20 页 | 446.68 KB | 1 年前3
Estimation of Availability and Reliability in CurveBS## Estimation of availability and reliability in CurveBS CurveBS uses the RAFT protocol to maintain consistency of stored data. It generally takes the form of 3 replicas of data. If one replica fails0 码力 | 2 页 | 34.51 KB | 1 年前3
Curve设计要点8e0fd1b2626578fba41c/p22_4.jpg) 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景 ## 高性能 • quorum机制:raft • 轻量级快照 • io路径上的优化 • filepool落盘零放大 • 轻量级线性一致性读 • io路径上用户空间零拷贝 10卷4K随机读写IOPS  ## 高可用 chunkserver 使用raft, 2N + 1 个副本允许 N 副本异常  | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ## 近期规划 ## • 性能优化 • 满足数据库性能要求 大io吞吐优化 • muti raft 性能优化 ## • 开源 系列技术分享 参与开发人员线上议题讨论会 ## 欢迎大家参与CURVE项目!  - 配合 TiDB 使用, 需要有健全的逻辑实现 SQL 层的下推算子  ## TiKV 的前置需求 极高的性能要求,尽可能低延迟,而且延迟需要稳定 ● 设计分布式系统的逻辑,极其复杂 ☐ Raft ☐ Multi-Raft ☐ 分布式测试框架 和 C 的模块大量交互 • 开发人员和时间不足 ☐ 5人的团队,希望半年左右发布第一个可用版本  ## 分布式账务系统 ## 账户层: ## Auticuro 1. 接受转账请求,转换成 events 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 共识:基于 raft-rs 的可靠消息队列 ☐ 存储:Rocksdb with Rust  ## 分布式账务系统 ## 账户层: ## Auticuro 1. 接受转账请求,转换成 events 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 3. 处理被共识的 events,更新状态机(账户表) ☐ 去重 & 更新余额 ☐ 关键路径采用无锁单线程  Raft Log |字段|字节数|说明| |---|---|---| |type|1|操作类型,共有以下2类:• SET (OX01):ADD和UPDATE都可以转换成SET操作• DEL (OX00 码力 | 12 页 | 384.47 KB | 1 年前3
Curve for CNCF Mainbandwidth becomes a bottleneck in case of Sequential read and Sequential write ## CurveBS Features • RAFT for data consistency • minor impaction when chunk server fails • Precreated chunk file for volume detection and schedule tuning ### Storage Engine Comparison (vs. Ceph) |DATA CONSISTENT PROTOCOL|CURVE (RAFT)|CEPH| |---|---|---| |WRITE SUCCESS|majority write successful|all write successful| |READ|Leader of storages (open cloud storage and on-prem storage) and expose unified file space for app accessing • RAFT for data consistency - POSIX-compatible • Cloud native support APPs CurveFS API Curve Block API0 码力 | 21 页 | 4.56 MB | 1 年前3
共 223 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23
相关搜索词
Raft协议Curve存储ChunkServerCopyset快照机制Raft操作服务SDK长期支持私有数据Version ControlPreVoteRaft LearnerHotspot schedulingCascades OptimizerCurveBSRAFT协议副本故障率恢复时间Curve高性能分布式存储multi raft开源RustTiKV内存安全并发RocksDB性能ACID事务MVCC架构TiDB数据迁移性能优化EXPLAIN ANALYZERaft联合共识算法分布式账务系统Raft共识算法存算分离读写分离元数据持久化Raft一致性算法MultiRaft键值对Redis分布式存储系统CurveFSRAFT一致性协议云原生支持













