CodeBlanks Logo Icon CodeBlanks

CAP theorem

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

index.js
// 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

index.js
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

Soru
if (pick === '____') return 'consistency over availability';
Cevap
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

Uzman bölümündeki tüm dersler