sapling/eden/fs/inodes/overlay
Adam Simpkins 84de49b69b initial C++ fsck implementation
Summary:
This ports much of the Python logic in `eden/cli/fsck.py` to C++, so that
the edenfs daemon can invoke it directly during mount initialization when
necessary.

This initial diff just contains the code to scan for errors, without any
repair logic.

This also includes some improvements to the logic for efficiency.  For
instance, we compute less state during the initial scan phase.  This makes the
scan phase faster, at the expense of making some of the repair steps slightly
more expensive if errors are found.  This newer C++ scan logic is
significantly faster than the old Python version: scanning 260,000 inode files
took around 1m20 second for the Python code, and runs in under 3 seconds with
the new C++ code.  (On an SSD with the files in question already warm in the
kernel cache.)

Reviewed By: strager

Differential Revision: D16577699

fbshipit-source-id: 2f8713a219ad882848cee0c57dca34f2c7808340
2019-08-12 19:53:44 -07:00
..
test initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
CMakeLists.txt initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
eden_fsck.cpp initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
FsOverlay.cpp initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
FsOverlay.h initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
overlay.thrift update license headers in thrift files 2019-06-19 17:02:46 -07:00
OverlayChecker.cpp initial C++ fsck implementation 2019-08-12 19:53:44 -07:00
OverlayChecker.h initial C++ fsck implementation 2019-08-12 19:53:44 -07:00