sapling/eden/mononoke/blobstore
Thomas Orozco 6ac0c26e06 mononoke/context_concurrency_blobstore: use rate limit instead of semaphore
Summary:
Limits on concurrent calls are a bit hard to reason about, and it's not super
obvious what a good limit when all our underlying limits are expressed in QPS
(and when our data sets don't have peak concurrency - instead they have
completion time + # blob accesses).

Considering our past experience with ThrottledBlob has been quite positive
overall, I'd like to just use the same approach in ContextConcurrencyBlobstore.
To be safe, I've also updated this to be driven by tunables, which make it
easier to rollout and rollback.

Note that I removed `Debug` on `CoreContext` as part of this because it wasn't
used anywhere. We can bring back a meaningful implementation of `Debug` there
in the future if we want to. That triggered some warnings about unused fields,
which for now I just silenced.

Reviewed By: farnz

Differential Revision: D21449405

fbshipit-source-id: 5ca843694607888653a75067a4396b36e572f070
2020-05-12 06:49:25 -07:00
..
cacheblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
chaosblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
context_concurrency_blobstore mononoke/context_concurrency_blobstore: use rate limit instead of semaphore 2020-05-12 06:49:25 -07:00
delayblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
factory mononoke/async_limiter: make AsyncLimiter::new async 2020-05-12 06:49:25 -07:00
fileblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
if third-party/rust: Turn off async-trait/support_old_nightly 2020-04-02 17:01:24 -07:00
memblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
multiplexedblob mononoke: fix scrub_get race 2020-05-06 09:20:42 -07:00
prefixblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
readonlyblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
redactedblobstore Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
samplingblob mononoke: make sampling blobstore handlers fallible 2020-05-11 12:00:59 -07:00
sqlblob Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
src Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
test Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00
throttledblob mononoke/async_limiter: make AsyncLimiter::new async 2020-05-12 06:49:25 -07:00
Cargo.toml Expose ctime from Blobstore::get() in mononoke 2020-05-06 00:55:07 -07:00