ScholarGate
Asistan

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.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

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.

Bu kavram için yöntemler

İlgili kavramlar