Zookeeper源码分析(8)- CommitProcessor
来源:互联网 发布:银行卡卡号生成软件 编辑:程序博客网 时间:2024/05/22 02:07
这个processor主要负责将已经完成本机submit的request和已经在集群中达成commit的request匹配,并将匹配后的request交给nextProcessor(即ToBeAppliedRequestProcessor)处理
这是个异步处理的processor,它有两个入口:
- 一个是前面的processor调用的processRequest,它把request放到队列queuedRequests中
- 另一个是leader在收到follower的ack包后,调用的processAck函数,如果leader收到了足够的ack包,他会调用这个processord的commit函数,这个函数把请求放入到队列committedRequests中
这个processor还会启动一个线程,他的主要是逻辑就是匹配queuedRequests和committedRequests中的request,匹配是基于两个队列的对首比较的,然后比较两个队列对首的以下元素:
- request的txnHeader
- request的record
- request的zxid
如果都匹配上了就把这个request发给ToBeAppliedRequestProcessor处理
0 0
- Zookeeper源码分析(8)- CommitProcessor
- Zookeeper源码分析(1)- Zookeeper的启动流程
- Zookeeper源码分析(2)- zookeeper的选举流程
- Zookeeper源码分析(一)-Zookeeper启动过程
- Zookeeper源码分析(五)-Zookeeper选举实例流程
- Zookeeper源码分析(5)- PrepRequestProcessor
- Zookeeper源码分析(6)- ProposalRequestProcessor
- Zookeeper源码分析(7)- SyncRequestProcessor
- Zookeeper源码分析(9)- ToBeAppliedRequestProcessor
- Zookeeper源码分析(10)- FinalRequestProcessor
- Zookeeper源码分析(11)- FollowerRequestProcessor
- Zookeeper源码分析(二)-ZKDatabase.loadDataBase()
- 【Zookeeper】源码分析之服务器(三)
- 【Zookeeper】源码分析之服务器(三)
- 【Zookeeper】源码分析之服务器(二)
- 【Zookeeper】源码分析之服务器(一)
- 【Zookeeper】源码分析之服务器(三)
- 【Zookeeper】源码分析之服务器(二)
- 中值滤波
- 杭电OJ 1381 :Crazy Search
- PhoneGap插件开发示例(iOS)
- erlang基础知识点
- 一个程序员在卖软件服务中学到的销售经验
- Zookeeper源码分析(8)- CommitProcessor
- android aapt用法
- java 数组转化为list接口
- java比较器Comparable接口和Comaprator接口
- erlang运算符
- Android Application基础
- NGUI学习笔记(二)UISprite
- Zookeeper源码分析(9)- ToBeAppliedRequestProcessor
- 出现ORA-12154: TNS:could not resolve the connect identifier specified 连接错误