自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 zookeeper服务器初始化的过程

在Zookeeper服务器启动期间,首先会进行数据初始化工作,用于将存储在磁盘上的数据文件加载到Zookeeper服务器内存中。初始化流程整体流程图如下: 数据的初始化工作是从磁盘上加载数据的过程,主要包括了从快照文件中加载快照数据和根据事务日志进行数据修正两个过程。1.初始化FileTxnSnapLog。FileTxnSnapLog是Zookeeper事务日志和快照数据访问层,用于衔接上层业

2017-08-16 15:57:23 1973 2

原创 FinalRequestProcessor

FinalRequestProcessor是责任链中的最后一个请求处理器,负责把已经commit的写操作(事务)应用到内存数据库中去,对于读操作则从本机中读取数据并返回给client。创建客户端请求的响应。FinalRequestProcessor是一个同步处理的processor,主要的处理逻辑就在方法processRequest中:如果request.hdr != null,则表明reques

2017-08-16 14:46:18 464

原创 ToBeAppliedRequestProcessor

ToBeAppliedRequestProcessor处理器是Leader的一个内部类,主要是为了维护Leader类的toBeApplied队列,专门用来存储那些已经被 CommitProcessor处理过的可被提交的(已经完成投票)proposal。但是这些proposal还没有应用到本机的内存中(这个工作是由FinalRequestProcessor来完成的)CommitProcessor的pr

2017-08-16 10:33:42 459

原创 CommitProcessor事务提交处理器

这个processor主要负责将已经完成本机submit的request和已经在集群中达成commit(即收到过半follower的proposal ack)的request匹配,并将匹配后的request交给nextProcessor(对于leader来说是ToBeAppliedRequestProcessor)处理。这是个异步处理的processor,它有两个入口:首先对两个队列进行重点介绍:

2017-08-16 10:05:29 1019

转载 Raft一致性算法论文的中文翻译

摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,R

2017-08-15 09:34:43 431

转载 SyncRequestProcessor事务日志记录处理器

概括SyncRequestProcessor主要用来将事务请求记录到事务日志文件中,同时还会在合适时候触发zookeeper进行数据快照。SyncRequestProcessor是个异步处理的processor,启动后会有一个线程异步获取队列queuedRequests中的request并处理SyncRequestProcessorr负责把事务请求(写request)持久化到本地磁盘,为了提高写磁盘

2017-08-13 15:22:21 749

原创 stl list原理和用法

List的节点template <class T>struct __list_node{typedef void* void_pointer; void_pointer next; //型别为void*,也可以设为__list_node<t>*void_pointer prev;T data;};List的迭代器在Vector中如果进行插入和删除操作后迭代器会失效,List有一个重要的

2017-08-02 14:16:03 811

转载 leveldb(十一):SSTable之2写sstable文件

个人总结:1.由上一篇我们知道了一个sstable文件是由很多个不同的block组成的,其中最重要的两个是Data Block和Index Block。我们知道除了第0层,其他层的sstable都是按key增长的顺序存储kv对的。Data Block就是存储这些kv对的block。每个Data Block管一段key的范围。Index Block就是负责记录每段key是在哪个Data Bl

2017-08-02 11:12:40 619 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除