在了解Scylla如何實現HA之前,先來了解一下CAP。CAP定理主要是由Consistency(一致性),Availability(可用性),Partition tolerance(分區容錯性)構成。而ScyllaDB是保證可用性與分區容錯性,他的一致性是採最終一致性,最終一致性表示同一個cluster中每一台機器的資料最終一定會達到一致。
而ScyllaDB可以藉由設定Consistency Level來決定是要求一致性的強度,另外還要配合上Replication Factory的設定。
首先我們來了解一下Replication Factory,這個設定簡單來說就是設定相同的資料會有幾份複寫。如果RF=1,表示只會有一份複寫存在,一旦儲存資料的機器發生問題無法正常存取。但是一般來說這個設定會用在建立Cluster的情況下才看得出用途。
最常見的情況會是一個Cluster至少會包含3台node。以官網提供的例子來看,當今天這個Cluster裡頭有五台node,而RF=3的時候,今天client連接到V node要寫入或者讀取資料,V節點此時扮演coordinator的角色,會找將資料寫入儲存該分區的node如圖W,X,Z。當讀取的時候,則這三個node也會響應讀取的動作。