07 2017 档案
PostgreSQL查询优化逻辑优化之其他
摘要:上一节我们介绍了PostgreSQL的子查询优化,子查询优化把一部分可以优化的子查询上拉到主查询成为join。 preprocess_expression 将表达式(目标列,where,join,having)简化表达式 eval_const_expressions canonicalize_qua 阅读全文
posted @ 2017-07-13 17:30 bitError 阅读(1772) 评论(0) 推荐(0)
PostgreSQL查询优化之子查询优化
摘要:子查询优化 上拉子连接 上拉子连接主要是把ANY和EXIST子句转换为半连接 pull_up_sublinks_jointree_recurse递归上拉子连接函数 pull_up_sublinks_qual_recurse上拉限制条件中的子连接 用于递归上拉限制条件中存在的子连接(ANY,EXIST 阅读全文
posted @ 2017-07-13 17:29 bitError 阅读(3013) 评论(0) 推荐(0)
PostgreSQL查询优化器之grouping_planner
摘要:grouping_planner主要做了3个工作: 1. 对集合进行处理 2. 对非SPJ函数进行优化 3. 对SQL查询语句进行物理优化 grouping_planner实现代码如下: query_planner生成最优查询路径 产生两个最优查询路径,主要是cheatest_path(未排序)和s 阅读全文
posted @ 2017-07-13 17:29 bitError 阅读(1439) 评论(0) 推荐(1)
PostgreSQL事务实现
摘要:事务简介 事务管理器:有限状态机 日志管理器 CLOG:事务的执行结果 XLOG:undo/redo日志 锁管理器:实现并发控制,读阶段采用MVCC,写阶段采用锁控制实现不同的隔离级别 PostgreSQL为每条事务创建一个postgre进程,并发执行事务。采用分层的机制执行事务,上层事务块和底层事 阅读全文
posted @ 2017-07-13 17:24 bitError 阅读(8844) 评论(0) 推荐(0)
zookeeper ZAB协议 Follower和leader源码分析
摘要:Follower处理逻辑 总结 源码差不多看完了,整体挺复杂的,这里总结一下发现和同步的过程。 newEpoch:提供服务的epoch acceptedEpoch:没有确认的epoch,LEADERINFO阶段 currentEpoch:确认的epoch,接收到UPTODATE后 lastLogge 阅读全文
posted @ 2017-07-10 20:05 bitError 阅读(1197) 评论(0) 推荐(0)
ZooKeeper 状态机
摘要:ZAB状态机 QuorumPeer这个线程负责状态机的维护 阅读全文
posted @ 2017-07-10 20:04 bitError 阅读(350) 评论(0) 推荐(0)
zookeeper leader选举算法源码
摘要:服务器状态 在QuorumPeer中有定义,这个类是一个线程。 1. LOOKING:寻找Leader状态。处于该状态时,它会认为当前集群中没有Leader,进入选举流程。 2. FOLLOWING: 3. LEADING 4. OBSERVING 选票数据结构 QuorumCnxManager:网 阅读全文
posted @ 2017-07-10 20:04 bitError 阅读(547) 评论(1) 推荐(0)