sapling/eden/fs/inodes
Xavier Deguillard 3185c2f83e inodes: cache size for non-materialized inodes
Summary:
Running `rg foobar` in a loop and profiling EdenFS shows that we're spending a
significant amount of time collecting the size of non-materialized files. Since
this will never change, we can easily cache it for much faster access.

Reviewed By: chadaustin

Differential Revision: D27924804

fbshipit-source-id: 8b8af63dcb82664db2ecd81b3fcdc006a3a52d72
2021-04-28 17:06:23 -07:00
..
overlay overlay: only log first 50 fsck errors 2021-04-22 13:12:50 -07:00
sqliteoverlay sqlite: release StatementCache before releasing SqliteDatabase 2021-03-16 23:30:22 -07:00
test Templatize ObjectCache 2021-04-27 17:38:39 -07:00
treeoverlay Remove thrift setters 2021-04-27 15:16:06 -07:00
CacheHint.h Tidy up license headers 2019-10-11 05:28:23 -07:00
CheckoutAction.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
CheckoutAction.h Avoid overfetching in checkout 2020-11-03 10:58:22 -08:00
CheckoutContext.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
CheckoutContext.h logging for thrift object fetch: checkout 2020-07-26 23:09:40 -07:00
CMakeLists.txt nfs: implement SETATTR RPC 2021-03-11 08:31:07 -08:00
DeferredDiffEntry.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
DeferredDiffEntry.h add an ObjectFetchContext interface 2020-02-05 13:15:01 -08:00
DirEntry.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
DirEntry.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
EdenDispatcherFactory.cpp fs: add an NfsDispatcher 2021-02-17 23:32:38 -08:00
EdenDispatcherFactory.h fs: add an NfsDispatcher 2021-02-17 23:32:38 -08:00
EdenMount.cpp inodes: make tree-overlay a checkout configuration 2021-04-19 19:49:33 -07:00
EdenMount.h inodes: make lastCheckoutTime an atomic 2021-04-19 14:38:14 -07:00
EdenMountError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
FileInode.cpp inodes: cache size for non-materialized inodes 2021-04-28 17:06:23 -07:00
FileInode.h inodes: cache size for non-materialized inodes 2021-04-28 17:06:23 -07:00
FuseDispatcherImpl.cpp fuse: rename DirList into FuseDirList 2021-03-18 10:08:49 -07:00
FuseDispatcherImpl.h fuse: rename DirList into FuseDirList 2021-03-18 10:08:49 -07:00
GlobNode.cpp Rename Try::throwIfFailed -> throwUnlessValue 2021-01-11 13:05:17 -08:00
GlobNode.h Allow specifying commits to match against and prefetch in globFiles 2020-10-29 13:34:06 -07:00
InodeBase.cpp inodes: make lastCheckoutTime an EdenTimestamp 2021-04-19 14:38:14 -07:00
InodeBase.h inodes: make lastCheckoutTime an EdenTimestamp 2021-04-19 14:38:14 -07:00
InodeError.cpp allow querying Overlay file size outside of FileInode 2020-10-23 11:16:10 -07:00
InodeError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeLoader.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
InodeMap.cpp inodes: make the fs refcount a flag on Windows 2020-12-04 09:13:37 -08:00
InodeMap.h inodes: rename the fuseRefcount in InodeMap 2020-11-16 09:03:18 -08:00
InodeMetadata.cpp inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeMetadata.h inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeNumber.cpp inodes: move fuse/InodeNumber.{cpp,h} into inodes/ 2020-09-02 12:15:48 -07:00
InodeNumber.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtr-defs.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtr.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
InodePtr.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtrFwd.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeTable.h Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
InodeTimestamps.cpp inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeTimestamps.h inodes: make lastCheckoutTime an EdenTimestamp 2021-04-19 14:38:14 -07:00
IOverlay.h add new operation-aware APIs to IOverlay 2021-03-02 09:58:16 -08:00
NfsDispatcherImpl.cpp nfs: implement the MKNOD procedure 2021-04-13 15:17:35 -07:00
NfsDispatcherImpl.h nfs: implement the MKNOD procedure 2021-04-13 15:17:35 -07:00
Overlay.cpp utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
Overlay.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
OverlayFile.cpp implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFile.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFileAccess.cpp implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFileAccess.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
ParentInodeInfo.h Tidy up license headers 2019-10-11 05:28:23 -07:00
PrjfsDispatcherImpl.cpp inodes: thread an ObjectContext into unlink/rmdir 2021-03-04 17:51:50 -08:00
PrjfsDispatcherImpl.h inodes: move dispatchers around 2021-02-10 11:52:06 -08:00
RequestContext.cpp telemetry: switch to using quantile stats instead of histograms 2021-02-14 16:37:08 -08:00
RequestContext.h telemetry: switch to using quantile stats instead of histograms 2021-02-14 16:37:08 -08:00
ServerState.cpp nfs: add NfsServer class 2021-02-09 12:47:11 -08:00
ServerState.h nfs: add NfsServer class 2021-02-09 12:47:11 -08:00
Traverse.cpp inodes: make loadOverlayDir to return empty dir when missing 2021-03-02 09:58:18 -08:00
Traverse.h inodes: rename FUSE refcount to fs refcount 2020-11-04 17:34:01 -08:00
TreeInode.cpp utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
TreeInode.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07: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 fix one case of logging of null ClientPid 2020-08-31 10:05:02 -07:00