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-沈泰宁## 构建强一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ## 极客时间 | 企业服务 ## 想做团队的领跑者 需要迈过这些“槛” 成长型企业,易忽视人才体系化培养企业转型加快,团队能力又跟不上 团队成员技能水平不一, 难以一“敌”百人需求 寻求外部培训,奈何价更高且集中式学习 学习效果难以统计,产生不良循环 VS VS VS Machine $$ A = 1 \quad B = 2 $$ Raft Module State Machine $$ \begin{array}{c|c} A = 1 \\ B = 2 \end{array} $$ Raft Module State Machine $$ A = 1 \quad B = 2 $$ Raft Module Log $$ A = 1 \quad \quad B = 2 $$ Log $$ A = 1 \quad B = 2 $$ Log $$ A = 1 \quad B = 2 $$ ## Raft: Key Points •Leader election • Voting for leader • Network isolation/node failure tiggers election ## •Log replication0 码力 | 45 页 | 4.63 MB | 2 年前3
Greenplum 排序算法## Greenplum内核揭秘之 ## ☐ ☐ ☐ ☐ ## 排序算法 钉钉直播 | 9月25日 16:00 - 17:00 #### Greenplum中文社区 https://cn.greenplum.org 博文·资料·文档·项目 ## GREENPLUM DATABASE $ ^{®} $ : if length(a)0 码力 | 52 页 | 2.05 MB | 2 年前3
Curve文件系统元数据持久化方案设计元数据持久化 • 前言 • Raft Log • Raft Snapshot - 持久化文件 - key value pairs - 其他说明 实现 • 1、inode、entry 的编码 • 2、KVStore • Q&A • 单靠 redis 的 AOF 机制能否保证数据不丢失? • redis 的高可用、高可扩方案? • redis + muliraft • 参考 • redis 中哈希表实现的优点? ## 前言 根据之前讨论的结果,元数据节点的架构如下图所示,这里涉及到两部分需要持久化/编码的内容: • Raft Log: 记录 operator log • Raft Snapshot:将内存中的数据结构以特定格式 dump 到文件进行持久化 copyset-2 copyset-1  Raft Log |字段|字节数|说明| |---|---|---| |type|1|操作类型,共有以下2类:• SET (OX01):ADD和UPDATE都可以转换成SET操作• DEL (OX00 码力 | 12 页 | 384.47 KB | 1 年前3
微服务场景下的数据一致性解决方案 - 殷湘和平统一 # 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心  ## 大纲 • 离 数据一致性的起因 • 合 数据一致性的解决方案 • 断 方案选择建议 ## 离 数据一致性的起因  ## 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证  ## 微服务场景 ## 数据一致性无法完全通过数据库保证 离 独立进程  独立部署 独立技术 独立团队 MongoDB Cassandra ## 合 数据一致性的解决方案 ## Saga • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT =0 码力 | 31 页 | 4.28 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) 












