CodeBlanks Logo Icon CodeBlanks

Consensus

Raft ve Paxos consensus algoritmalarını öğrenirsin.

Consensus nedir?

Consensus (mutabakat), dağıtık düğümlerin tek bir değerde anlaşması sürecidir. Raft ve Paxos bunu sağlayan iki yaygın algoritmadır. Raft, anlaşılırlığı öne çıkarır; Paxos ise matematiksel özlülüğü.

Bir düğüm Raft'ta üç rolden birinde olur: follower (pasif), candidate (seçime giren) ve leader (yazmaları yöneten). Bir consensusRole(term) fonksiyonu bu rolleri modeller: term === 0 ise 'follower', term === 1 ise 'candidate', diğerleri için 'leader' döndürür. Bu, Raft'ın dönem (term) mantığını basit bir eşlemeyle gösterir; gerçek Raft'ta seçimler oy çokluğuyla yapılır ama roller aynı kalır.

Dönem (term) mantığı

Raft'ta term (dönem), mantıksal bir saattir. Her seçim yeni bir dönem başlatır. Bir düğümün rolü, içinde bulunduğu döneme bağlıdır. Bu, sistemin monotonik olarak ilerlemesini sağlar ve eski liderlerin geri gelmesini engeller.

Örnek: consensusRole(0) 'follower' döner; yeni başlayan düğüm pasiftir. consensusRole(1) 'candidate' döner; dönem 1'de seçime girer. consensusRole(2) 'leader' döner; çoğunluk oyu kazanıp lider olmuştur. Bu model, Raft'ın dönem-rol ilişkisini tek bir fonksiyonda gösterir. Paxos'ta da benzer bir mantık vardır (proposal number); her iki algoritma da çoğunluk ve monotonik dönem üzerine kuruludur.

Uygulama Consensus rol fonksiyonu yaz

function consensusRole(term) yaz. if (term === 0) return 'follower';, if (term === 1) return 'candidate'; ve return 'leader'; ile döndür. console.log(consensusRole(0)) ve console.log(consensusRole(2)) yazdır.

Başlangıç kodu

index.js
// consensusRole fonksiyonu yaz
// term 0 ise 'follower', 1 ise 'candidate', diğerleri için 'leader' döndürsün
// 0 ve 2 çağrılarını yazdır
// buraya yaz

Örnek çözüm

index.js
function consensusRole(term) {
  if (term === 0) return 'follower';
  if (term === 1) return 'candidate';
  return 'leader';
}
console.log(consensusRole(0));
console.log(consensusRole(2));

Beklenen çıktı

follower
leader

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Leader dalını tamamla

Soru
if (term === 0) return 'follower';
if (term === 1) return 'candidate';
return '____';
Cevap
if (term === 0) return 'follower';
if (term === 1) return 'candidate';
return 'leader';

Açıklama: Diğer dönemler için 'leader' döner.

2 Kavramı rolüne eşle

Kavram Anlamı
Raft Anlaşılır algoritma
Paxos Matematiksel algoritma
follower Pasif düğüm
leader Yazmaları yönetir

3 Raft'ta bir düğüm seçim kazanınca ne olur?

index.js
consensusRole(2)
  • Follower olur
  • Candidate olur
  • Leader olur Doğru cevap
  • Client olur

Açıklama: Seçim kazananı leader olur.

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