Skip to main content

Zaman Aşımı (Timeout)

Sistem Analizi

GüvenilirlikPRODUCTION

Normal Davranış

Bir işlem (operation) gönderildiğinde (dispatch) asenkron bir zamanlayıcı başlatır. Uzak hizmet (remote service) veya veritabanı belirtilen süre (deadline) içinde isteği tamamlarsa, zamanlayıcı iptal edilir ve yürütme normal şekilde devam eder; eğer bir yanıt alınmadan önce süre dolarsa, bağlantı derhal kesilir (aborted), yerel kaynaklar (local resources) geri alınır ve arayana bir zaman aşımı (timeout) hatası döndürülür.

Çöküş Davranışı

Zaman aşımları keyfi olarak yapılandırıldığında veya derin bir mikro hizmet mimarisinin tüm katmanlarında aynı şekilde ayarlandığında, yukarı yönlü (upstream) istemciler (clients) istekleri iptal ederken (abort), aşağı yönlü veritabanları izlenmeyen hesaplamayı (unmonitored computation) yürütmeye devam eder. Bu, sonuçları anında atılacak (discarded) olan işlerde arka uç iş parçacığı havuzlarını (backend thread pools) ve işlem kaynaklarını tüketen 'zombi istekler' (zombie requests) yaratır.

İş Sonuçları

Kötü yapılandırılmış zaman aşımları (timeouts), yıkıcı kaynak tükenmesine ve zincirleme hatalara (cascading failures) neden olur. Zaman aşımları çok uzunsa, iş parçacıkları (threads) ölü hizmetleri beklerken sonsuza dek bloke olur ve uygulamayı çökertir. Çok agresiflerse, sağlıklı işlemler (healthy operations) hafif yük altında vaktinden önce kesilir; bu da kullanıcı deneyimini ciddi şekilde bozar ve büyük işlem terklerine (transaction abandonment) neden olur.

Görsel Tezahür

"Uygulama performans izleme (APM) gösterge panolarının (dashboards) devasa bir HTTP 504 Ağ Geçidi Zaman Aşımı (Gateway Timeout) hatası sıçraması göstermesi ve bağlantı havuzlarının (connection pools) %100 kapasiteye ulaşması."

Satirical Behavior

"An arbitrary hardcoded integer (usually 30000ms) that engineers guess might be long enough, which exists solely to ensure users stare at a spinning wheel right before their payment fails."

Bilinen İsimler

TimeoutRequest DeadlineTime LimitCancellation

Teknik Terminoloji

connection timeoutread timeoutwrite timeoutrequest deadlinecontext cancellationSLA limittimeout propagationhard timeoutsoft timeoutcircuit trip

Hata Göstergeleri

hung requestthread pool exhaustion504 gateway timeoutdelayed failurezombie process

Sistem Mimarisi

Click or hover to interact

FAQ

Normalde nasıl davranır?

Bir işlem (operation) gönderildiğinde (dispatch) asenkron bir zamanlayıcı başlatır. Uzak hizmet (remote service) veya veritabanı belirtilen süre (deadline) içinde isteği tamamlarsa, zamanlayıcı iptal edilir ve yürütme normal şekilde devam eder; eğer bir yanıt alınmadan önce süre dolarsa, bağlantı derhal kesilir (aborted), yerel kaynaklar (local resources) geri alınır ve arayana bir zaman aşımı (timeout) hatası döndürülür.

Nasıl çöker?

Zaman aşımları keyfi olarak yapılandırıldığında veya derin bir mikro hizmet mimarisinin tüm katmanlarında aynı şekilde ayarlandığında, yukarı yönlü (upstream) istemciler (clients) istekleri iptal ederken (abort), aşağı yönlü veritabanları izlenmeyen hesaplamayı (unmonitored computation) yürütmeye devam eder. Bu, sonuçları anında atılacak (discarded) olan işlerde arka uç iş parçacığı havuzlarını (backend thread pools) ve işlem kaynaklarını tüketen 'zombi istekler' (zombie requests) yaratır.

İş sonuçları nelerdir?

Kötü yapılandırılmış zaman aşımları (timeouts), yıkıcı kaynak tükenmesine ve zincirleme hatalara (cascading failures) neden olur. Zaman aşımları çok uzunsa, iş parçacıkları (threads) ölü hizmetleri beklerken sonsuza dek bloke olur ve uygulamayı çökertir. Çok agresiflerse, sağlıklı işlemler (healthy operations) hafif yük altında vaktinden önce kesilir; bu da kullanıcı deneyimini ciddi şekilde bozar ve büyük işlem terklerine (transaction abandonment) neden olur.

How does the lack of distributed deadline propagation cause thread pool exhaustion and wasted compute?

When an upstream API gateway has a 2-second timeout but downstream microservices and database queries lack context deadline propagation (such as gRPC deadlines or HTTP request cancellation contexts), the gateway aborts the client connection after 2 seconds while the downstream database continues running an expensive 60-second table scan. The backend wastes CPU, memory, and database connections servicing an abandoned client request.

Why do overly tight timeout configurations trigger catastrophic retry storms in distributed architectures?

When service timeouts are configured too close to the p99 latency threshold, transient network jitter or minor database latency spikes cause client requests to time out prematurely. If clients are configured with aggressive, unjittered automatic retries, each timed-out request spawns multiple immediate replacement requests, multiplying incoming traffic and pushing an already struggling backend service into complete operational collapse.

AI özeti

Timeout is a RELIABILITY system in TinyCTO.tv. Initiates an asynchronous timer upon dispatching an operation. If the remote service or database completes the request within the specified deadline, the timer is cancelled and execution proceeds normally; if the deadline expires before a response is received, the connection is immediately aborted, local resources are reclaimed, and a timeout error is returned to the caller.