[硬广] 华为2012实验室分布式数据团队招聘
分布式数据库团队隶属于华为2012实验室-中央软件院-分布式数据实验室,实验室由华为Fellow胡子昂亲自筹建,团队成员来自IBM、TeraData、神通数据库、阿里巴巴等,目前在进行华为自研的分布式数据项目。我本人也是看中了能够按照自己意愿重新造轮子的机会,…
两阶段提交的工程实践
两阶段提交(2 Phase Commit简称2PC)协议是用于在多个节点之间达成一致的通信协议,它是实现“有状态的”分布式系统所必须面对的经典问题之一。本文通过对比经典2PC协议,和Google工程实践的基础上,分析一种优化延迟的2PC协议。为了方便说明,本文主要针…
两阶段提交的工程实践
两阶段提交(2PhaseCommit简称2PC)协议是用于在多个节点之间达成一致的通信协议,它是实现“有状态的”分布式系统所必须面对的经典问题之一。本文通过对比经典2PC协议,和Google工程实践的基础上,分析一种优化延迟的2PC协议。为了方便说明,本文主要针对分布式数据库中,跨域sharding
[LockFree之美] 使用Hazard Version实现的无锁Stack与Queue
概述这篇文章([LockFree之美] 共享变量的并发读写)的第6小节讲述了Hazard Version的实现原理,它的设计思想最早由OB团队的席华锋提出,本文不再赘述,本文主要分享Hazard Version的实现要点,以及使用它实现无锁Stack与Queue的方法,已经在多核系统上的性…
[LockFree之美] 使用Hazard Version实现的无锁Stack与Queue
概述这篇文章(http://oceanbase.org.cn/?p=82)的第6小节讲述了HazardVersion的实现原理,它的设计思想最早由OB团队的席华锋提出,本文不再赘述,本文主要分享HazardVersion的实现要点,以及使用它实现无锁Stack与Queue的方法,已经在多核系统上的性
共享变量的并发读写
我blog上的老文,已经沉了,在专栏发一下。在高性能并发服务器中,对于共享对象的读写是最常见的操作之一,比如全局配置类对象的并发读取和更新,以及更复杂的如copy on write btree、堆栈等的并发读写,最基本的操作都可以简化理解为通过全局共享的指针,…
Paxos成员组变更
本文是Paxos三部曲中的第三篇,在前一篇文章《使用Multi-Paxos协议的日志同步与恢复》([Paxos三部曲之二] 使用Multi-Paxos协议的日志同步与恢复)中,我们讨论了基于Multi-Paxos协议的日志同步方案,在这个方案中,我们有一个隐含的前提,就是Paxos成员组…
[Paxos三部曲之三] Paxos成员组变更
Paxos成员组变更本文是Paxos三部曲的第三篇,在前一篇文章《使用Multi-Paxos协议的日志同步与恢复》(http://oceanbase.org.cn/?p=111)中,我们讨论了基于Multi-Paxos协议的日志同步方案,在这个方案中,我们有一个隐含的前提,就是Paxos成员组是确定
磁盘故障与存储系统的年失效率估算
对三副本与ErasureCode两种方式下,数据丢失概率的估算,组合数学和概率论知识早就还给老师了,贴到博客给大家看看计算方法是否正确。对于R个副本的情况,设磁盘年故障概率为P,磁盘数为N,则整个机群有C(N,R)=N!/(R!*(N-R)!)种R副本的组合方式。机群数据总量为M,分片大小为T,那么
架构师需要了解的Paxos原理、历程及实战
受TimYang邀请撰写的Paxos分享,已发在TimYang的公众号,我就不全文转了。Abstract:“这里提一个名词:‘最大Commit原则’,这个阳振坤博士给我讲授Paxos时提出的名词,我觉得它是Paxos协议的最重要隐含规则之一,一条超时未形成多数派应答的提案,我们即不能认为它已形成决议
利用Bash脚本管理distcc集群
利用Bash脚本管理distcc集群distcc介绍对于大型C/C++项目,编译时间往往长到无法忍受,而冒然的增加make并发度则有可能由于gcc吃光内存而把机器搞死,因此我们期望能够使用多台机器并行编译项目。distcc是一个分布式编译程序,它包含客户端distcc,和服务器端distccd两个程