Durum Makinesi Replikasyonu
Durum makinesi replikasyonu, aynı komutları aynı sırada yürüten deterministik replikalar çalıştırarak bir hizmeti hataya dayanıklı hale getirmektedir; böylece hayatta kalanlar diğerlerinin arızasını gizleyebilmektedir.
Tanım
Durum makinesi replikasyonu, bir hizmetin deterministik bir durum makinesi olarak modellendiği ve aynı sıralı istemci komut dizisini uygulayan birden fazla sunucuya çoğaltıldığı bir tekniktir; bu sayede arızasız replikaların aynı durumlarda kalması ve arızalı olanların yerine geçebilmesi sağlanmaktadır.
Kapsam
Bu konu, bir hizmetin durum makinesi modelini, replikaların deterministik olma gerekliliğini, komut dizisi üzerinde anlaşmak için tam sıralı (atomik) yayın veya konsensüs kullanımını ve birincil-yedek (pasif) replikasyon ile olan karşıtlığını kapsamaktadır. Ayrıca, deterministik olmayan durumların ele alınmasını, replika yeniden yapılandırmasını ve Bizans replikalarına genişletilmesini de içermektedir.
Temel sorular
- Replikalar neden deterministik olmalı ve komutları aynı sırada işlemelidir?
- Mutabık kalınan komut sırası konsensüs veya atomik yayından nasıl üretilmektedir?
- Aktif (durum makinesi) replikasyonu, pasif birincil-yedek replikasyonundan nasıl farklılık göstermektedir?
Temel kuramlar
- Durum makinesi yaklaşımı
- Herhangi bir deterministik hizmet, çoğaltılarak ve her replikaya aynı sıralı komut akışı beslenerek hataya dayanıklı hale getirilebilmektedir; tolere edilen replika sayısından daha azı arızalandığı sürece, hizmet doğru ve erişilebilir kalmaktadır.
- Konsensüs yoluyla sıralama
- Komutlar üzerinde gerekli olan tam sıralama, tam olarak atomik bir yayındır ve bu da konsensüse eşdeğerdir; bu nedenle çoğaltılmış durum makineleri genellikle Paxos veya Raft gibi bir konsensüs protokolü üzerine inşa edilmektedir.
- Bizans durum makinesi replikasyonu
- Yaklaşımı keyfi arızalara tolerans gösterecek şekilde genişletmek, replikaların üçte ikisinden fazlasının anlaşmasını ve istemciler tarafından sonuç oylamasını gerektirmektedir; bu durum pratik Bizans hataya dayanıklı replikasyonunda gerçekleştirilmektedir.
Klinik önem
Durum makinesi replikasyonu, yüksek düzeyde erişilebilir, güçlü tutarlılığa sahip bir hizmet oluşturmanın standart bir yoludur; çoğaltılmış günlükler, koordinasyon hizmetleri ve birçok dağıtılmış veritabanı, konsensüsle sıralanmış bir komut akışı tarafından yönlendirilen durum makineleridir.
Tarihçe
Lamport'un mantıksal saat makalesi, çoğaltılmış durum makinesi fikrini 1978'de ana hatlarıyla belirtmiştir; Schneider'in 1990 tarihli öğretici yazısı bunu hataya dayanıklı hizmetler için kanonik bir çerçeve haline getirmiştir; Castro ve Liskov'un 1999 tarihli PBFT'si ise bu fikri Bizans ortamına genişletmiş ve bu yaklaşım daha sonra blok zinciri tasarımlarını etkilemiştir.
Tartışmalar
- Aktif ve pasif replikasyon
- Aktif (durum makinesi) replikasyonu, hızlı bir arıza durumunda devir için tüm replikalarda komutları yürütür ancak iş gücünü boşa harcar ve determinizm gerektirir; pasif birincil-yedek replikasyonu ise yalnızca birincil sunucuda yürütülür ve durumu gönderir, bu da iş gücünden tasarruf sağlar ancak devir gecikmesine ve tek bir yürütme noktasına neden olur.
Öne çıkan isimler
- Fred Schneider
- Leslie Lamport
- Miguel Castro
- Barbara Liskov
İlgili konular
Temel eserler
- schneider1990
- lamport1998
- castro1999
Sıkça sorulan sorular
- Çoğaltılan hizmet neden deterministik olmalıdır?
- Replikalar, rastgelelik, zamanlama veya iş parçacığı zamanlaması nedeniyle aynı girdi üzerinde farklı seçimler yapabilselerdi, aynı komutları görmelerine rağmen durumları farklılaşacaktı. Determinizm, aynı sıralı komut akışının her yerde aynı durumu üretmesini garanti etmektedir.