This is an archive of the discontinued Mercurial Phabricator instance.

remotefilelog: efficient keepset computation
ClosedPublic

Authored by ms2316 on Aug 18 2017, 6:53 AM.
Tags
None
Subscribers
None

Details

Summary

New keepset computation algorithm yields 50% time improvement on a small set of
commits and about 90% time improvement on a large set of commits. Currently it
takes about 1m10s to compute a keepset of 10 commits with treemanifest
usecunionstore flag unset and 3 seconds with cunionstore config set, provided
all trees are prefetched.

Test Plan
  • Ensure that unit tests pass, in particular *-gc.t and *-gcrepack.t

Diff Detail

Repository
rFBHGX Facebook Mercurial Extensions
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

ms2316 created this revision.Aug 18 2017, 6:53 AM
Herald added a reviewer: Restricted Project. · View Herald TranscriptAug 18 2017, 6:53 AM
ms2316 added inline comments.Aug 18 2017, 7:03 AM
remotefilelog/repack.py
296

We can make keyfn not optional, but instead make user always specify the function.

ryanmce accepted this revision.Aug 21 2017, 11:45 AM
ryanmce added inline comments.
remotefilelog/repack.py
296

I'd somewhat prefer that myself.

This revision is now accepted and ready to land.Aug 21 2017, 11:45 AM
ms2316 updated this revision to Diff 1126.Aug 21 2017, 12:06 PM

Made keyfn function compulsory

This revision was automatically updated to reflect the committed changes.