CAP 原理及 Doris 案例分析
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 永久故障
临时失效时序图
l 判断临时失效及失效期处理时序图
l 判断临时失效恢复及恢复期处理时序图
参考文献
【1】海量分布式存储系统Doris的高可用架构设计分析,李智慧
版权声明: 本文为 InfoQ 作者【架构5班杨娟Jessie】的原创文章。
原文链接:【http://xie.infoq.cn/article/81bce1f6b89ec2030aee03056】。文章转载请联系作者。
评论