sapling/eden/fs/inodes
Chad Austin 0338fc77d2 make most of recursivelyRemoveOverlayData async
Summary:
Now that Eden writes tree data into the overlay even when not
materialized, checkouts can be slow as Eden actively tries to forget
allocated inode data for potentially large trees when
kPreciseInodeMemory is false.  This pushes the bulk of that garbage
collection work onto a background thread, making checkouts fast again.

Reviewed By: simpkins

Differential Revision: D7683120

fbshipit-source-id: 2a22e4612a4438b3ed2527670343c49dfcd902bc
2018-04-24 18:53:19 -07:00
..
test make most of recursivelyRemoveOverlayData async 2018-04-24 18:53:19 -07:00
CheckoutAction.cpp simplify isSameAs checking of mode bits 2018-02-20 11:36:11 -08:00
CheckoutAction.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
CheckoutContext.cpp send FUSE invalidation requests in a separate thread 2018-03-27 11:23:42 -07:00
CheckoutContext.h send FUSE invalidation requests in a separate thread 2018-03-27 11:23:42 -07:00
DeferredDiffEntry.cpp simplify isSameAs checking of mode bits 2018-02-20 11:36:11 -08:00
DeferredDiffEntry.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
DiffContext.cpp check for std::generic_category when looking for errno errors 2018-03-20 13:38:45 -07:00
DiffContext.h update diff code to use previously retrieved UserInfo 2018-02-08 19:36:03 -08:00
Differ.cpp update getScmStatus() to require the commit hash as an argument 2018-04-06 12:51:31 -07:00
Differ.h update getScmStatus() to require the commit hash as an argument 2018-04-06 12:51:31 -07:00
EdenDispatcher.cpp check for std::generic_category when looking for errno errors 2018-03-20 13:38:45 -07:00
EdenDispatcher.h remove the fusell namespace 2018-03-19 17:01:52 -07:00
EdenFileHandle.cpp remove the fusell namespace 2018-03-19 17:01:52 -07:00
EdenFileHandle.h restructure FileInode open refcount management 2018-03-27 11:23:42 -07:00
EdenMount.cpp ensure that the ServerState object outlives all EdenMounts 2018-04-23 13:53:48 -07:00
EdenMount.h ensure that the ServerState object outlives all EdenMounts 2018-04-23 13:53:48 -07:00
FileInode.cpp helper function for updating the time fields in struct stat 2018-04-24 13:44:10 -07:00
FileInode.h update Overlay APIs to take inode numbers instead of paths 2018-03-28 13:13:51 -07:00
InodeBase.cpp Always remember the inode numbers of children when unloading a tree 2018-04-06 11:05:53 -07:00
InodeBase.h rename InodeBase::getRefcount() to debugGetFuseRefcount() 2018-04-09 14:08:13 -07:00
InodeDiffCallback.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeError.cpp throw all errno exceptions as std::generic_category 2018-03-20 13:38:45 -07:00
InodeError.h throw all errno exceptions as std::generic_category 2018-03-20 13:38:45 -07:00
InodeMap.cpp immediately save inode numbers when allocating a TreeInode 2018-04-20 18:52:17 -07:00
InodeMap.h avoid unnecessarily saving overlay state on unmount 2018-04-10 12:56:20 -07:00
InodePtr-defs.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtr.cpp fix opt build 2018-03-12 22:22:59 -07:00
InodePtr.h add explicit conversion from std::unique_ptr to InodePtr 2018-03-09 13:37:08 -08:00
InodePtrFwd.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeTimestamps.cpp helper function for updating the time fields in struct stat 2018-04-24 13:44:10 -07:00
InodeTimestamps.h helper function for updating the time fields in struct stat 2018-04-24 13:44:10 -07:00
Overlay.cpp make most of recursivelyRemoveOverlayData async 2018-04-24 18:53:19 -07:00
Overlay.h make most of recursivelyRemoveOverlayData async 2018-04-24 18:53:19 -07:00
overlay.thrift decouple whether an entry has an inode number from materialization status 2018-03-23 18:21:21 -07:00
ParentInodeInfo.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
ServerState.cpp move the clock to ServerState 2018-03-16 12:35:19 -07:00
ServerState.h remove alternate EDEN_HAS_COMMON_STATS code paths 2018-04-10 12:19:17 -07:00
TreeInode.cpp helper function for updating the time fields in struct stat 2018-04-24 13:44:10 -07:00
TreeInode.h immediately save inode numbers when allocating a TreeInode 2018-04-20 18:52:17 -07:00
TreeInodeDirHandle.cpp remove the fusell namespace 2018-03-19 17:01:52 -07:00
TreeInodeDirHandle.h remove the fusell namespace 2018-03-19 17:01:52 -07:00