写点什么

CAP 原理及 Doris 案例分析

发布于: 2020 年 07 月 15 日



Date:  2020/7/15    V1.0

Author: Jessie

 

CAP原理



Consistency:一致性。 每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期数据。即:数据是一致的。

Availability:可用性。每次请求都应该得到一个响应,而不是返回一个错误或失去响应,不过这个响应不需要保证数据是最近吸入的。也就是系统需要一直都是正常使用,不会引起调用者的异常,但并不保证响应的数据是最新的。

Partition tolerance:分区耐受性。因为网络原因,部分服务器节点之间的消息丢失或者延迟了,系统依然应该可以操作的。

 

当网络分区失效发生时,要么取消操作,数据是一致的,但系统不可用;要么继续写入数据,但数据一致性就得不到保证。

对于分布式系统而言,网络失效一定会发生,那么分区耐受性必须保证,那么就需要在可用性和一致性上二选一。也即是CAP原理下,三个原则是无法同时满足的。

传统关系数据库CP,牺牲A,现在互联网应用大都为AP,牺牲部分C,利用其它补偿做到数据最终一致。

 

一致性保障:

 

1) 简单冲突处理策略

根据时间戳,最后写入覆盖。



2) 客户端冲突解决



3) 投票解决冲突(Cassandra)

  



Doris案例

 

案例背景

Doris(https://github.com/itisaid/Doris)是一个海量分布式KV存储系统。支持中等规模高可用可伸缩的KB存储集群。高可用的架构设计需要保证:高可用性服务、高可靠性数据。

设计架构



系统调用时序模式



分布式存储时统的故障系统

l  瞬时故障

l  临时故障

l  永久故障

临时失效时序图

判断临时失效及失效期处理时序图



判断临时失效恢复及恢复期处理时序图

 

参考文献

【1】海量分布式存储系统Doris的高可用架构设计分析,李智慧



发布于: 2020 年 07 月 15 日阅读数: 53
用户头像

还未添加个人签名 2018.08.21 加入

码过代码、做过产品;擅长码字、演讲、认真做事之人。

评论

发布
暂无评论
CAP原理及Doris案例分析