mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
31b5ed02fd
Summary: If multiple requests to fetch a tree come in at the same time fast enough (where the first request hasn't had the chance to retrieve the data from Mercurial and save it in the cache), we will request to download the tree multiple times. If the tree is not in the hgcache, this means we will make an extra round trip to the server. There is no limit to how many concurrent requests can be made, meaning we could make a large amount of round trips to the server for the same tree. This adds a tracking mechanism in which we track in progress tree fetches, and if we get a request that is already in the queue or being processed, we just return a future that will be fulfilled by the first request, instead of placing this duplicate request in the queue as well. This also makes sure if we get a duplicate request, but the duplicate request has a higher priority than the request already in the queue, we will update the priority of the request in the queue. Reviewed By: chadaustin Differential Revision: D26355499 fbshipit-source-id: 8d3192cf0f5628c650715f4597c92fc8c9238650 |
||
---|---|---|
.. | ||
git | ||
hg | ||
test | ||
BackingStore.h | ||
BackingStoreLogger.cpp | ||
BackingStoreLogger.h | ||
BlobAccess.cpp | ||
BlobAccess.h | ||
BlobCache.cpp | ||
BlobCache.h | ||
BlobMetadata.h | ||
CMakeLists.txt | ||
Diff.cpp | ||
Diff.h | ||
DiffCallback.h | ||
DiffContext.cpp | ||
DiffContext.h | ||
eden_store_util.cpp | ||
EmptyBackingStore.cpp | ||
EmptyBackingStore.h | ||
ImportPriority.h | ||
IObjectStore.h | ||
KeySpace.cpp | ||
KeySpace.h | ||
LocalStore.cpp | ||
LocalStore.h | ||
MemoryLocalStore.cpp | ||
MemoryLocalStore.h | ||
ObjectFetchContext.cpp | ||
ObjectFetchContext.h | ||
ObjectStore.cpp | ||
ObjectStore.h | ||
PathLoader.cpp | ||
PathLoader.h | ||
RocksDbLocalStore.cpp | ||
RocksDbLocalStore.h | ||
ScmStatusDiffCallback.cpp | ||
ScmStatusDiffCallback.h | ||
SerializedBlobMetadata.cpp | ||
SerializedBlobMetadata.h | ||
SqliteLocalStore.cpp | ||
SqliteLocalStore.h | ||
StatsFetchContext.cpp | ||
StatsFetchContext.h | ||
StoreResult.cpp | ||
StoreResult.h | ||
TreeMetadata.cpp | ||
TreeMetadata.h |