RFR: 1731: Improve RestRequestCache rate limiter

Erik Joelsson erikj at openjdk.org
Tue Jan 3 18:19:16 UTC 2023

In the RestRequestCache, we are trying to limit non GET calls for a specific host and user to one call per second (and all calls, including GET, for a specific host and user, need to be serialized). This throttling is based on recommendations from GitHub (https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-abuse-rate-limits). The current implementation isn't really doing that however. Calls are serialized, but depending on timing, we can definitely send more than one non GET call per second, at least in bursts.

This patch tries to rework this, using two locks. During high contention, it's possible that this new implementation will be less favorable to non GET calls than the current implementation, but I'm pretty sure we will at least adhere to the recommendation of performing at most one non-GET call per second. See bug for breakdown of locking order.


Commit messages:
 - SKARA-1731

Changes: https://git.openjdk.org/skara/pull/1453/files
 Webrev: https://webrevs.openjdk.org/?repo=skara&pr=1453&range=00
  Issue: https://bugs.openjdk.org/browse/SKARA-1731
  Stats: 32 lines in 1 file changed: 12 ins; 10 del; 10 mod
  Patch: https://git.openjdk.org/skara/pull/1453.diff
  Fetch: git fetch https://git.openjdk.org/skara pull/1453/head:pull/1453

PR: https://git.openjdk.org/skara/pull/1453

More information about the skara-dev mailing list