写点什么

架構師訓練營第 1 期 - 第 06 周作業

用户头像
Panda
关注
发布于: 2020 年 11 月 01 日

请简述 CAP 原理

CAP 原理

  • 討論分布式系統在 "一致性"(C),"可用性"(A),及"分區耐受性"(P)之間的關係

CAP

  • 一致性 (Consistency)

  • 每次讀取的數據都是最新的數據,或者返回一個錯誤

  • Every read receives the most recent write or an error

  • 不是過期的數據,數據是跟現實最新的是一致的

  • 可用性 (Availability)

  • 每次請求都應該得到一個響應,而不是返回一個錯誤或失去響應

  • Every request receives a (non-error) response, without the guarantee that it contains the most recent write

  • 系統需要一直可以正常使用,不會引起調用異常

  • 但是不保證響應的數據是最新的 (不需要一致)

  • 分區耐受性 (Partition tolerance)

  • 即使因為網路原因,部分服務器節點之間消息丟失或延遲,系統應該是可以操作的

  • The system continues to operate despite an arbitrary number of message being dropped (or delayed) by the network between nodes

原理

  • 在分布式系統中 CAP 三者無法同時滿足

  • 分布式系統在必須要滿足分區耐受性的前提下,一致性和可用性無法同時滿足

  • 一致性和可用性必須二選一

  • 網路失效一定會發生,所以必須保證分區耐受性

  • 選擇一致性

  • 系統返回一個錯誤碼或乾脆超時

  • 系統不可用

  • 選擇可用性

  • 系統總是返回一個數據,但不能保證數據是最新的

  • 系統不一致

  • 須根據業務特性去選擇一致性或可用性

  • 如付款業務 - 須保證一致性

  • 如商品展示 - 可選擇可用性

针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。参考《海量分布式存储系统 Doris 的高可用架构设计分析.pdf》

Enter Failure Mode


  1. Write to Group 2 Fail

  • Retry K times

  • This example is to retry 3 times

  1. Report Group 2 Fail to Config Server

  2. Config Server check If Group-2 really Fail

  • Retry K times

  • This example is to retry 3 times

  1. If Yes, then notify all the clients that Group-2 is entered Failure Mode

Failure Mode Access


  1. read

  • Client-1 only can read from Group-1

  1. write

  • when Client-1 writes, the SDK will write to Group-1 and Backup-DS

  • Backup-DS only writes the log, not really writes data to database

Recover


  1. Group-2 recovered

  2. When Config Server received Group-2 recovered notification

  • Notify all clients, Group-2 is back

  • Notify Backup-DC to replay logs to Group-2

  • Group-2 is in the Recover Mode

  1. Backup-DC replay logs to Group-2

  2. When Client-1 read, it only can read from Group-1

  3. When Client-2 write as normal

  • write to Group-1

  • write to Group-2

  1. Backup-DC send Recover finished to Config Server

  • All logs are replayed

  1. Config Server notify all that Group-2 is normal now

  • Group-2 left recover mode, and back to normal node

  1. read

  • read command can read from Group-1 or Group-2 in normal mode

  1. write

  • write command need to wirte to Group-1 and Group-2 both in normal mode


发布于: 2020 年 11 月 01 日阅读数: 45
用户头像

Panda

关注

还未添加个人签名 2015.06.29 加入

还未添加个人简介

评论

发布
暂无评论
架構師訓練營第 1 期 - 第 06 周作業