Backpressure
Tüketici kapasitesi gelen iş hızını karşılayamadığında üst akışın üretim hızını sınırlayarak kuyruk ve bellek büyümesini kontrol eden akış mekanizması.
Backpressure (geri basınç), tüketici gelen işi sürdürülebilir hızda işleyemediğinde üst akışın yeni iş üretme hızını sınırlamasıdır.
Kuyruk Neden Büyür?
Uzun dönemde geliş hızı λ, servis kapasitesi μ değerini aşarsa kuyruk sürekli büyür. Bellekteki kuyruk sınırsızsa gecikme ve bellek kullanımı birlikte artar; sistem bir süre çalışıyor görünse bile tail latency giderek kötüleşir.
Uygulama Biçimleri
Backpressure;
- üreticinin bloklanması,
- sınırlı kuyruk dolduğunda yeni işin reddedilmesi,
- talep miktarının tüketici tarafından bildirilmesi,
- bazı düşük öncelikli işlerin yük altında bırakılması
gibi farklı mekanizmalarla uygulanabilir.
Rate Limiting ile Farkı
Rate limiting çoğu zaman politika gereği kabul edilen hızı sınırlar. Backpressure ise gerçek downstream kapasite sinyaline tepki verir. Birbirini tamamlayabilirler.
Retry'nin kontrolsüz uygulanması backpressure'ı bozabilir; doygun bağımlılığa daha fazla iş üretir.
İlgili: Kuyruk teorisi, Üst yüzdelik gecikme, Yük atma, Kritik Sistemlerde Güvenli Retry.