This is bad because it instantly triggers saturation, potentially increasing throughput but sacrificing latency of all requests being handled by the single work queue. Anyone who has worked on networks or distributed systems will tell you war stories related to poor backpressure.
-
-
Prikaži ovu nitHvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
-
-
This should be fairly simple to implement with Tokio and bounded queues on ingest. The really tough thing is that TCP will enqueue new requests at the OS level, and there’s not a huge amount you can do there, other than accept and drop right away.
-
When you call `listen` you specify the TCP backlog length. It's important in any real system to pick a reasonable number here, for exactly the same reason. You want it to be short enough that your upstream load balancer can do its job. Real world sockets 101.
- Još 1 odgovor
Novi razgovor -
-
-
What you propose, is a nice default behavior. No reason why this couldn't be implemented for async executors.
-
It isn't always right, though. The underlying principle is limiting work in progress. If accepting new sockets is required to make progress, you should accept them. Otherwise, one long running task that is cooperative and yields appropriately blocks everything.
- Još 4 druga odgovora
Novi razgovor -
-
-
Dmitry noted on this back in 2014 on his go scheduler proposal https://docs.google.com/document/u/0/d/1d3iI2QWURgDIsSR6G2275vMeQ_X7w-qxM2Vp7iGwwuM/pub …pic.twitter.com/Hyt6eQOdLW
-
Dmitry always nails this stuff xD I think his old blog at http://1024cores.net is still packed with solid gold advice. His writing really made me feel like I could take on low-level systems engineering
Kraj razgovora
Novi razgovor -
-
-
Also most async code treats the runtime as an unbounded work queue. Unbounded queues aren't
Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
-
-
I think
@mitsuhiko had similar thoughts here: https://lucumr.pocoo.org/2020/1/1/async-pressure/ …Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.