Ana içeriğe geç

Konsensüs Algoritması

İngilizcesi
Consensus Algorithm
Türkçe karşılığı
uzlaşma algoritması
Okunuşu
kınsensıs algoritım

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/consensus-algorithm

Kısaca

Konsensüs algoritması, bir grup makinenin, bazıları çökse ya da mesajlar kaybolsa bile tek bir değerde ya da sıralı bir karar kaydında anlaşmasını sağlar.

Konsensüs algoritması (consensus algorithm) nedir?

Veriyi birkaç sunucuya çoğaltmak ancak verinin ne olduğu konusunda anlaşırlarsa işe yarar. İki sunucu da yönetimin kendisinde olduğunu düşünürse ya da farklı yazmaları farklı sırayla kabul ederse kopyalar birbirinden uzaklaşır. Konsensüs algoritmaları bunu çözer: grup bir lider seçer, lider girişler önerir ve bir giriş ancak çoğunluk, yani yeter sayı (quorum), onu sakladıktan sonra kesinleşmiş (committed) sayılır.

En bilinen iki algoritma, Leslie Lamport'un tarif edip 1998'de yayımladığı Paxos ile anlaşılması ve uygulanması daha kolay olacak şekilde tasarlanıp 2014'te yayımlanan Raft'tır. Raft; Kubernetes'in küme durumunu saklayan etcd'de, Consul'da ve CockroachDB'de kullanılır; Kafka'nın KRaft modu da kendi meta verisini yönetmek için Raft tabanlı bir protokol kullanır. ZooKeeper ise ZAB adlı benzer bir protokol kullanır.

Hata toleransını çoğunluklar belirler. 3 düğümlü bir küme 1 düğüm arızalanırsa çalışmaya devam eder, 5 düğümlü bir küme de 2 arızaya dayanır; kümelerin tek sayıda üyesi olmasının nedeni budur. Bir ağ bölünmesi hiçbir tarafta çoğunluk bırakmazsa sistem birbiriyle çelişen iki geçmiş riskine girmek yerine yazma kabul etmeyi durdurur; yani CAP anlamında tutarlılığı seçer.

Sık yapılan bir yanlış, her dağıtık veritabanının her yazma için konsensüs çalıştırdığını düşünmektir. Konsensüs görece yavaştır, çünkü her karar bir çoğunluğa gidiş-dönüş gerektirir; bu yüzden birçok sistem onu yalnızca bir lider seçmek ya da yapılandırma saklamak gibi koordinasyon için kullanır. Blockchain'ler, bazı katılımcıların yalan söyleyebildiği Bizans hata toleransı (Byzantine fault tolerance) gibi daha zor bir sorunla karşılaşır ve proof of stake gibi farklı mekanizmalar kullanır.

Önemli noktalar

  • Konsensüs, makinelerin arızalara rağmen değerlerde ya da sıralı bir kayıtta anlaşmasını sağlar.
  • Raft ve Paxos en bilinen algoritmalardır; Raft'ı uygulamak daha kolaydır.
  • Bir lider girişler önerir; bunlar çoğunluk sakladığında kesinleşir.
  • 3 düğüm 1 arızaya, 5 düğüm 2 arızaya dayanır.
  • etcd, Consul ve Kafka'nın KRaft'ı koordinasyon için Raft'a dayanır.

Sık sorulan sorular

Raft ile Paxos arasındaki fark nedir?

İkisi de aynı sorunu benzer garantilerle çözer. Paxos önce geldi ve tamamen anlaşılması ve uygulanması bilinen şekilde zordur. Raft ise güçlü bir lider ve açıkça ayrılmış adımlarla anlaşılırlık için tasarlandı ve bugün daha yaygın seçimdir.

Kümeler neden tek sayıda düğüm kullanır?

Çünkü konsensüs çoğunluk gerektirir. Dört düğüm de üç düğüm gibi yalnızca bir arızaya dayanır; bu yüzden dördüncüyü eklemek hata toleransı eklemeden maliyeti artırır. 3, 5 ya da 7 gibi tek sayılar her düğümden en iyi şekilde yararlanır.

Lider seçimi (leader election) nedir?

Bir konsensüs protokolünün grubu hangi düğümün koordine edeceğini seçen kısmıdır. Lider arızalanırsa ya da erişilemez hâle gelirse kalan düğümler bir seçim yapar ve yeni bir lider seçer.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar