Dağıtık Sistem Modelleri
Dağıtık sistem modelleri, bir dağıtık algoritmanın neye dayanabileceğini ve neyi tolere etmesi gerektiğini tanımlayan mimari, zamanlama, iletişim ve arızalar hakkındaki soyut varsayımlardır.
Tanım
Dağıtık bir sistem, yalnızca mesaj alışverişi yoluyla iletişim kuran ve kullanıcılarına tek, tutarlı bir sistem olarak görünen bağımsız bilgisayarlar topluluğudur; bir sistem modeli ise, böyle bir sistemin analiz edildiği süreçler, iletişim kanalları, zamanlama ve arızalar hakkındaki varsayımlar kümesidir.
Kapsam
Bu alan, dağıtık sistemlerin mimari ve fiziksel modellerini (istemciler, sunucular, eşler ve çok katmanlı yapılar), senkron ve asenkron yürütmeyi ayıran zamanlama modellerini, temel arıza modellerini (çökme, ihmal, zamanlama ve Bizans) ve mesajlaşma, paylaşımlı bellek, uzaktan çağrı ve ara yazılımın iletişim soyutlamalarını kapsamaktadır. Bu modeller, alandaki her sonucu şekillendirmektedir: bir model altında doğru olan bir algoritma, başka bir model altında imkansız olabilmektedir; bu nedenle modeli açıkça belirtmek, doğruluk ve performans hakkında akıl yürütmek için bir ön koşuldur.
Alt konular
Temel sorular
- Belirli bir dağıtık algoritma, zamanlama, iletişim ve arızalar hakkında hangi varsayımları gerektirmektedir?
- Senkron ve asenkron modeller nasıl farklılık göstermektedir ve bu ayrım, hesaplanabilir olanı neden değiştirmektedir?
- Bir protokolün doğru olabilmesi için hangi süreç ve kanal arızası sınıflarını tolere etmesi gerekmektedir?
- Bir sistem ne zaman mesajlaşma etrafında, paylaşımlı bellek veya uzaktan çağrı soyutlamasına karşı yapılandırılmalıdır?
Temel kuramlar
- Senkron ve Asenkron Modeller
- Senkron bir modelde, mesaj gecikmesi ve göreceli işlemci hızı üzerinde bilinen sınırlar bulunmaktadır, bu da arızaları tespit etmek için zaman aşımlarının kullanılmasına olanak tanımaktadır; asenkron bir modelde ise bu tür sınırlar mevcut değildir, bu da arıza tespitini temelden güvenilmez kılmakta ve birçok imkansızlık sonucunun temelini oluşturmaktadır.
- Arıza Modeli Hiyerarşisi
- Süreç ve kanal arızaları, iyi huyludan şiddetliye doğru sınıflandırılmaktadır: çökme (fail-stop), ihmal, zamanlama ve keyfi (Bizans); daha şiddetli arızaları maskelemek için daha güçlü garantilere ihtiyaç duyulmaktadır; seçilen model hem elde edilebilir esnekliği hem de bir protokolün maliyetini belirlemektedir.
- İletişim Soyutlamaları
- Dağıtık hesaplama, küçük bir etkileşim ilkel kümesi üzerine inşa edilmiştir: asenkron ve senkron mesajlaşma, dağıtık paylaşımlı bellek ve uzaktan prosedür veya metot çağrısı; her birinin teslimat, sıralama ve arıza için farklı semantik özellikleri bulunmakta ve üst düzey tasarımı şekillendirmektedir.
Klinik önem
Doğru modeli seçmek, herhangi bir gerçek sistemdeki ilk tasarım kararıdır: bulut platformları, veritabanları ve koordinasyon hizmetleri, genellikle kısmen senkronize bir zamanlama modeli ve bir arıza modeli beyan etmektedir ve bu seçimler, sistemin hangi tutarlılık, erişilebilirlik ve hata toleransı garantilerini vaat edebileceğini belirlemektedir.
Tarihçe
1970'ler ve 1980'lerdeki erken dağıtık sistemler araştırmaları, dağıtık koordinasyonun mümkün olduğu minimum varsayımları belirlemeyi amaçlamış, senkron/asenkron ikiliğini ve arıza taksonomisini ortaya koymuştur. Bu modeller, Lynch, Attiya ve Welch, Tanenbaum ve van Steen ile Coulouris ve meslektaşlarının ders kitaplarında pekiştirilerek tüm alan için ortak bir terminoloji haline gelmiştir.
Tartışmalar
- Asenkron model, pratik sistemler için ne kadar gerçekçidir?
- Saf asenkron modelin programlaması kanıtlanabilir şekilde en zorudur ve güvenilir arıza tespitini dışlamaktadır; ancak çoğu gerçek ağ yalnızca aralıklı olarak yavaştır; kısmen senkron modeller ve arıza dedektörleri, zaman aşımlarına izin verirken titizliği koruyan pragmatik bir orta yol olarak ortaya çıkmıştır.
Öne çıkan isimler
- Leslie Lamport
- Nancy Lynch
- Andrew S. Tanenbaum
- Maarten van Steen
İlgili konular
Temel eserler
- lynch1996
- tanenbaum2017
- attiya2004
Sıkça sorulan sorular
- Zamanlama modeli neden bu kadar önemlidir?
- Çünkü zaman aşımlarına güvenilip güvenilemeyeceğini belirlemektedir. Senkron bir modelde, sınırlı gecikmeler bir sürecin sessiz bir eşin arızalandığı sonucuna güvenle varmasını sağlamaktadır; asenkron bir modelde ise yavaş bir süreç ile çökmüş bir süreç ayırt edilemezdir, bu da birçok ünlü imkansızlık sonucunun temel nedenidir.
- Bizans arızası nedir?
- Bizans (keyfi) arızası, arızalı bir bileşenin çelişkili veya kötü niyetli mesajlar göndermek de dahil olmak üzere herhangi bir şekilde davranabileceği bir arıza türüdür. Bunu tolere etmek, basit çökmeleri tolere etmekten çok daha maliyetlidir ve özel anlaşma protokolleri gerektirmektedir.