No video

"Stop Rate Limiting! Capacity Management Done Right" by Jon Moore

  Рет қаралды 36,071

Strange Loop Conference

Strange Loop Conference

Күн бұрын

Пікірлер: 13
@FelixSargent
@FelixSargent 6 жыл бұрын
Great talk. I think the TL;DR is - Don't use rate limits - Capacity *planning* is hard. Make it dynamic. - Dynamic Capacity Planning can be done with AIMD en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease - It's OK to tell your clients you're overloaded, they are the ones who are obliged to respect back pressure.
@user-ix6ig6jm1f
@user-ix6ig6jm1f 11 ай бұрын
Sounds helpful for the server to proxy and proxy to client to use a back channel signal to advise a 'back off', and then a response (dropping/refusing requests) if it does not.
@yairmorgenstern416
@yairmorgenstern416 Жыл бұрын
Incredible presentation. We need more practical strangeloop talks like this one!
@igorgulco6608
@igorgulco6608 4 жыл бұрын
High Quality presentation! Thats what im here for!
@adityasanthosh702
@adityasanthosh702 4 ай бұрын
One thing I'd like to see is how AIMD is configured. How do you decide backoff factor in multiplicative decrease and additive factor in Additive increase?
@growlingchaos
@growlingchaos 6 жыл бұрын
Really great talk!
@julienviet
@julienviet 6 жыл бұрын
yes great!!!
@parodoxis
@parodoxis 3 жыл бұрын
You're still rate limiting; you're just pushing that job onto the clients. But how will they know how long to wait after receiving a NOPE before trying again? If they try again to quickly, they'll just keep getting NOPEd. If they try again too slowly, there may be stranded capacity again. Instead, what if we simply sent back a "wait this long before your next request" header with every response? The wait period could be zero if the server is below capacity, but if it's at capacity we calculate a conservative estimate in milliseconds for how long they should wait - may be different every time - before making the next request. Simply compare how many requests we completed last second to how many we get done this second and assume the demand will be the same for the future second - then divide the next second up fairly among all the clients. Clients who we've never seen before will get priority, as they have no known wait time to go by, and we should give them VIP treatment anyway over the clients who have been hammering us for a while with no sign of stopping. Clients who disrespect the wait time get deprioritized, or even noped. I feel like this would maintain a constant near-100% pressure, and yet clients also know exactly what to expect - if they respect the wait time, they're guaranteed a quick response and no NOPE. If they see a wait value that's too high, they can choose to write the server off as too congested and give up for now, if they want. This just leaves even more capacity for the rest of the clients. Same happens when you gave a client a wait time but they have no more to send. Some capacity goes unused, and you can account for this in the next second's measurement.
@AmanGarg95
@AmanGarg95 5 жыл бұрын
This is great. Well done.
@AnhNguyen-vu7mc
@AnhNguyen-vu7mc 6 жыл бұрын
this is a really helpful talk. Do you happen to open source all the code?
@vajravelumani1827
@vajravelumani1827 Жыл бұрын
instead of using `number of concurrent users` , should'nt we be using the `time taken to serve a request` as deciding factor for increasing/decreasing incoming requests ?
"Zuul's Journey to Non-Blocking" by Arthur Gonigberg
36:09
Strange Loop Conference
Рет қаралды 36 М.
"The Mess We're In" by Joe Armstrong
45:50
Strange Loop Conference
Рет қаралды 379 М.
Happy birthday to you by Tsuriki Show
00:12
Tsuriki Show
Рет қаралды 11 МЛН
7 Days Stranded In A Cave
17:59
MrBeast
Рет қаралды 84 МЛН
"How NOT to Measure Latency" by Gil Tene
42:59
Strange Loop Conference
Рет қаралды 104 М.
"Building Scalable Stateful Services" by Caitie McCaffrey
35:07
Strange Loop Conference
Рет қаралды 35 М.
"Cursorless: A spoken language for editing code" by Pokey Rule (Strange Loop 2023)
39:26
"Transactions: myths, surprises and opportunities" by Martin Kleppmann
41:08
Strange Loop Conference
Рет қаралды 72 М.
Design Microservice Architectures the Right Way
48:30
InfoQ
Рет қаралды 710 М.
"Why We Built Our Own Distributed Column Store" by Sam Stokes
42:41
Strange Loop Conference
Рет қаралды 14 М.
Mastering Chaos - A Netflix Guide to Microservices
53:14
InfoQ
Рет қаралды 2,2 МЛН
CRDTs and the Quest for Distributed Consistency
43:39
InfoQ
Рет қаралды 54 М.
"Swift as C++ Successor in FoundationDB" by Konrad Malawski (Strange Loop 2023)
42:24