Ana içeriğe geç
Bulut & Altyapı

Mainbrella dağıtık sistemlerde yanıt kaybı ve yeniden deneme mimarisini anlattı

Öne çıkanlar

  • Makine kabulü ve başlatma işlemleri Cloudflare Durable Objects koordinatörleriyle birbirinden ayrıldı.
  • Idempotency-Key içeren rezervasyon makbuzları 24 saat saklanarak mükerrer makine oluşumu engellendi.
  • Çalışma zamanı çökmelerinde yarım kalan işler otomatik tekrarlanmadı ve konuk nesne güvenli şekilde yok edildi.

Mainbrella, açık kaynak kodlu arka uç mimarisinde Linux sanal makineleri oluşturulurken yaşanan yanıt kaybı ve ağ kesintisi sorunlarını nasıl ele aldığını açıkladı. İstemcinin bir makineyi başlatıp yanıt alamadığı durumlarda maliyetli mükerrer işlemlerin önüne geçmek amacıyla sistem sınırlarında katı kurallar uygulandı. Hesap koordinatörü olarak Cloudflare Durable Objects bileşenlerini kullanan platform, her makine yuvasını bağımsız bir koordinatör üzerinden yöneterek kabul sürecini sıralı, başlatma sürecini ise paralel hale getirdi.

Makine başlatma sürecinde istemcilerden alınan Idempotency-Key değeriyle hazırlanan makbuzlar kalıcı olarak veri tabanına işlendi. Çoklu anahtar yazma işlemi sayesinde yuva rezervasyonu ile işlem makbuzu atomik şekilde kaydedildi ve 24 saat boyunca saklandı. Geciken veya sırası karışan ağ paketlerinin sistemi bozmasını engellemek için artan rezervasyon numaraları ve iptal sınırları kullanıldı. Bu yöntemle eski bir başlatma veya silme isteğinin yeni oluşturulan bir nesneye zarar vermesi engellendi.

Sistem, disk anlık görüntüsü alma ve yönetilen komut çalıştırma süreçlerinde de belirsiz durumlara karşı özel önlemler aldı. Sağlayıcı tarafında gerçekleşen ancak tanıtıcısı kaydedilemeyen anlık görüntü işlemleri belirsiz olarak işaretlendi ve sessizce yeniden denenmek yerine hata döndürüldü. Çalışma zamanı yeniden başlatıldığında ise yarım kalan komutlar otomatik olarak tekrar çalıştırılmayıp ilgili nesne tamamen sonlandırıldı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.