Geçmişi Yeniden Oynatmadan Dayanıklı Çalıştırma (Durable Execution)
İçindekiler
Çoğu dayanıklı çalıştırma (durable execution) sistemi, çöken bir worker'ın ardından sistemi hafızada tutulan yürütme geçmişini yeniden oynatarak (history replay) kurtarır. Yeni bir worker geçmişi baştan sona yükler ve mevcut çalışma konumunu yeniden inşa edene kadar programı tekrar çalıştırır. Bu yaklaşım, worker'ların geçici (ephemeral) kalmasını sağlayan kullanışlı bir modeldir; ancak birikmiş işlem geçmişini kurtarma sürecinin doğrudan bir parçası haline getirir. Saatlerce veya günlerce çalışan, çok sayıda araç (tool) çağıran, harici olayları bekleyen, alt süreçler oluşturan ve dinamik olarak yön değiştiren uzun soluklu yapay zeka ajanlarında (AI agents) bu durum ciddi bir performans darboğazı yaratır. Şeffaf Devam Noktası Kaydı (Transparent Continuation Checkpointing - TCC) ise geçmişi yeniden inşa etmek yerine doğrudan programın devamlılık durumunu (continuation) kaydeden alternatif bir kurtarma temeli sunar.
Şeffaf Devam Noktası Kaydı (Transparent Continuation Checkpointing - TCC)
TCC yaklaşımında derleyici ve çalışma zamanı (runtime), dayanıklı sınırlarda (durable boundaries) programın mevcut konumundan devam etmesi için gereken kontrol durumunu (live continuation) yakalar. Bir çökme veya arıza sonrası yürütme yeniden başladığında, runtime kaydedilmiş devam noktasını yükler ve programı doğrudan geri yükleyerek sürdürür.
İki yaklaşım arasındaki temel ayrım şudur:
- Geçmişi Yeniden Oynatma (History Replay): Saklanan geçmişi yükle → Önceki adımları yeniden çalıştır → Mevcut konumu yeniden inşa et.
- TCC (Transparent Continuation Checkpointing): Kaydedilmiş devam noktasını yükle → Canlı çalıştırma durumunu geri yükle → Kaldığı yerden devam et.
Dış etkiler açıkça dayanıklı operasyonlar olarak kalır; tamamlanan işler kurtarma sonrasında tekrarlanmaz ve desteklenmeyen dil yapıları belirsiz çalışma zamanı davranışları üretmek yerine derleme aşamasında hata verir. Mevcut prototip şu yetenekleri desteklemektedir:
- Dayanıklı etkiler (durable effects)
- Harici beklemeler ve olaylar (external waits and events)
- Alt çalıştırmalar (child executions)
- İptal işlemleri (cancellation)
- Yapısal eşzamanlılık (structured concurrency)
- Çökme sonrası kurtarma (crash recovery)
Neler Değişiyor?
TCC kurtarma süresini sabit zamanlı (constant-time) yapmaz; kurtarma süresi halen canlı devamlılık durumunun boyutuna ve yapısına duyarlıdır. Asıl amaçlanan değişim, kurtarma süresinin neye bağlı olduğudur:
- Replay mekanizmasında kurtarma, mevcut konumu yeniden inşa etmek için saklanan geçmişin uzunluğuna bağlıdır.
- TCC'de ise kurtarma, öncelikli olarak programın çalışmaya devam etmek için halen ihtiyaç duyduğu duruma bağlıdır.
Böylece 10.000 işlem gerçekleştirmiş ancak küçük bir canlı devamlılık durumu tutan bir program, sırf geçmişi uzun olduğu için kurtarılması daha zor hale gelmez.
Ön Değerlendirme
Canlı durumun yaklaşık 4 KB seviyesinde sabit tutulduğu ve dayanıklı işlem sınırı derinliğinin 10'dan 1.000'e çıkarıldığı kontrollü bir karşılaştırmada:
- TCC kurtarma gecikmesi yaklaşık 0.6 ile 0.9 milisaniye arasında sabit kalmıştır.
- Değerlendirilen Temporal referansında, yeni worker ile yeniden inşa süresi yaklaşık 61 milisaniyeden 1.7 saniyeye yükselmiştir.
Worker oluşturma sürelerinin hariç tutulduğu ve yaklaşık 4 KB canlı durumla yapılan bu testler genel bir üretim hızı iddiası taşımamakta; test koşulları altında kurtarma ölçeklenmesindeki temel farkı ortaya koymaktadır.
Metodoloji, Sınırlar ve Pratik Çıkarımlar
Yürütme anlambilimi üretilen 50.000 test senaryosu üzerinde denenmiş ve değerlendirilen alt kümede hiçbir anlamsal hata gözlemlenmemiştir. Yazılım geliştiriciler ve ajan mimarları için temel pratik çıkarım şudur: Özellikle saatlerce süren çok adımlı AI agent sistemlerinde, işlem geçmişi biriktikçe replay maliyeti doğrusal olarak artar. TCC gibi kontrol noktası (checkpointing) yaklaşımları, üretim ortamında dayanıklı, hata toleranslı ve hızlı toparlanan yapay zeka ajanları inşa etmek için geçmişten bağımsız modern bir mimari alternatif sunar.
[Orijinal kaynağa buradan ulaşabilirsiniz.](https://trigora.dev/blog/durable-execution-without-history-replay/)
Bu konuyu derinlemesine öğrenmek isterseniz: Production'da Agent Güvenilirliği modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →