---
title: "Chapter 02: Raft & Paxos Uzlaşması: Lider Seçimleri, Dönem Epochları & Durum Makinesi Replikasyonu | TinyCTO Distributed Systems Canon"
description: "Resmi olarak doğrulanmış uzlaşma protokollerinin iç mekanizmaları: rastgele seçim zamanlayıcıları, bölünmüş oy önleme, Pre-Vote yoklaması, log eşleme kuralları ve kira tabanlı okuma optimizasyonları."
image: "https://tinycto.tv/assets/distributed-systems/distributed_systems_manuals_og.jpg"
canonicalUrl: "https://tinycto.tv/tr/distributed-systems/manuals/02-raft-paxos-uzlasma-mimarisi"
locale: "tr"
---

# Chapter 02: Raft & Paxos Uzlaşması: Lider Seçimleri, Dönem Epochları & Durum Makinesi Replikasyonu

> **Kanonik Dağıtık Sistemler Mühendislik Kılavuzu**
> **Teorem Referansı**: Ongaro & Ousterhout (Raft 2014) / Leslie Lamport (Paxos 1998) | **Okuma Süresi**: 22 min read | **Olgunluk Seviyesi**: SCALED

Resmi olarak doğrulanmış uzlaşma protokollerinin iç mekanizmaları: rastgele seçim zamanlayıcıları, bölünmüş oy önleme, Pre-Vote yoklaması, log eşleme kuralları ve kira tabanlı okuma optimizasyonları.

# Raft & Paxos Uzlaşması: Lider Seçimleri, Dönem Epochları & Durum Makinesi Replikasyonu

## Yönetici Özeti
Çoğaltılmış durum makineleri (Replicated State Machines), güçlü tutarlı dağıtık altyapıların temel taşıdır. Bağımsız düğümler kümesinin tamamen aynı deterministik durum geçişleri sırasını çalıştırmasını sağlayarak, kümenin tek bir hataya dayanıklı sistem gibi davranmasını mümkün kılar. Ongaro ve Ousterhout’un Raft protokolü, uzlaşmayı lider seçimi, log çoğaltma ve güvenlik kuralları olmak üzere anlaşılır alt problemlere ayırmıştır.

## 1. Quorum Formülü
Bir Raft kümesinin $F$ adet düğüm çökmesine dayanabilmesi için en az $2F + 1$ düğüme sahip olması gerekir. Lider seçmek veya bir log kaydını commit etmek için gereken asgari çoğunluk (quorum) $Q$:
$$Q = \left\lfloor \frac{N}{2} \right\rfloor + 1$$
5 düğümlü bir kümede ($N=5$), $F=2$ çökme tolere edilebilir ve $Q=3$ düğüm gereklidir. Herhangi iki $Q$ büyüklüğündeki quorum kümesi en az bir ortak düğümde kesişir; bu da yeni liderin önceki tüm commit edilmiş kayıtları mutlaka görmüş olmasını garanti eder.

```mermaid
sequenceDiagram
    autonumber
    participant C as İstemci (Client)
    participant L as Raft Lideri (Dönem 4)
    participant F1 as Takipçi 1
    participant F2 as Takipçi 2

    C->>L: 1. Yazma Komutu ("set key=val")
    Note over L: Yerel Loga Ekle<br/>Dönem: 4, İndeks: 104
    L->>F1: 2. AppendEntries RPC (Dönem 4, İndeks 104)
    L->>F2: 2. AppendEntries RPC (Dönem 4, İndeks 104)
    F1-->>L: 3. AppendEntries Başarılı ACK
    Note over L: Quorum Sağlandı (2/3 ACK)<br/>Commit İndeksi -> 104
    L->>C: 4. Başarılı Yanıtı Döndür
    L->>F2: 5. Heartbeat Gönder (CommitIndex=104)
```

## 2. Raft Lider Seçimi ve Dönem Epochları
- **Rastgele Seçim Zamanlayıcıları (150ms - 300ms):** Birden fazla adayın aynı anda seçime başlamasını ve bölünmüş oy kilitlenmelerini (split-vote) engeller.
- **Pre-Vote Eklentisi:** Adaylar dönem numarasını artırmadan önce hafif bir Pre-Vote yoklaması yapar. Çoğunluğu sağlayamayacak durumdaysalar kümeyi gereksiz yere seçim döngüsüne sokmazlar.
- **Lider Eksiksizlik İlkesi:** Bir takipçi, adayın logu kendi logundan daha eskiyse oy vermeyi reddeder ($	ext{Dönem}_{aday} < 	ext{Dönem}_{takipçi}$ veya $	ext{İndeks}_{aday} < 	ext{İndeks}_{takipçi}$).

## 3. Fencing Tokenları: Zombi Liderlerin Engellenmesi
Bir ağ bölünmesi lideri geçici olarak izole ettiğinde, lider kendisini hala geçerli sanabilir (zombi lider). Bu sırada kümenin geri kalanı daha yüksek bir dönem numarasıyla yeni bir lider seçmiştir.
Fencing tokenları (monotonik artan dönem sayıları) her depolama çağrısına eklenir:
```
İstemci -> Eski Lider (Dönem 5, Token: 5) -> Depolama
Yeni Lider Seçildi (Dönem 6, Token: 6) -> Depolama Dönem 5 isteklerini FENCING_TOKEN_STALE ile reddeder
```


### Temel Kavramlar & Modeller

- `Raft State Machine`
- `Multi-Paxos`
- `Term Epochs`
- `Pre-Vote Protocol`
- `Fencing Tokens`

### Kanon Yüzeyleri & Bağlantılar

- **Kılavuzlar Kütüphanesi**: https://tinycto.tv/tr/distributed-systems/manuals
- **18 Referans Mimarisi**: https://tinycto.tv/tr/distributed-systems/architectures
- **Topoloji & Boyutlandırma Sihirbazı**: https://tinycto.tv/tr/distributed-systems/wizard
- **Teknoloji & Konsensüs Matrisi**: https://tinycto.tv/tr/distributed-systems/matrix

```json
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Raft & Paxos Uzlaşması: Lider Seçimleri, Dönem Epochları & Durum Makinesi Replikasyonu",
  "description": "Resmi olarak doğrulanmış uzlaşma protokollerinin iç mekanizmaları: rastgele seçim zamanlayıcıları, bölünmüş oy önleme, Pre-Vote yoklaması, log eşleme kuralları ve kira tabanlı okuma optimizasyonları.",
  "inLanguage": "tr",
  "educationalLevel": "Advanced",
  "proficiencyLevel": "Expert",
  "url": "https://tinycto.tv/tr/distributed-systems/manuals/02-raft-paxos-uzlasma-mimarisi"
}
```
