Paxos ve Raft
Paxos ve Raft, gerçek dünya koordinasyon sistemlerinin temelini oluşturan çoğaltılmış bir günlük üzerinde çökme hatasına dayanıklı uzlaşma sağlayan en etkili iki pratik uzlaşma protokolüdür.
Tanım
Paxos ve Raft, çökme hatalarına rağmen bir dizi kopyanın sıralı bir komut dizisi (çoğaltılmış bir günlük) üzerinde anlaşmasını sağlayan, kopyaların çoğunluğu erişilebilir kaldığı sürece taahhüt edilen girdilerin asla kaybolmamasını veya yeniden sıralanmamasını garanti eden oydaşma tabanlı protokollerdir.
Kapsam
Bu konu, tek kararlı Paxos, Çoklu-Paxos ve mühendislik iyileştirmeleriyle Paxos ailesini ve anlaşılırlık amacıyla aynı güvenceleri açık bir lider, günlük çoğaltma ve üyelik değişimi etrafında yeniden düzenleyen Raft protokolünü kapsamaktadır. Teklif sunanlar/kabul edenler ve liderler/takipçiler rolleri, oydaşma kesişimi, lider seçimi ve dönemleri, günlük eşleştirme ile anlık görüntüler ve yeniden yapılandırmanın pratik endişeleri ele alınmaktadır.
Temel sorular
- Oydaşma kesişimi ve teklif numaralandırması, turlar ve lider değişiklikleri boyunca Paxos'u nasıl güvende tutmaktadır?
- Raft, uzlaşmayı lider seçimi, günlük çoğaltma ve güvenlik olarak nasıl ayrıştırmaktadır?
- Bu protokolleri üretim sistemlerine dönüştürürken hangi mühendislik zorlukları ortaya çıkmaktadır?
Temel kuramlar
- Tek Kararlı ve Çoklu-Paxos
- Paxos, monoton teklif numaraları ve çoğunluk oydaşmaları tarafından yönetilen hazırlık ve kabul aşamaları aracılığıyla tek bir değer üzerinde uzlaşmaya varmaktadır; Çoklu-Paxos ise, istikrarlı bir lider tarafından yönetilen bir karar akışı boyunca hazırlık aşamasını amorti ederek çoğaltılmış bir günlük oluşturmaktadır.
- Raft'ın Ayrıştırması
- Raft, her dönem için tek bir lider seçerek, liderin takipçilerin çoğalttığı girdileri eklemesini sağlayarak ve bir günlük eşleştirme özelliğini uygulayarak Paxos ile aynı güvenliği elde etmektedir; bu, anlaşılırlık ve uygulama kolaylığı için bilinçli olarak minimalizmden ödün verilmesiyle gerçekleştirilmektedir.
- Spesifikasyondan Çalışan Sisteme
- Paxos'u pratikte dağıtmak, disk hatalarını, lider kiralamalarını, günlük sıkıştırmayı ve yeniden yapılandırmayı ele almayı gerektirmektedir; bu detaylar orijinal algoritmada genellikle göz ardı edilse de doğruluk ve performans için esastır.
Klinik önem
Paxos ve Raft, yaygın olarak kullanılan koordinasyon hizmetleri, dağıtılmış veritabanları ve yapılandırma depoları içinde çalışmaktadır; bu protokolleri anlamak, hatalar karşısında kopyaları güçlü bir şekilde tutarlı tutması gereken herhangi bir sistemi inşa etmek veya işletmek için esastır.
Tarihçe
Lamport, Paxos'u 1998 tarihli 'part-time parliament' makalesinde tanımlamış ve 2001'deki 'Paxos made simple' adlı çalışmasında açıklığa kavuşturmuştur; Chandra ve meslektaşları, 2007 yılında Paxos'u büyük ölçekte hayata geçirmenin gerçeklerini rapor etmişlerdir; Ongaro ve Ousterhout ise 2014 yılında Raft'ı tanıtarak eşdeğer güvencelerin öğretilmesini ve uygulanmasını çok daha kolay hale getirmişlerdir.
Tartışmalar
- Uzlaşma Protokollerinde Anlaşılırlık ve Minimalizm Tartışması
- Raft, Paxos'tan daha kolay anlaşılır olacak şekilde açıkça tasarlanmıştır; bu durum, ek yapısının (güçlü bir lider) esnekliği feda edip etmediği konusunda tartışmalara yol açmaktadır. Savunucuları, anlaşılırlığın uygulama hatalarını azalttığını savunurken, diğerleri ise Paxos varyantlarının daha genel olabileceğini belirtmektedir.
Öne çıkan isimler
- Leslie Lamport
- Diego Ongaro
- John Ousterhout
- Tushar Chandra
İlgili konular
Temel eserler
- lamport1998
- ongaro2014
- chandra2007
Sıkça sorulan sorular
- Paxos ve Raft temel olarak farklı algoritmalar mıdır?
- Hayır—aynı çoğunluk oydaşma çekirdeği ve eşdeğer güvenlik güvenceleriyle aynı problemi çözmektedirler. Raft, protokolü daha kolay anlaşılır ve uygulanabilir hale getirmek için Paxos'u esas olarak güçlü bir lider ve açık bir günlük etrafında yeniden düzenlemektedir.