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
TiDB v5.3 Documentation... 394 7.6.2 TiFlash_schema_apply_duration ..... 394 7.6.3 TiFlash_raft_read_index_duration ..... 395 7.6.4 TiFlash_raft_wait_index_duration ..... 395 7.7 Customize Configurations of Monitoring Execution Plans 669 10 Tutorials 702 10.1 Multiple Data Centers in One City Deployment 702 10.1.1 Raft protocol 702 10.1.2 Three DCs in one city deployment 703 10.2 Three Data Centers in Two Cities step …… 2995 15.4 P …… 2995 15.4.1 pending/down …… 2995 15.5 R …… 2995 15.5.1 Region/peer/Raft group …… 2995 15.5.2 Region split …… 2996 15.5.3 restore …… 2996 15.6 S …… 2996 15.6.1 scheduler0 码力 | 2996 页 | 49.30 MB | 2 年前3
Rust分布式账务系统 - 胡宇## API 解耦 ● 稳定的底层 API ● 灵活的顶层 API ## 层级账号 ● 树状结构 ● 聚合查询 ## Rust ● 正确性:内存安全,线程安全 ● 可靠性:Raft 共识算法 raft-rs 高性能:关键路径无锁单线程 ## 分布式账务系统 Gateway 副本1 Gateway 副本 2 Gateway 副本 3 路由层:无状态 Gateway 副本 _1.jpg) ## 分布式账务系统 ## 账户层: ## Auticuro 1. 接受转账请求,转换成 events 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 共识:基于 raft-rs 的可靠消息队列 ☐ 存储:Rocksdb with Rust  ## 分布式账务系统 ## 账户层: ## Auticuro 1. 接受转账请求,转换成 events 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 3. 处理被共识的 events,更新状态机(账户表) ☐ 去重 & 更新余额 ☐ 关键路径采用无锁单线程 : if length(a)0 码力 | 52 页 | 2.05 MB | 2 年前3
Rust算法教程 The Algos (algorithms)## Algos算法教程 Rust作为一门现代化的系统编程语言,拥有与C/C++类似的性能,同时又能做非常底层的性能优化,因此非常适合写算法和LeetCode。 Algos 算法教程涵盖了各种常用算法和数据结构的代码实现,以及LeetCode题解,同时对于相关算法还提供了中文文档和注释,可以帮助大家更好、更快的学习。 ## 关于算法 算法,一个高大上的词汇,在计算机领域也绝对是凡人的禁忌, 但是其实算法又没那么神秘,我们在写代码时,无时无刻都在与算法打交道,只是绝大部分算法我们无法感知到而已,因为这些算法已经很好的被包装在其它库中,我们只需要输入数据然后调用它获得输出数据即可,因此这就引出了算法的基本定义: 计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。(以上内容摘抄自百度百科),简单点说计算机算法就是将输入转化为所要求的输出过程。 既然只要调用别人的算法库即可完成任务,我们为什么要学习算法呢?原因很简单:面试需要。哈哈,开个玩笑,当然面试很重要,但是提升自己的能力也很重要,学习算法往往能提升我们对于代码的深层次理解和认识,你会知道为何要优化代码,该如何优化代码,甚至在真的需要你手撸算法时,心中也有一个明确的思路:我该选择哪个算法,而不是一片茫然,只知道用遍历的方式来完成任务。 所以现在开始我们的算法之旅吧,本章重点呈现各0 码力 | 270 页 | 8.46 MB | 2 年前3
Hello 算法 1.1.0 Dart版FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO >Hello算法 动画图解、一键运行的数据结构与算法教程 靳宇栋 (@krahets) Hello 算法 Dart 语言版 作者:靳宇栋 (@krahets) 代码审阅:刘玉新 (@gvenusleo)  ## Hello 算法 Go 语言版 作者:靳宇栋 (@krahets) 代码审阅:刘代富 (@Reanon) Release 1.1.0  2024-04-15 ## 序 两年前,我在力扣上分享了“剑指 Offer”系列题解,受到了许多读者的鼓励和支持。在与读者交流期间,我最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满 挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的“知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge0 码力 | 383 页 | 18.48 MB | 2 年前3
Hello 算法 1.1.0 Java版FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO FELLO >Hello算法 动画图解、一键运行的数据结构与算法教程 靳宇栋 (@krahets) Hello 算法 Java 语言版 作者:靳宇栋 (@krahets)  Hello 算法 JavaScript 语言版 作者:靳宇栋 (@krahets) 代码审阅:谢发 (@justin-tse)  ## Hello 算法 Kotlin 语言版 作者:靳宇栋 (@krahets) 代码审阅:陈东辉 (@curtishd) 












