[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两个程
一个小玩具
用golang玩的图片编辑服务,就跑在这个Blog的主机上其实不小,代码量挺大,先不开源了,先部署在自己的Blog上玩玩编辑参数比较像阿里云的阿里云图片服务文档url规则:http://image.oceanbase.org.cn/?xesurl=[图片url]&xesactions=[编辑
使用Multi-Paxos协议的日志同步与恢复
本文是Paxos三部曲中的第二篇。在前一篇文章《使用Basic-Paxos协议的日志同步与恢复》([Paxos三部曲之一] 使用Basic-Paxos协议的日志同步与恢复)中,我们讨论了基于Basic-Paxos协议的日志同步方案,在这个方案中,所有成员的身份都是平等的,任何成员都可…
[Paxos三部曲之二] 使用Multi-Paxos协议的日志同步与恢复
使用Multi-Paxos协议的日志同步与恢复本文是Paxos三部曲中的第二篇。在前一篇文章《使用Basic-Paxos协议的日志同步与恢复》(http://oceanbase.org.cn/?p=90)中,我们讨论了基于Basic-Paxos协议的日志同步方案,在这个方案中,所有成员的身份都是平等
有关期权股票与缴税的分享
有关期权股票与缴税的分享本文基于作者本人的经验而写,其间难免有纰漏或错误,内容仅供大家参考。作为一个穷二代屌丝码农,靠积攒每月的固定工资,可以说很难追上一线城市不断上涨的房价,还好我们处在一个伟大的时代,选择加入一家高速发展的公司,分得一些期权或股票,熬几年到公司上市套现,屌丝也可以逆袭“授予”与“
[Paxos三部曲之一] 使用Basic-Paxos协议的日志同步与恢复
使用Basic-Paxos协议的日志同步与恢复在保证数据安全的基础上,保持服务的持续可用,是核心业务对底层数据存储系统的基本要求。业界常见MySQL/Oracle的1主N备的方案面临的问题是“最大可用(MaximumAvailability)”和“最大保护(MaximumProtection)”模式
[LockFree之美] 共享变量的并发读写
共享对象的并发读写在高性能并发服务器中,对于共享对象的读写是最常见的操作之一,比如全局配置类对象的并发读取和更新,以及更复杂的如copyonwritebtree、堆栈等的并发读写,最基本的操作都可以简化理解为通过全局共享的指针,并发读取和更新指针所指向对象的操作。最简单的模型如下所示,一个包含了多个
阿里技术沙龙第31期-OceanBase专场
阿里技术沙龙第31期-OceanBase专场郁白:《OceanBase-破解数据库高可用性难题》官方已发布ppt,我就不在外面上传了,请注意第18页堪误2*Telect2==>2*Tcycle4*Telect2==>4*Tcycle视频地址:http://v.youku.com/v_sh
[linux奇技淫巧] 用户态线程coroutine
Coroutine即教科书上提到的“协程”,可以认为是用户态的线程,在它看来thread就是CPU。在一个thread内可以启动任意多个协程,它们放佛是在同一个“CPU”上运行的多个线程,而与线程的最大不同是,它并非”抢占式“的,因此它让出“CPU”的唯一方式是自己主动放弃执行,保存现场后跳转到其他
[C/C++奇技淫巧] 变长宏参数的个数
备忘一个宏的奇技淫巧,类似打印日志,RPC封装等无法使用C++0x变长模板参数的情况下,是个不错的选择#include<stdio.h>#include<stdlib.h>#include<stdint.h>#defineARG_COUNT_P1_(\_1,_2,
Oceanbase内存事务引擎
摘要OceanBase是一个分布式可扩展的关系数据库,采用基线静态数据与动态增量数据分离存储的架构设计.其内存事务引擎提供了动态数据的存储、写入和查询服务,用户写入的数据被存储在内存中称为Memtable的数据结构中.Memtable及其周边的事务管理结构共同组成了内存数据库引擎,来实现事务的ACI
Lease与最长宕机时间分析
先看简单的情况,单点rootserver负责updateserver选主,与ups保持lease,设lease时间为L,可以知道ups最长不可服务的情况是,rs刚刚授予upslease后,ups就意外宕机,rs要等lease超时后,才能重新选主,所以rs不宕机的情况下ups的最长不可服务时间就是L而
Oracle number类型分析
Oraclenumber类型分析Oracle使用number类型表示定点数,使用两个参数来确定number的位数和小数部分精度,如number(p,s),其中p表示precision,s表示scale。scale是小数位数的限制:s大于零时,表示精度限制在小数点后s位,超过s位后面的小数将被四舍五入
Oceanbase代码有关语言和编译器的奇技淫巧(二)
Oceanbase代码有关语言和编译器的奇技淫巧(二)–to_cstring的Sfinae魔术我安装了代码高亮的插件,看上去会爽一些了。这次的奇技淫巧是关于打印日志的,先提一个需求:有一个int类型的ipv4地址,想按照点分字符串的形式打印到日志中。很常见的需求,在收到网络请求或者处理分布式调度的时
Oceanbase代码有关语言和编译器的奇技淫巧(一)
Oceanbase代码有关语言和编译器的奇技淫巧(一)–TSIFactory懒人利器在oceanbase各个server的读写请求处理逻辑中,经常会遇到需要某个临时对象来保存中间参数或中间结果,比较典型的是线程在处理请求时需要将收到的buffer反序列化到类似ObScanParam这样的对象中,然后
世界,你好!
欢迎使用WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!