会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
吴镝
专注系统,基础架构,分布式系统 @foxmailed 知乎:https://www.zhihu.com/people/foxmailed
博客园
首页
新随笔
联系
订阅
管理
1
2
3
4
5
···
7
下一页
2017年7月16日
etcd raft如何实现成员变更
摘要: 成员变更在一致性协议里稍复杂一些,由于不同的成员不可能在同一时刻从旧成员组切换至新成员组,所以可能出现两个不相交的majority,从而导致同一个term出现两个leader,进而导致同一个index的日志不一致,违反一致性协议。下图是个例子: raft作者提出了一种比较简单的方法,一次只增加或减少
阅读全文
posted @ 2017-07-16 15:23 吴镝
阅读(1930)
评论(0)
推荐(0)
2017年7月14日
etcd raft如何实现leadership transfer
摘要: leadership transfer可以把raft group中的leader身份转给其中一个follower。这个功能可以用来做负载均衡,比如可以把leader放在性能更好的机器或者离客户端更近的机器上。 对于一个大规模分布式系统来说,负载均衡非常重要。然而raft本身在选主方面必须要求新主包含
阅读全文
posted @ 2017-07-14 23:32 吴镝
阅读(1083)
评论(0)
推荐(0)
2017年7月13日
etcd raft如何实现Linearizable Read
摘要: Linearizable Read通俗来讲,就是读请求需要读到最新的已经commit的数据,不会读到老数据。 对于使用raft协议来保证多副本强一致的系统中,读写请求都可以通过走一次raft协议来满足。然后,现实系统中,读请求通常会占很大比重,如果每次读请求都要走一次raft落盘,性能可想而知。所以
阅读全文
posted @ 2017-07-13 17:56 吴镝
阅读(4247)
评论(0)
推荐(0)
2017年7月8日
etcd raft library设计原理和使用
摘要: 早在2013年11月份,在raft论文还只能在网上下载到草稿版时,我曾经写过一篇 "blog" 对其进行简要分析。4年过去了,各种raft协议的讲解铺天盖地,raft也确实得到了广泛的应用。其中最知名的应用莫过于etcd。etcd将raft协议本身实现为一个library,位于https://git
阅读全文
posted @ 2017-07-08 17:33 吴镝
阅读(2040)
评论(0)
推荐(0)
2017年5月21日
详解CockroachDB事务处理系统
摘要: 本文提到的一些术语,比如Serializability和Linearizability,解释看Linearizability, Serializability and Strict Serializability。 本文中观点大部分都是参考了CockroachDB多篇官方blog,设计文档,代码以及
阅读全文
posted @ 2017-05-21 17:18 吴镝
阅读(4331)
评论(0)
推荐(0)
2016年5月12日
使用multi-paxos实现日志同步应用
摘要: paxos 说multi paxos之前先简要说一下paxos paxos是在多个成员之间对某个值(提议)达成一致的一致性协议。这个值可以是任何东西。比如多个成员之间进行选主,那么这个值就是主的身份。在把multi paxos协议应用在日志同步中时,这个值就是一条日志。网上讲paxos的文章已经很多
阅读全文
posted @ 2016-05-12 21:59 吴镝
阅读(7259)
评论(2)
推荐(2)
2016年5月6日
关系型数据库原理
摘要: 这篇文章是对知乎上 "如何自己实现一个关系型数据库" 的一个尝试性回答,后续会不断更新。 对外数据模型为关系型数据库,内部的实现主要分成两大类,一类是disk based,比如mysql,postgres,一类是memory based,后者包括MemSQL,SAP HAHA,OceanBase。这
阅读全文
posted @ 2016-05-06 00:19 吴镝
阅读(4101)
评论(1)
推荐(0)
2015年11月22日
Vector Clock/Version Clock
摘要: physical clock 机器上的物理时钟,不同的机器在同一个时间点取到的physical clock不一样,之间会存在一定的误差,NTP可以用来控制这个误差,机器之间的时钟误差可以控制在几十ms以内。两个事件a和b,a在机器M1上physical clock为12点5分0秒6ms发生,b在机器
阅读全文
posted @ 2015-11-22 14:51 吴镝
阅读(5537)
评论(0)
推荐(1)
2015年8月4日
基于KV Data Model实现Table Data Model
摘要: HBase对外暴露出来的是一个表格数据模型,如下图所示rowkey应用程序可以自己设计。每一个Cell可以保存多个版本的数据,由timestamp标示版本。应用...
阅读全文
posted @ 2015-08-04 21:38 吴镝
阅读(1433)
评论(0)
推荐(0)
2015年3月30日
分布式存储系统事务时序
摘要: 今天谈谈分布式事务的时序问题。在说这个问题之前首先说说这为什么是个问题。####单机场景对于数据库来说,读到已经commit的数据是最基本的要求。一般来说,为了性能,读写不互相阻塞,现在的数据库系统(Oracle,MySQL,OceanBase,Spanner,CockRoachDB,HBase)几...
阅读全文
posted @ 2015-03-30 19:24 吴镝
阅读(5513)
评论(0)
推荐(1)
1
2
3
4
5
···
7
下一页
公告