sapling/eden/mononoke/blobstore
Thomas Orozco 89cbb08a09 mononoke: move ContextConcurrencyBlobstore to RepoBlobstore
Summary:
Right now, ContextConcurrencyBlobstore is instantiated in make_blobstore, which
makes it a lot more effective (3 times more effective, in fact) than we want it
to be, since a ticket is acquired by 3 blobstores in the chain in order to
complete a put:

- The multiplex
- The two underlying blobstores

This also has the potential to deadlock if all tickets are held by the
multiplex, which results in an eventual timeout after 600s of waiting in the
multiplex (this looks like it might be happening at least once or twice per
hour right now on the experimental tier).

In any case, the intention had always been to have one of those per repo, not
one per sub-blobstore, so let's do that. The more natural place to put this
seems to be the RepoBlobstore instantiation.

Since I anticipate I might not be the only one who gets tripped up by this at
some point, I also added a comment about this. I also updated the blobsync
tests to stop re-implementing `RepoBlobstoreArgs::new()` so that adding new
blobstores in RepoBlobstoreArgs will have minimal friction.

Reviewed By: HarveyHunt

Differential Revision: D20467346

fbshipit-source-id: a6ad2d8f04bff1c6fcaa151e947cb8af919eec07
2020-03-16 05:30:11 -07:00
..
cacheblob/src replace hashmap with structured data 2020-03-13 14:52:55 -07:00
chaosblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
context_concurrency_blobstore/src mononoke: move ContextConcurrencyBlobstore to RepoBlobstore 2020-03-16 05:30:11 -07:00
delayblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
factory/src mononoke: move ContextConcurrencyBlobstore to RepoBlobstore 2020-03-16 05:30:11 -07:00
fileblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
if Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
memblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
multiplexedblob/src rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
prefixblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
readonlyblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
redactedblobstore blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
sqlblob mononoke: fix integration test regression by reducing number of sqlite shards 2020-03-13 06:28:02 -07:00
src common/rust: remove unused asyncmemo from the codebase 2020-02-19 05:15:17 -08:00
test mononoke/blobstore: remove rocksdb blobstore and replace its usages with sqliteblob 2020-02-24 05:23:07 -08:00
throttledblob blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
Cargo.toml blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00