zookeeper
jeff_fangji
喜欢专研计算机技术
展开
-
Zookeeper内幕
这篇博文是关于Zookeeper官网上zookeeperInternals的翻译(http://zookeeper.apache.org/doc/trunk/zookeeperInternals.html),讲述了Zookeeper的内部机制。由于博主的水平有限,如有错误和疏漏之处,恳请读者不吝指正。翻译 2015-01-06 23:37:18 · 5098 阅读 · 0 评论 -
Zookeeper源码分析:Watcher机制
通过Watcher源码分析,可以更加清晰地理解Watcher的特性。 本文通过源码分析了设置Watcher,以及修改znode数据触发Watcher的过程。原创 2015-02-22 22:47:06 · 1686 阅读 · 0 评论 -
ZooKeeper源码分析:Quorum请求的整个流程
Quorum请求是转发给Leader处理,并且需要得一个Follower Quorum确认的请求。这些请求包括: znode的写操作(OpCode.create,OpCode.delete,OpCode.setData,OpCode.setACL) , Session的创建和关闭操作(OpCode.createSession和OpCode.closeSession) 以及OpCode.multi。本博文分析了Client, Follower和Leader协同完成Quorum请求的过程。原创 2015-01-22 00:01:23 · 8397 阅读 · 2 评论 -
Zookeeper: Session的状态和生命期
Zookeeper的Session生命期(Lifetime)是从创建到结束的这段时间。Session的结束可能是被优雅地关闭,也可能是因超时而被关闭。在讲Session的行为之前,我们需要先考虑一下Session可能出现的状态,以及改变这些状态的事件。(这篇博客是Flavio Junqueria和Benjamin Reed的Zookeeper书的第二章中States and the Lifetime of a Session翻译)翻译 2015-02-23 14:30:06 · 8077 阅读 · 0 评论 -
Zookeeper的日志和磁盘使用
服务器使用事务日志来持久化事务。在接受一个提案之前,服务器(Follower和Leader)需要将提案中的事务持久化到事务日志中。事务日志是服务器本地磁盘的一个文件。事务按顺序附加到这个文件。服务器时不时的会关闭当前文件,创建一个新文件来滚动(Roll Over)日志。翻译 2015-03-02 23:40:50 · 2142 阅读 · 0 评论 -
ZooKeeper源码分析:Log和Snapshot持久化(SyncRequestProcessor类)
事务日志的持久化是在SyncRequestProcessor类中实现,并会按照一定的规则滚动日志(关闭当前文件,创建一个新文件),以及生成新的Snapshot。在持久化过程中,使用组提交(Group Commits)来优化磁盘io 操作。组提交是指将多个Request对象的事务作为一次写附加到磁盘上。使用这种方式可以在持久化多个事务的时候,只使用一次磁盘寻道(Disk Seek)的开销。原创 2015-03-03 23:50:03 · 1965 阅读 · 0 评论 -
Zookeeper:服务器和会话
会话(Session)构成了Zookeeper中的一个重要抽象。顺序保证(Ordering guarantee),临时节点(Ephemeral znode)和Watch都与会话紧密耦合。因此,Session追踪机制(Session track mechnism)对于Zookeeper来说是非常重要的。翻译 2015-03-07 22:52:05 · 1264 阅读 · 0 评论