Dağıtık sistem, kullanıcıya tek bir hizmet gibi görünebilse de farklı makinelerde çalışan süreçlerin iletişimiyle oluşur. Her birim kendi işlemcisine, belleğine ve saatine sahiptir; bilgi ağ iletileri üzerinden taşınır. İleti gecikebilir, yinelenebilir, sırası değişebilir veya hiç ulaşmayabilir. Bir makine çalışırken diğeri durmuş olabilir ve dışarıdan gözleyen bir süreç bunun ağ kesintisi mi yoksa gerçek arıza mı olduğunu kesin biçimde ayıramayabilir. Bu koşullar, tek makinede örtük kabul edilen zaman sırasını, ortak durumu ve hata sınırını tasarım kararına dönüştürür. Dağıtım yalnız yükü makinelere bölmek değildir; verinin nerede tutulacağı, kopyaların nasıl uzlaştırılacağı, isteğin kaç kez uygulanabileceği ve kısmi başarının kullanıcıya nasıl bildirileceği açıklanmalıdır. Sağlam sistem, ağın her zaman hızlı ve güvenilir olacağını varsaymak yerine gecikme ile arızayı gözlenebilir, sınırlı ve toparlanabilir kılar. Kullanıcı açısından önemli olan düğümlerin sayısı değil, ortak davranışın tutarlılığıdır. Aynı isteğin iki bölgeden yanıtlanması, verinin hangi sürümünün görüleceği ve işlem yarıda kaldığında sonucun nasıl öğrenileceği dış sözleşmede yer alır. İç mimari bu sözleşmeyi sağlayacak ölçüde karmaşık olmalıdır. Dağıtımın getirdiği ek ağ çağrısı, gözlem ve devretme yükü somut bir gereksinimle karşılanmıyorsa tek makinedeki daha yalın çözüm daha güvenilir olabilir.
Dağıtık sistemde ortak davranışın kurulması
- Düğümler Bağımsız süreç ve yerel durumlar
- İletişim Geciken veya kaybolabilen iletiler
- Sıralama Nedensellik ve mantıksal zaman
- Uzlaşma Kopyalar arasında ortak karar
- Toparlanma Arıza algılama ve yeniden kurma
Dağıtımın gerekçesi ve sistem sınırı
Bir sistem kapasiteyi artırmak, farklı coğrafyalara yakın hizmet vermek, tek arıza noktasını azaltmak veya kurumlar arasındaki kaynakları birleştirmek için dağıtılabilir. Ancak her gerekçe aynı mimariyi doğurmaz. Büyük hesabı parçalara ayırmakla kullanıcıya yakın önbellek yerleştirmek farklı veri akışları ister. Bileşenleri sırf örgüt yapısına göre ayrı hizmetlere bölmek ağ çağrısı, sürüm uyumu ve işletim maliyeti ekleyebilir. Önce tek süreçte açık ve ölçülebilir bir sınır kurmak, gerçekten bağımsız ölçeklenmesi gereken bölümü tanımayı kolaylaştırır.
Sistem sınırı yalnız sahip olunan sunucular değildir. Alan adı çözümü, kimlik sağlayıcısı, dış ödeme hizmeti veya mesaj altyapısı çalışmayı etkiliyorsa bağımlılık modeline katılır. Her bağımlılık için gecikme, kota, hata ve veri sözleşmesi kaydedilir. Kullanıcı isteğinin hangi bileşenlerden geçtiği bilinmezse kapasite ve arıza etkisi ölçülemez. Hizmet düzeyi hedefleri tek bileşenin çalışmasını değil, kullanıcıya görünen uçtan uca sonucu tanımlar. Böylece yerel başarıların toplamının neden genel başarıya dönüşmediği araştırılabilir.
Zaman, olay sırası ve nedensellik
Ayrı makinelerin fiziksel saatleri tam olarak aynı değildir; düzeltme yapılsa bile kayma ve ağ gecikmesi sürer. Bu yüzden zaman damgası tek başına iki uzak olayın kesin neden-sonuç sırasını göstermeyebilir. Lamport'un olayların sıralanmasına ilişkin yaklaşımı, aynı süreçteki sıra ile ileti gönderme-alma ilişkilerinden “önce oldu” bağı kurar. Mantıksal saat fiziksel zamanı ölçmek yerine nedensel sıraya uyumlu bir numara üretir. Birbirini etkileyememiş iki olay eş zamanlı sayılabilir; onları zorla tek sıraya dizmek uygulamanın gerektirdiği ek bir karardır.
Olay sırası günlük birleştirme, kopya uzlaştırma ve işlem denetiminde önemlidir. Yalnız son zaman damgasını kazanan kural, saat kayması nedeniyle daha yeni bilgiyi kaybedebilir. Sürüm vektörü gibi yapılar hangi güncellemelerin birbirinden türediğini gösterebilir, fakat üst bilgi maliyeti taşır. Sistemin bütün olaylar için tam sıra gerektirip gerektirmediği sorulmalıdır. Bağımsız kullanıcı kayıtları paralel işlenebilir; aynı bakiyeyi değiştiren işlemler ortak sıra isteyebilir. Gereksiz küresel sıralama kapasiteyi ve arıza toleransını azaltır.
Kopyalama ve tutarlılık modelleri
Veriyi birden çok düğümde tutmak okuma yakınlığı ve arıza dayanımı sağlar. Buna karşılık bir güncellemenin bütün kopyalara ne zaman ulaşacağı sorusunu doğurur. Güçlü tutarlılıkta tamamlanan işlem sonraki okumalar için tek bir sıraya uygun görünür. Sonunda tutarlılıkta kopyalar geçici olarak ayrışabilir, yeni güncelleme olmadığında yakınsar. Bunlar iyi ve kötü seçenekler değil, kullanıcı sözleşmeleridir. Stok düşme, sayaç gösterme ve çevrim dışı not eşitleme aynı görünürlük güvencesine ihtiyaç duymayabilir.
Liderli kopyalamada yazmalar belirli düğümde sıralanır; lider arızası seçim ve devretme gerektirir. Çok liderli veya lidersiz düzenler coğrafi yakınlık ve yazma kullanılabilirliği sağlayabilir, fakat çakışma çözümü uygulamaya yaklaşır. Çakışan iki metni “son yazan kazanır” diye birleştirmek veri kaybı doğurabilir. Birleştirme işlemi alanın anlamını bilmelidir. Okuma ve yazma yeter sayıları belirli kesişim güvenceleri kurabilir; gerçek ağ topolojisi ve gecikme dağılımı ölçülmeden yalnız formül üzerinden kapasite çıkarılmaz.
Uzlaşma, dağıtık işlemler ve yinelenebilirlik
Düğümlerin ortak bir değer, lider veya günlük sırası üzerinde anlaşması uzlaşma problemidir. Protokol, iletilerin geciktiği ve bazı düğümlerin durduğu koşullarda hangi çoğunluğun karar verebildiğini tanımlar. Uzlaşma her uygulama işlemi için doğrudan çalıştırılmak zorunda değildir; çoğaltılmış günlük üzerinde güvenilir bir sıra kurup üst katmana hizmet edebilir. Protokol adı doğru yapılandırmayı garanti etmez. Üye sayısı, zaman aşımı, kalıcı yazma ve ağ bölgesi yerleşimi güvenlik ile canlılık özelliklerini etkiler.
Bir işlem birden çok hizmeti değiştirdiğinde hepsinin birlikte tamamlanması zorlaşır. İki aşamalı tamamlama ortak karar sağlayabilir, fakat koordinatör veya katılımcı arızasında bekleme yaratabilir. Saga benzeri düzenler adımları yerel işlemler ve telafi eylemleriyle yürütür; telafi her zaman fiziksel geri alma değildir. Ağ yeniden denemesi aynı isteği birden çok kez ulaştırabileceği için işlemler mümkünse yinelenebilir tasarlanır veya benzersiz istek kimliğiyle sonuçları hatırlar. “Tam bir kez” davranışı, iletim katmanından çok uçtan uca sözleşmeyle kurulur.
Arıza, toparlanma ve gözlenebilirlik
Dağıtık sistemde arıza çoğu zaman kısmidir: Bir düğüm yanıt verirken diğeri zaman aşımına uğrar. Zaman aşımı arızanın kanıtı değil, bekleme sınırıdır. Çok kısa değer sağlıklı ama yavaş isteği keser; çok uzun değer kaynakları tutar. Yeniden deneme geçici sorunu aşabilir, fakat eş zamanlı istem patlamasını büyütebilir. Üstel geri çekilme, rastlantısal sapma ve devre kesici bu etkiyi sınırlar. Kapasite tükenirken önemsiz işlevi azaltmak, bütün hizmetin çökmesinden daha iyi bir davranış olabilir.
Gözlenebilirlik, tek sunucu günlüğünü toplamaktan fazlasıdır. İstek kimliği hizmetler boyunca taşındığında dağıtık iz hangi çağrının geciktiğini gösterir. Ölçüler hata oranı, kuyruk derinliği ve yüzdelik gecikmeyi zaman içinde izler. Günlükler kararın ayrıntısını verir, ancak kişisel veri ve gizli bilgi içermemelidir. Sağlık denetimi süreç çalışıyor mu sorusuyla gerçek hizmet verebiliyor mu sorusunu ayırır. Arıza tatbikatı yedek ve devretme planının kâğıt üzerinde değil, kontrollü koşulda çalıştığını doğrular.
Değerlendirme, terim kullanımı ve GTS bağlantısı
Dağıtık tasarım; doğruluk, gecikme, aktarım kapasitesi, veri kaybı sınırı ve işletim karmaşıklığıyla değerlendirilir. Ortalama gecikme tek başına kuyrukta kalan kullanıcıları göstermez; yüksek yüzdelikler ve zaman aralığı raporlanır. Yük testi gerçek istek karışımını, veri dağılımını ve ağ koşullarını yansıtır. Bir düğüm eklenince kapasitenin doğrusal artacağı varsayılmaz; koordinasyon ve sıcak bölüm sınırı ölçülür. Doğruluk testi yalnız normal çalışmayı değil, ileti yinelenmesi, sıra değişimi, saat kayması ve yeniden başlama dizilerini içerir.
T-BDLD'de “dağıtık sistem”, “dağıtık sistemler”, “dağıtık işlem”, “uzlaşma protokolü” ve “mantıksal saat” sorguları teknik kullanımın kaynaklara ve zamana göre dağılımını canlı gösterir. “Dağıtık” sözcüğünün örgütsel veya coğrafi genel anlamları öbek sorgusuyla ayrılır. İngilizce ürün adları ve kaynakça satırları Türkçe terimin kanıtı sayılmaz. Ansiklopedi maddesi temel kavramların ilişkisini sürümlü olarak açıklar; derlem bağlantısı yeni cümleler geldikçe sıklık, alan, eş kullanım ve son görülme bilgisini günceller.
Verified references
- Association for Computing Machinery, IEEE Computer Society ve Association for the Advancement of Artificial Intelligence (2024). Computer Science Curricula 2023: The Final Report. Open source
- van Steen, Maarten ve Andrew S. Tanenbaum (2023). Distributed Systems. 4. baskı. distributed-systems.net. Open source
- Lamport, Leslie (1978). “Time, Clocks, and the Ordering of Events in a Distributed System”. Communications of the ACM, 21(7), 558-565. DOI: 10.1145/359545.359563. Open source