Dağıtık Sistemler

Birden fazla bilgisayar ile sorun çözme.

Nedir bu dağıtık sistemler? Dağıtık programlama, bir bilgisayar ile çözebileceğiniz bir sorunu birden fazla
bilgisayar kullanarak çözmeye
çalışma sanatıdır. Diğer bir deyişle “Dağıtık Programlama” bir bilgisayarla çözebileceğiniz bir işi birden fazla
bilgisayarla çözmektir.


Neden ihtiyaç var? Burada akla ilk gelen soru “Madem bir bilgisayarla çözebiliyorduk neden birden fazla bilgisayar kullanıyoruz?” olacaktır. Aslında elimizde sonsuz işlem yapma gücünde, sonsuz veri saklama kapasitesinde ve Dünya’nın her noktasından hızlıca erişilebilir bir bilgisayar olsaydı dağıtık sistemler kurmaya gerek kalmazdı. Fakat böyle bir bilgisayar yok. Bizim işimizi görecek kadarını yapsak bize yeter diye
düşünebilirsiniz. Orada da şöyle bir sorun devreye giriyor: Dağıtık sistemler kurmak yerine elimizdeki donanımların özelliklerini arttırdıkça bu donanımların maliyetleri aşırı yükseliyor. Makine sayısını arttırarak
yatayda ölçekleme yapmanın (horizontal scaling/scale out) maliyeti lineer artarken, makinanın özelliklerini artırarak dikeyde ölçekleme yapmanın (vertical scaling/scale up) maliyeti üssel şekilde artıyor. Biraz daha canlanması adına havayolu yönetim sistemleri, multi-player bilgisayar oyunları, tedarik zinciri sistemleri ve ödeme sistemleri günümüzde hepimizin karşısına çıkan dağıtık sistem örnekleri olarak düşünülebilir.

Kaldı ki donanım öğelerinin de fiziksel limitleri ve bozulma ihtimali var. Milyon dolarlar harcadığınız bir sistemin tek bir donanım öğesinin
(disk, memory, cpu vb.) bozulmasıyla çalışamaz hale gelmesini kabul eder miydiniz? Edenleri alalım. Etmeyenlerle “Nasıl şu dağıtık sistemleri kurarız?” derdine düşelim hep beraber.


Para Çokomel Eğrisi 1 liraya 1 çokomel alabiliyorum. 2 liraya 2 tane alabilirim. Hatta toplu alsam belki 20
liraya 25 tane alabilirim. Peki bu dağıtık sistemlerde de böyle mi? 1 makine ile 100 birim iş yapabiliyor isem 10 makine ile 1000 işlem yapabilir miyim? Dağıtık sistemlerde makine adeti ile toplam işlem gücü arasındaki ilişki
lineer değil maalesef. Çünkü sisteme eklenen her bir öğe sistemin karmaşıklığını arttırır ve beraberinde iletişim
maliyetleri getirir. Dolayısıyla 10 makine ile 1000 işlem yapmanız neredeyse olanaksızdır.

KAYNAKÇA:

  • https://erkanerol.github.io/post/distributed-systems-1/
  • https://www.minepla.net/2015/08/dagitik-sistemler-distributed-systems

Rengin RAFİ

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir