摘要:
Google关于BigTable的论文中分布式事务的实现 Google在BigTable相关的论文中详细的解释了Percolator分布式事务的实现方式, 而且用简洁的伪代码示例怎么实现分布式事务; Percolator算法在分布式数据库中运用广泛, 国内著名的开源分布式数据库TiDB的事务实现来源 阅读全文
摘要:
腾讯开源的 Paxos库 PhxPaxos 代码解读 Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1. Basic Paxos 算法是为了使集群中的Acceptor们达成一个最终的值, 或者不能达成一个最终的值; 就是说, 要么达成一个最终的 阅读全文
摘要:
简单的画了一下PhxPaxos在Prepare阶段的逻辑,主要是正常的逻辑,异常逻辑和超时后面再写了; 熟悉PhxPaxos代码最好的方法是编译运行sample目录下的三个例子,编译方法在另一篇博客已经写了,这里忽略; 一: Proposor在Prepare阶段发送Prepare请求的代码: 二: 阅读全文
摘要:
分布式一致性的基石 Paxos算法(1) Paxos算法是由微软的工程师Lamport提出,Lamport依靠Paxos算法获得图灵奖; Paxos算法旨在解决相互信任的分布式系统中,多个节点能快速达成一个一致的值; 目前,google的Chubby, 雅虎的Zookeeper, Oracle的My 阅读全文
摘要:
#paxos的一般编译流程在项目文档《中文详细编译手册》里面已经有介绍,这里重点介绍一下编译samples目录下的代码; #我的环境是ubuntu; #设置paxos根目录 phx_dir=~/code/tencent/phxpaxos/ #编译leveldb cd $phx_dir/third_p 阅读全文
摘要:
严格的来说,微信开源的phxsql不是数据库,而是一个数据库的插件; 传统的互联网数据库结构一般是这样的: 服务访问数据库是通过分片来的: 除了这种基于hash的分片,还有一种基于range的分片方式 通常,基于range的分片场景下会引入一个新的服务来保存range分片的元信息,列如etcd: 数 阅读全文
摘要:
假设有如下的业务流程,用户1给用户2转账100元: 转账服务需要执行如下操作: 第1步. 在数据库连接1上执行:update 用户表 set (用户1的余额) = (用户1的余额)- 100; 第2步. 在数据库连接2上执行:update 用户表 set (用户2的余额) = (用户2的余额)+ 1 阅读全文