資料處理 System Principle (1)

基本介紹

教學目標

初步了解針對資料庫可用性進行資料複製,造成資料一致性的問題。針對此相關問題因應相關系統的基本原則,主要有 ACID 、 CAP 、 BASE 三個基礎理論模型。

重點概念

關聯式資料庫系統採用 ACID 原則,主要強調資料一致性為主,然而非關聯式資料庫系統和大數據雲端儲存系統採用 BASE 原則,主要強調資料可用性為主。此外 CAP 對於大規模分散式資料庫系統,僅得滿足其中兩個要素,例如: 關聯式資料庫系統主要以 CA 為主,也就是一致性和可用性差,但分割容錯性差,以及非關聯式資料庫系統主要以 AP 為主,也就是可用性和分割容錯性差,但一致性差,其中我們發現可用性在資料庫系統中皆是非常重要的要素。

CAP 原則

一致性 (Consistency)

主要是指在分散式系統中同一個原始資料多個副本情況下,對於資料更新操作皆是與原始資料是一樣的,也就是所謂強一致性。

可用性 (Availability)

主要是指客戶端在任何時間點對於大規模分散式資料庫系統的讀/寫操作都應該保證在限定時間內完成。

分割容錯性 (Partition Tolerance)

主要是指在大規模分散式資料庫系統中,網路分割之間的主機無法進行溝通的清況下所有系統仍然可以繼續工作。

ACID 原則

不可部份完成性 (Atomicity)

主要是指一筆交易只有完全執行,或完全不執行。例如: 銀行轉帳時,A 帳戶取出要轉帳的金額,A 帳戶扣除相應的金額,接著再將其轉入 B 帳戶中,讓 B 帳戶增加相同金額,此過程必須完整執行,否則整個過程將被取消,退回至交未執行前的狀態。

一致性 (Consistency)

主要是指交易在開始和結束時,理應滿足一致性的約束條件,也就是所謂一致性約束。

獨立性 (Isolation)

主要是指若同時有多個交易彼此執行,則彼此之間不需要知道對方的存在,並且互相不影響,更不允許兩筆交易交錯執行。

持久性 (Durability)

主要是指交易執行成功之後,對於系統狀態的更新是永久性的,不會無綠無故被撤銷。

BASE 原則

基本可用 (Basically Available)

主要是指在大多數的時間之內非關聯式資料庫系統會處於可用狀態,卻可以允許偶而的失敗。

軟狀態 (Soft State)

主要是指資料狀態不要求在任意時間點都完全保持同步,主要是屬於狀態和無狀態之間的中間狀態。

最終一致性 (Eventual Consistency)

主要是指雖然軟狀態不要求任任意時間點都完全保持同步,但是最終一致性要求在給定時間內會達到一致狀態,也就是所謂弱一致性。

最後架構師在評估大規則分散式系統設計時會先參考 CAP 原則,考慮主要是以一致性為主,還是以可用性為主,因為分割容錯性為該系統的必要元素。若是一致性為主就該採用關聯式資料庫系統,若是可用性為主就該採用非關聯式資料庫系統,例如: 銀行的應用主要以一致性為主,因此採用關聯式資料庫系統較適合,互聯網的應用主要以可用性為主,因此採用非關聯式資料庫系統較適合。

相關資源