Ana Sayfa

Erlang'ın İzolasyon Tuzağı: Eşzamanlılık Sınırları

1 dk okuma

Makale, programlama dillerindeki eşzamanlılık durumunu ve bu alandaki sorunları incelemeye devam ediyor. Daha önceki bir yazıda Go'nun kanallarının paylaşılan değiştirilebilir durum olduğunu savunan yazar, bu kez aktör modelinin en güçlü uygulamalarından biri olan Erlang'a odaklanıyor. Carl Hewitt tarafından 1973'te önerilen aktör modeli, eşzamanlı varlıkların (aktörlerin) yalnızca mesajlar aracılığıyla iletişim kurmasını ve her aktörün kendi özel durumuna sahip olmasını öngörür. Bu sayede, aktörler durum paylaşmadığı için paylaşılan durum hataları yaşanmaz. Erlang, ayrı heap'ler, mesaj kopyalama ve denetim ağaçları ile bu izolasyon ilkesini en güçlü şekilde uygular. Bu yaklaşım, telefon santrallerinin yüksek erişilebilirlikle çalışmasını sağlamış ve WhatsApp gibi sistemlerin yüz milyonlarca kullanıcıya ulaşmasına olanak tanımıştır. Erlang'ın otuz yıllık üretim deneyimi, bu modelin güvenilirliğini kanıtlamıştır.

Ancak makale, Erlang'ın bu güçlü izolasyonuna rağmen, eşzamanlılıkta karşılaşılan temel sorunlardan tamamen kaçamadığını iddia ediyor. Yazar, mesajlaşma mekanizmasının (kanal, posta kutusu, mesaj kuyruğu) kendisinin paylaşılan değiştirilebilir bir kaynak olduğunu ve paylaşılan değiştirilebilir durumun getirdiği sorunları miras aldığını belirtiyor. Erlang'ın posta kutuları da bu durumun bir istisnası değil. Erlang'ın tek sahibi olan posta kutusu tasarımı, Go'nun kanallarından daha disiplinli olsa da (yalnızca sahibi olan sürecin okuyabilmesi ve gönderimlerin eşzamansız olması), paylaşılan değiştirilebilir durumun dört temel hata modunun farklı şekillerde de olsa ortaya çıktığını gösteriyor. Bu durum, izolasyonun eşzamanlılık sorunlarını tamamen çözmediği ve iletişim mekanizmalarının doğasının dikkatle incelenmesi gerektiği sonucuna varıyor.

İçgörü

Erlang'ın güçlü izolasyon modelinin bile eşzamanlılıkta paylaşılan değiştirilebilir durumun getirdiği sorunlardan tamamen kaçamadığını göstermesi, aktör tabanlı sistemlerin tasarımında iletişim mekanizmalarının doğasının kritik önemini vurguluyor.

Kaynak