Erlang / Erlang Advanced Interview questions
Why should high-priority processes be used sparingly in Erlang?
Erlang's whole scheduling model assumes most processes are roughly equal citizens sharing time fairly via
reduction counting. Marking a process high or max priority breaks that assumption
locally: it can consistently jump ahead of normal-priority work on the same scheduler, and if it runs
frequently or for long stretches, it can starve normal-priority processes of scheduling time, even though
they're otherwise ready to run.
In practice, very few application-level processes actually need this — genuine latency requirements are usually better solved by architecture (dedicating a process to just that fast path, using dirty schedulers correctly for native work, or reducing message queue depth) rather than by escalating priority. Overusing elevated priorities tends to create hard-to-diagnose "why is everything else sluggish" issues, since the starved processes show no error, just quietly reduced throughput.
More Related questions...