mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
89cbb08a09
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 |
||
---|---|---|
.. | ||
src |