![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 77
从未想放弃
这个作者很懒,什么都没留下…
展开
-
【纠删码存储引擎】从0到1沉浸式体验CubeFS
今天带大家体验一所提供的纠删码存储系统,官网也提供了相关部分,以下是在最小CentOS系统上搭建纠删码存储引擎的记录,小伙伴在其他完善的linux系统相应流程可增减~原创 2023-02-21 15:11:07 · 576 阅读 · 0 评论 -
rpc 带body重试机制【Golang】
golang http请求带body重试解决方案原创 2022-12-13 16:34:11 · 170 阅读 · 0 评论 -
【C++】学习:引用、 右值引用 案例
在C++的学习过程中,我们经常会采用引用来作为传递的参数,可以减少拷贝次数。然而在大型的数据操作中,我们很容易造成拷贝,而且这些拷贝会涉及大量的数据复制,从而降低程序的主体性能。今天我们尝试以一个案例来介绍如何采用右值引用来减少数据的复制。.........原创 2022-06-05 23:16:52 · 288 阅读 · 0 评论 -
【Raft】学习九:成员变更ConfChangeV2
前言在分布式系统中,节点的增删是常见也是必须的操作,对于实用的共识算法Raft自然也提供了关于节点变更的理论基础。在Raft算法中一次变更一个节点是天然支持的,如果一次涉及多个节点的变更,对于一个稳定的系统来说就具有一定风险。例如,在前面的介绍leader选举时,leader的选举依赖集群中的大多数,如果改变了这个大多数,就会导致leader在选举出现问题。如下图(图来源于这里)所示,当新配置占据大多数,而原leader在老配置中就可能会产生新两个leader。因而本文基于Raft的理论和etcd/raf原创 2022-04-29 00:05:38 · 599 阅读 · 0 评论 -
【raft】学习:论文In Search of an Understandable Consensus Algorithm (Extended Version)翻译
摘要raft 是一个用来管理多副本的共识算法, 他的功能等价于多阶Paxos,且和paxos效率不相上下,不过结构不同于Paxos;相比于Paxos,raft更容易理解,为构建可实践系统提供了更好的基础。为了增强可理解性,raft拆分了共识的关键要素,如主节点选举、日志复制和安全,除此增强了连贯性(coherency)以减少必须考虑的状态数。从使用学习结果来看,相比于Paxos,raft更有容易学习对于学生来说。Raft还包含了改变集群成员关系的方案,采用了大多数重叠以保证安全性。概述共识算法允许一组翻译 2022-04-24 11:11:12 · 304 阅读 · 0 评论 -
【操作系统】:零拷贝
前言不知道有没有朋友和笔者一样,在没有了解零拷贝以前,便从字面意思理解为没有拷贝,单纯而又美好;其次在刚接触工作的时候,老练的同事们在讨论性能优化的时候,拷贝这个词也会时常提及,在学习kafka时,也看到其在性能点中提到零拷贝技术。所以拷贝以及零拷贝的学习势在必得,基于此,花了一段时间学习了拷贝和零拷贝。本文文字较多,需要耐心的阅读,当然后期笔者会补上一些示意图,辅助理解。本文主要尝试搞明白的问题有如下几个:什么是拷贝?什么是零拷贝?零拷贝有哪些实现方式?以及其他的一些基本概念等等…基本概念原创 2022-04-21 13:01:22 · 3692 阅读 · 0 评论 -
【raft】学习八:ReadIndex
本文主要了解了一下一致性的一些基本知识,以及跟随etcd/raft的代码逻辑,探讨了一个只读请求需要经历哪些操作,主要探讨了两种方式:readIndex和lease read。原创 2022-04-18 19:38:07 · 846 阅读 · 0 评论 -
【raft】学习七:etcd/raft节点启动流程
前言在前面的raft学习中,探讨了基于etcd/raft的一些数据结构和raft的日志存储,以及Leader选举算法。随着对raft的使用和了解,本次将带着前面的学习,看看raft 节点的启动流程和一些准备工作,从而在使用raft时能够更加简单地将raft运用到我们的实际工作中。准备工作raft本身是一种一致性同步协议,因而需要实体节点来运行协议并提供输入和输出,RawNode是原生的 raft 节点的实体,里面包含了raft协议层和一些状态信息。RawNodetype RawNode struc原创 2022-04-16 18:26:49 · 1452 阅读 · 0 评论 -
【raft】学习六:etcd/raft 选举和选举优化
前言又到了王家村一年一度的村支书选举时间,依据王家村的历史经验,王家村中依法享有选举权和被选举权的每位村民都可以参与选举。由于村支书这个职位在王家村备受好评,因而王家村每年的村长选举都非常激烈。村支书选举委员每年都非常头疼,由于王家村的村民大多数都没有在家,导致一次选举时常出现一些问题,因此王家村每年都在线上展开选举。由于每年王家村的村民报名参加的人数比较多,但王家村的村民都遵守村支书选举委员会定制的规则,且选举委员公正无私,因而王家村选举委员会面临以下几个问题;怎么发起选举,且有序地进行?具有相同原创 2022-04-15 17:00:45 · 1034 阅读 · 0 评论 -
【raft】学习五:日志结构raftLog
基于etcd/raft 对raftLog的学习原创 2022-04-14 16:34:00 · 1055 阅读 · 0 评论 -
【raft】学习二:etcd/raft raft数据结构学习
Raft-etcd 源码学习各位朋友大家好啊,还没有学习消息类型的盆友,可以去这里哦,本次主要学习一下raft协议层中所定义的数据结构。数据结构学习type raft struct { // id ID代表当前节点的ID id uint64 // Term 代表当前任期 Term uint64 // Vote 当前节点投票给了谁,可以是自己 Vote uint64 // readStates 存储读请求到的结果数据 readStates []ReadState // the lo原创 2022-02-28 22:11:53 · 298 阅读 · 0 评论 -
【raft】学习一:etcd/raft 19种消息类型解读
消息类型说明在raft定义了18种消息类型:// MsgHup 这个消息类型是为了让自己的节点接收到消息后将状态改为candidate的状态,发起选举, // 可以看到tickElection会调用step函数发送一条类型为MsgHup的消息 // 这是一个本地消息(发给自己),通过心跳告诉自己可以开始选举 MsgHup MessageType = 0 // MsgBeat 当本节点是leader的时候会向子节点发送心跳 MsgBeat MessageType = 1 // MsgProp原创 2022-01-19 22:03:48 · 1515 阅读 · 0 评论 -
linux 文件打洞
文件打洞在许多文件存储场景中,时常存在文件内容的删除和更新,每当删除一些文件中内容时,会存在空间回收问题。正好最近遇到这个问题,在这里记录一下。文件空间回收的常见解决方案将文件中有效内容拷贝到新的文件中,删除旧的文件从而释放空间;类比数组,将后面的数据向前移动,移动的偏移为删除的数据长度;文件打洞。场景分析在一般的场景下,数据量不大(小于10G)或者数据与其他文件没有关联性,移动数据或者拷贝数据相对于文件打洞性能区别不打。如果当前的数据和其他数据存在数据关联,数据的位置的变更很大程度会影响原创 2021-10-20 11:38:32 · 849 阅读 · 0 评论