mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
72fbf818e7
Summary: This introduces prefetching in the hg sync job, which allows us to separate two logically separate steps, and buffer between them: - Fetching bundle data from Manifold so it can be replayed in Mercurial (we call this "preparing"). This can happen out of order. - Submitting the changes to Mercurial. This must happen sequentially. The upshot is that we can fetch new data from Manifold while we wait for Mercurial to apply it, which should increase our throughput. --- This required a bit of refactoring for the main loop here. The reason for that is that, currently, we heavily rely on closures to capture the `log_entry` so we can pass it to Scuba, etc. That doesn't work if we want to have buffering, because there isn't a single scope that represents Instead, every step of the stream has its own scope, so we need to pass the `log_entry` through the stream itself. We also need to track the log entry in errors as well (e.g. to report them to Scuba). Reviewed By: ikostia Differential Revision: D15146682 fbshipit-source-id: f83284571f6ca90cb621c621c5165f7fbafd81b5 |
||
---|---|---|
.. | ||
third_party | ||
integration_runner.py | ||
library.sh | ||
pushrebase_replay.bundle | ||
test-admin-hg-sync-bundle-last-processed.t | ||
test-admin-hg-sync-bundle-remains.t | ||
test-admin-hg-sync-bundle-verify.t | ||
test-alias-verify.t | ||
test-allowed-users.t | ||
test-apiserver-edenapi.t | ||
test-apiserver.t | ||
test-blobimport-inline.t | ||
test-blobimport-return-error.t | ||
test-blobimport.t | ||
test-bonsai-verify.t | ||
test-bookmark-race.t | ||
test-bundle2-preservation.t | ||
test-cache-warmup.t | ||
test-clienttelemetry.t | ||
test-commitcloud.t | ||
test-copyrename.t | ||
test-getpackv1.t | ||
test-gettreepack.t | ||
test-hash-validation.t | ||
test-hooks.t | ||
test-inconsistent-hash.t | ||
test-infinitepush.t | ||
test-init.t | ||
test-large-path-and-content.t | ||
test-lfs-to-mononoke.t | ||
test-lfs-upload-alias-on-fetch.t | ||
test-lfs.t | ||
test-linknodes.t | ||
test-listkeyspatterns.t | ||
test-lookup.t | ||
test-mononoke-hg-sync-job.t | ||
test-push-bookmarks.t | ||
test-push-newblobimport.t | ||
test-push-protocol.t | ||
test-push-readonly.t | ||
test-pushrebase-block-merges.t | ||
test-pushrebase-copy-src-changed.t | ||
test-pushrebase-discovery.t | ||
test-pushrebase-emit-obsmarkers.t | ||
test-pushrebase-empty.t | ||
test-pushrebase-file-list.t | ||
test-pushrebase-mutation.t | ||
test-pushrebase.t | ||
test-rename-in-merge.t | ||
test-server.t | ||
test-sqlblob.t |