Ctrl K
Java · Senior · Coding

Write a thread-safe RateLimiter class: the constructor takes how many requests per second are allowed, and the tryAcquire method, without waiting, returns true if the request can be let through and false if the limit is exhausted. It will be called concurrently from many threads.

~15 min by voice

How to approach it

The interviewer wants to see whether you can choose a rate-limiting algorithm and explain its trade-off. Second, whether you can make refilling, checking and consuming atomic, so that a race doesn't let an extra request through. Third, whether you avoid the typical traps with time: a non-monotonic clock, losing fractional tokens, unbounded accumulation.

Have you seen this question in a real interview?
Answers0
Avg. score—
Strong—
Practiced0
Topics
Similar questionsWrite an async function fetch_all that takes a list of URLs, an async function that fetches a single URL, and a limit on concurrent requests. It returns the results in the same order as the URLs, and a failure of one request must not take down the others. SeniorВозьмём перевод между двумя счетами, которые лежат в одной базе: списать с одного, зачислить на другой. Как вы это реализуете, чтобы при параллельных операциях деньги не потерялись и баланс не ушёл в минус? SeniorНесколько потоков одновременно делают counter++ над общей переменной, и в итоге значение получается меньше ожидаемого. Объясните, что именно происходит на уровне процессора и памяти, и какими способами это можно исправить — чем они отличаются внутри. Mid-levelWrite a rate limiter for an API using the token bucket algorithm: an allow function takes a client identifier and returns whether its request can go through. Each client has a bucket capacity and a token refill rate per second, and the limiter itself is called from many threads at once. SeniorDesign a rate limiter for a public API: for example, no more than 100 requests per minute per API key. The service runs on several instances. Mid-level

Answer by voice

The interviewer will ask this question and listen. Think out loud and ask for a hint if you need one. When you're done, pause or tap “That's my answer”. In about a minute, your score and the points you covered show up here.

Sign in to answer

Best with headphones · ~15 min