CAP theorem
- Node.js kursu
- Uzman
- Ders 31/47
- 5 dk
CAP theorem ve dağıtık sistem trade-off'larını öğrenirsin.
CAP theorem
CAP theorem, dağıtık bir sistemin aynı anda üç garantisinin yalnızca ikisini sağlayabileceğini söyler: consistency (tutarlılık), availability (erişilebilirlik) ve partition tolerance (bölme toleransı). Bir ağ bölümü (partition) olduğunda sistem C ya da A'dan birini seçmek zorundadır.
CP sistemleri bölüm sırasında tutarlılığı tercih eder; yazmalar reddedilir. AP sistemleri ise erişilebilirliği tercih eder; her düğüm yanıtlar ama veri geçici olarak tutarsız olabilir. Bir capChoice(pick) fonksiyonu bu tercihi modeller: 'CP' için 'consistency over availability', 'AP' için 'availability over consistency' döndürür. Bu, gerçek bir dağıtık veritabanının davranışını basit bir kararla özetler; ileride MongoDB, Cassandra gibi sistemleri seçerken bu zihni modeli kullanırsın.
CP ve AP sistemler
CP (consistency + partition) sistemleri, bölüm sırasında yazmayı reddeder. Bu, verinin her zaman tutarlı kalmasını sağlar ama kullanıcının beklemesine yol açar. AP (availability + partition) sistemleri ise her isteği yanıtlar; veri geçici olarak tutarsız olabilir ama sistem kullanılamaz duruma düşmez.
Örnek: MongoDB varsayılan olarak CP eğilimlidir; Cassandra ise AP eğilimlidir. capChoice('CP') 'consistency over availability' döner; capChoice('AP') 'availability over consistency' döner. Bu basit model, bir veritabanı seçerken hangi tarafın ağır bastığını görmeni sağlar. Gerçek hayatta sistemler saf CP ya da AP değildir; ayarlanabilir ayarlarla iki üç arasında yer alır.
Uygulama CAP tercih fonksiyonu yaz
function capChoice(pick) yaz. if (pick === 'CP') return 'consistency over availability'; ile başla. if (pick === 'AP') return 'availability over consistency'; ekle. return 'invalid'; ile bitir. console.log(capChoice('CP')) ve console.log(capChoice('AP')) yazdır.
Başlangıç kodu
// capChoice fonksiyonu yaz
// 'CP' için 'consistency over availability' döndürsün
// 'AP' için 'availability over consistency' döndürsün
// iki çağrıyı yazdır
// buraya yazÖrnek çözüm
function capChoice(pick) {
if (pick === 'CP') return 'consistency over availability';
if (pick === 'AP') return 'availability over consistency';
return 'invalid';
}
console.log(capChoice('CP'));
console.log(capChoice('AP'));Beklenen çıktı
consistency over availability availability over consistency
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bölüm sırasında sistem hangi iki seçenekten birini seçer?
- Yalnızca tutarlılık
- Üçü birden
- Yalnızca bölüm
- Tutarlılık ya da erişilebilirlik Doğru cevap
Açıklama: Bölüm sırasında tutarlılık ya da erişilebilirlik seçilir.
2 CP dalını tamamla
if (pick === '____') return 'consistency over availability';
if (pick === 'CP') return 'consistency over availability';
Açıklama: CP dalı tutarlılık önceliklidir.
3 Kavramı rolüne eşle
| Kavram | Anlamı |
|---|---|
consistency |
Tutarlılık |
availability |
Erişilebilirlik |
partition |
Ağ bölünmesi |
CP |
Tutarlılık öncelikli |