2019年1月12日

摘要: 腾讯开源的 Paxos库 PhxPaxos 代码解读 Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1. Basic Paxos 算法是为了使集群中的Acceptor们达成一个最终的值, 或者不能达成一个最终的值; 就是说, 要么达成一个最终的 阅读全文
posted @ 2019-01-12 18:24 聆听风琴的巴赫 阅读(411) 评论(0) 推荐(0) 编辑

2018年12月23日

摘要: 简单的画了一下PhxPaxos在Prepare阶段的逻辑,主要是正常的逻辑,异常逻辑和超时后面再写了; 熟悉PhxPaxos代码最好的方法是编译运行sample目录下的三个例子,编译方法在另一篇博客已经写了,这里忽略; 一: Proposor在Prepare阶段发送Prepare请求的代码: 二: 阅读全文
posted @ 2018-12-23 21:43 聆听风琴的巴赫 阅读(853) 评论(0) 推荐(0) 编辑

2018年12月15日

摘要: 分布式一致性的基石 Paxos算法(1) Paxos算法是由微软的工程师Lamport提出,Lamport依靠Paxos算法获得图灵奖; Paxos算法旨在解决相互信任的分布式系统中,多个节点能快速达成一个一致的值; 目前,google的Chubby, 雅虎的Zookeeper, Oracle的My 阅读全文
posted @ 2018-12-15 22:05 聆听风琴的巴赫 阅读(454) 评论(0) 推荐(0) 编辑

2018年12月8日

摘要: #paxos的一般编译流程在项目文档《中文详细编译手册》里面已经有介绍,这里重点介绍一下编译samples目录下的代码; #我的环境是ubuntu; #设置paxos根目录 phx_dir=~/code/tencent/phxpaxos/ #编译leveldb cd $phx_dir/third_p 阅读全文
posted @ 2018-12-08 22:06 聆听风琴的巴赫 阅读(787) 评论(0) 推荐(0) 编辑

2018年11月17日

摘要: 严格的来说,微信开源的phxsql不是数据库,而是一个数据库的插件; 传统的互联网数据库结构一般是这样的: 服务访问数据库是通过分片来的: 除了这种基于hash的分片,还有一种基于range的分片方式 通常,基于range的分片场景下会引入一个新的服务来保存range分片的元信息,列如etcd: 数 阅读全文
posted @ 2018-11-17 23:23 聆听风琴的巴赫 阅读(1531) 评论(0) 推荐(0) 编辑

2018年11月11日

摘要: 假设有如下的业务流程,用户1给用户2转账100元: 转账服务需要执行如下操作: 第1步. 在数据库连接1上执行:update 用户表 set (用户1的余额) = (用户1的余额)- 100; 第2步. 在数据库连接2上执行:update 用户表 set (用户2的余额) = (用户2的余额)+ 1 阅读全文
posted @ 2018-11-11 21:59 聆听风琴的巴赫 阅读(9737) 评论(1) 推荐(4) 编辑

导航