sapling/eden/fs/inodes
Adam Simpkins 983f454135 limit the number of tree prefetch operations that can run in parallel
Summary:
Add a config option to restrict the number of tree prefetches that can run in
parallel.  Without this applications that recursively walk a checkout tree can
end up spawning a huge number of asynchronous prefetch operations.  These
prefetch operations are quite expensive today, as we currently have to fetch
the full file contents in order to retrieve the file sizes.  A recursive
directory walk can end up building up a huge backlog of in-progress tree
prefetches.  This will slow down the directory walk, and it can take tens of
minutes to finish processing the prefetch backlog even after the directory
walk is aborted.

Reviewed By: chadaustin

Differential Revision: D19136685

fbshipit-source-id: cdc7a570d016fd7ca81a639cef83380b197acdfc
2019-12-20 16:14:19 -08:00
..
overlay add EdenErrorType to EdenError 2019-10-29 09:23:03 -07:00
test remove the dead getChildByName function 2019-12-20 16:14:18 -08:00
CacheHint.h Tidy up license headers 2019-10-11 05:28:23 -07:00
CheckoutAction.cpp Remove dead includes in eden 2019-10-11 16:45:01 -07:00
CheckoutAction.h Tidy up license headers 2019-10-11 05:28:23 -07:00
CheckoutContext.cpp setParentCommits after checkout while holding parentsLock_ 2019-12-10 18:13:26 -08:00
CheckoutContext.h record the durations of the various phases of checkout 2019-11-21 17:16:10 -08:00
CMakeLists.txt rename tracing to telemetry 2019-10-15 13:39:41 -07:00
DeferredDiffEntry.cpp refactor the EDEN_BUG() macro 2019-11-22 15:38:33 -08:00
DeferredDiffEntry.h Tidy up license headers 2019-10-11 05:28:23 -07:00
DirEntry.cpp Tidy up license headers 2019-10-11 05:28:23 -07:00
DirEntry.h Tidy up license headers 2019-10-11 05:28:23 -07:00
EdenDispatcher.cpp Merge TreeInode::create/mknod 2019-10-18 13:25:46 -07:00
EdenDispatcher.h Tidy up license headers 2019-10-11 05:28:23 -07:00
EdenMount.cpp limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00
EdenMount.h limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00
EdenMountError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
FileInode.cpp refactor the EDEN_BUG() macro 2019-11-22 15:38:33 -08:00
FileInode.h Tidy up license headers 2019-10-11 05:28:23 -07:00
GlobNode.cpp Remove dead includes in eden 2019-10-11 16:45:01 -07:00
GlobNode.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeBase.cpp clang-format 2019-10-24 14:56:43 -07:00
InodeBase.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeError.cpp Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeLoader.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeMap.cpp enable and fix more warnings 2019-12-20 16:14:17 -08:00
InodeMap.h enable and fix more warnings 2019-12-20 16:14:17 -08:00
InodeMetadata.cpp Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeMetadata.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodePtr-defs.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodePtr.cpp Tidy up license headers 2019-10-11 05:28:23 -07:00
InodePtr.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodePtrFwd.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeTable.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeTimestamps.cpp Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeTimestamps.h Tidy up license headers 2019-10-11 05:28:23 -07:00
Overlay.cpp support closing the Overlay class even if it is still in use 2019-11-11 10:56:15 -08:00
Overlay.h enable -Wmismatched-tags 2019-12-03 14:43:12 -08:00
OverlayFile.cpp support closing the Overlay class even if it is still in use 2019-11-11 10:56:15 -08:00
OverlayFile.h store weak overlay in OverlayFile 2019-11-06 18:24:58 -08:00
OverlayFileAccess.cpp refactor OverlayFileAccess errors 2019-11-06 18:24:58 -08:00
OverlayFileAccess.h refactor OverlayFileAccess errors 2019-11-06 18:24:58 -08:00
ParentInodeInfo.h Tidy up license headers 2019-10-11 05:28:23 -07:00
ServerState.cpp add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
ServerState.h add a StructuredLogger instance to ServerState 2019-11-13 15:23:38 -08:00
TreeInode.cpp limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00
TreeInode.h remove the dead getChildByName function 2019-12-20 16:14:18 -08:00
TreePrefetchLease.cpp limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00
TreePrefetchLease.h limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00