Comparison
Head-of-line blockingvsStarvation
Head-of-line blocking
one slow request at the front of the queue holds up every fast request stuck behind it.
When a serialised path forces later work to wait on an earlier, slower item. It appears in HTTP/1.1 connections, in single-partition consumers, and in any single-threaded processing queue. The fixes are multiplexing, more partitions, or separating slow work into its own lane so it cannot block the fast one.
Full entry →Starvation
the low-priority job never runs because higher-priority work keeps arriving and taking the resource first.
A process being indefinitely denied a resource it needs while others make progress. It is the failure mode of unfair scheduling and priority queues. Aging — raising priority with wait time — is the standard fix, and its absence is why the cleanup job that runs "when there is spare capacity" never runs.
Full entry →