Jepsen analizinde Orkes Conductor iş akışlarında veri kaybı tespit edildi
Öne çıkanlar
- Orkes Conductor, sağlıklı küme durumunda dahi görevleri birden fazla düğümde eşzamanlı çalıştırdı.
- Ağ bölünmesi ve çökme durumlarında daha önce görülen iş akışları veritabanından kalıcı olarak silindi.
- Orkes, tespit edilen tutarlılık ve kayıp sorunlarının çoğunu 5.5.0 ve 5.5.6 sürümlerinde düzeltti.
Dağıtık sistem analizleriyle bilinen Jepsen, Netflix kökenli iş akışı yönetim platformu Orkes Conductor üzerinde yürüttüğü kapsamlı dayanıklılık testlerinin sonuçlarını paylaştı. Testler, PostgreSQL ve Redis bileşenlerinin kullanıldığı tipik bulut kurulumlarında Orkes Conductor 5.3.2 sürümünden 5.5.0 aday sürümlerine kadar olan yapıyı mercek altına aldı. Analiz sürecinde ağ bölünmeleri, sunucu çökmeleri ve süreç sonlandırmaları gibi yaygın arıza senaryoları simüle edildi.
Gerçekleştirilen testler sonucunda, sistemin sağlıklı çalıştığı anlarda bile aynı görevin birden fazla çalışan düğümde eşzamanlı yürütülebildiği belirlendi. Ayrıca ağ kopuklukları veya sunucu kapanmaları sırasında iş akışlarının kalıcı olarak kaybolduğu, istemcilere daha önce gösterilen akışların veritabanından silindiği ve çalıştırılmamış görevlere sahip akışların hatalı biçimde tamamlandı olarak işaretlendiği ortaya çıktı. Hata temizleme sürecindeki bir yarış durumu da görevlerin mükerrer kuyruğa alınmasını tetikledi.
Jepsen ekibinin bulgularını iletmesinin ardından Orkes, belirlenen tasarım ve tutarlılık sorunlarının önemli bir kısmını Conductor 5.5.0 ve 5.5.6 sürümlerinde yayımladığı yamalarla giderdi. Şirket, Java istemcisinde idempotent olmayan çağrıların yeniden denenmesini durdurdu ve başarısız iş akışlarının veritabanından doğrudan silinmesi uygulamasını kaldırdı. Bununla birlikte eşzamanlı görev yürütme ihtimalinin asenkron ağ mimarisi nedeniyle tamamen sıfırlanamayacağı ve dokümantasyonda bu sınırların netleştirilmesi gerektiği aktarıldı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.