<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
You don’t increase concurrency to increase throughput (in a system under a given load). Rather, higher levels of throughput require higher levels of concurrency, or, put another way, the level of concurrency in a system rises with its throughput. That is Little’s
 law.
<div class=""><br class="">
</div>
<div class="">User-mode threads or async APIs are all about Little’s law. Whether or not the level of concurrency is a common bottleneck in thread-per-request programs or not is an empirical question. If it isn’t, then people won’t use virtual threads or async
 APIs.</div>
<div class=""><br class="">
</div>
<div class="">— Ron<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 16 Jul 2022, at 20:38, Alex Otenko <<a href="mailto:oleksandr.otenko@gmail.com" class="">oleksandr.otenko@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="auto" class="">I agree about capacity to do work. What I don't agree with is that you can change concurrency to increase throughput in Little's law - not more than you can change acceleration to increase force.
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">And I don't agree that the common bottleneck is the lack of threads - 10k threads on 100 CPUs is not much; 10k longlived threads on 1 CPU is 99.99% waiting. Shortlived threads, or thread per request, isn't really about concurrency in
 Little's law.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">Alex</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, 15 Jul 2022, 15:05 Pedro Lamarão, <<a href="mailto:pedro.lamarao@prodist.com.br" class="">pedro.lamarao@prodist.com.br</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">
<div dir="ltr" class="">Em sex., 15 de jul. de 2022 às 05:39, Alex Otenko <<a href="mailto:oleksandr.otenko@gmail.com" target="_blank" rel="noreferrer" class="">oleksandr.otenko@gmail.com</a>> escreveu:<br class="">
</div>
<div class="gmail_quote">
<div class=""> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="auto" class="">
<div dir="auto" class="">Adding threads allows to do more work. But you can't do more work at will - the amount of work going through the system is a quantity independent of your design.</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">I think that, more precisely, the maximum amount of work that can go through a concrete system is a quantity independent of programmer design.</div>
<div class="">Nobody is arguing that increasing the quantity of threads will increase work throughput in a machine with devices already at full capacity.</div>
<div class="">What is being argued is that, since "task" is one of the machine's "devices" consumed to do work, </div>
<div class="">increasing the capacity for "tasks" increases the maximum amount of work that can go through etc.</div>
<div class="">If there are free processors, free memory, free network bandwidth, free storage bandwidth etc. etc. then doing more work concurrently will increase work throughput.</div>
</div>
<div class=""><br class="">
</div>
-- <br class="">
<div dir="ltr" class="">
<div dir="ltr" class="">Pedro Lamarão<br class="">
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>