sapling/eden/fs/store
Adam Simpkins 0285670135 fetch missing tree data from a remote hg server when needed
Summary:
This is a first pass at updating eden to fetch tree manifest data from a remote
mercurial server on demand.  The code now catches MissingKeyErrors thrown by
the datastore code, and then fetches the requested tree data from the remote
server.

This makes it safe to use tree manifest for import, as we can now fetch missing
tree data as needed, instead of always returning I/O errors whenever we reach a
tree not available locally.

Unfortunately, the performance of downloading tree data is currently not very
good: it takes 90+ seconds plus to download any tree data.  The current
mercurial server code appears to always provide full recursive tree data
(unless you ask for the delta between two manifests, which we do not have).
Even when asking for very small subdirectories, the server appears to send the
full tree manifest data for the entire repository, sometimes taking longer than
if we had asked for the full repository data to start with.

Note that tree manifest import is still disabled by default with this diff, and
must be explicitly enabled by running edenfs with `--use_hg_tree_manifest`.

Reviewed By: wez

Differential Revision: D5544817

fbshipit-source-id: 940e0c914f055edc1beee438b0ac50c2f8b08b03
2017-08-04 18:46:54 -07:00
..
git comment out unused parameters 2017-07-21 15:01:05 -07:00
hg fetch missing tree data from a remote hg server when needed 2017-08-04 18:46:54 -07:00
test Merge StringBase.cpp into String.cpp 2017-06-29 20:20:11 -07:00
BackingStore.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
BlobMetadata.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EmptyBackingStore.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EmptyBackingStore.h apply clang-tidy modernize-use-override 2017-05-23 16:10:26 -07:00
IObjectStore.h drop Future from the name of ObjectStore APIs 2017-06-21 17:20:50 -07:00
LocalStore.cpp fix a crash on tree import error 2017-07-05 11:21:30 -07:00
LocalStore.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
ObjectStore.cpp update logging statements to use folly logging APIs 2017-06-22 13:50:13 -07:00
ObjectStore.h drop Future from the name of ObjectStore APIs 2017-06-21 17:20:50 -07:00
StoreResult.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
StoreResult.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
TARGETS allow specifying --config options to hg_import_helper.py 2017-08-02 17:07:19 -07:00