Repo with many obsolescence markers is getting really slow
Dominik Ruf
dominikruf at gmail.com
Wed Mar 29 20:28:55 UTC 2017
Pierre-Yves David <pierre-yves.david at ens-lyon.org> schrieb am Mi., 29. März
2017 um 13:10 Uhr:
>
>
> On 03/29/2017 01:08 PM, Pierre-Yves David wrote:
> >
> >
> > On 03/28/2017 10:57 PM, Dominik Ruf wrote:
> >> Hi,
> >>
> >> I was using changeset evolution quite heavily. (more then 20000
> >> obsolescence markers, a lot of amend and rebasing)
> >> And I noticed that pulling and pushing is getting really slow.
> >> Is this a know issue? Could I expect that this is getting improved in
> >> the future?
> >
> > Yes, the current protocol to discover marker is very basic, have many
> > known short coming and lack caching. We have various idea for a better
> > protocol and caching, a first prototype for it should ship in the the
> > future version 6.0.0 of evolve (to be released soon). So we should
> > eventually have a proper version of the protocol done for good.
> >
> > In addition there is some additional caching around obsolescence markers
> > that should happen in the near future to speed up local operation.
> >
> > Cheers,
>
> In addition, can you tell me a bit more about your repo:
>
> * number of changesets total
>
I already did a
hg strip --hidden --rev 'obsolete()'
I don't know how many revisions there were before but now there are 9822
> * number of visible changesets
>
7064
> * number of public changesets.
>
6798
> * number of markers
>
24457
> * output of `hg debugobsstorestat`
>
markers total: 24457
for known precursors: 3441
with parents data: 0
markers with no successors: 2424
1 successors: 22032
2 successors: 0
more than 2 successors: 1
available keys:
user: 24457
disconnected clusters: 2389
any known node: 1121
smallest length: 1
longer length: 201
median length: 1
mean length: 10
using parents data: 2389
any known node: 1121
smallest length: 1
longer length: 201
median length: 1
mean length: 10
> * set `experimental.verbose-obsolescence-exchange=1` in your config
> * output of a push and pull with --debug
>
pulling from https://...
using https://...
sending capabilities command
using auth.drc.* for authentication
query 1; heads
sending batch command
using auth.drc.* for authentication
searching for changes
all remote heads known locally
no changes found
OBSEXC: looking for common markers in 6932 nodes
sampling from both directions
query 1; still undecided: 6932, sample size is: 200
sending evoext_obshash1 command
using auth.drc.* for authentication
sampling from both directions
query 2; still undecided: 32, sample size is: 32
sending evoext_obshash1 command
using auth.drc.* for authentication
2 total queries
OBSEXC: request obsmarkers for some common nodes
sending getbundle command
using auth.drc.* for authentication
bundle2-input-bundle: with-transaction
bundle2-input-part: "listkeys" (params: 1 mandatory) supported
bundle2-input-part: total payload size 343
bundle2-input-part: "listkeys" (params: 1 mandatory) supported
bundle2-input-part: total payload size 1165
bundle2-input-bundle: 1 parts total
checking for updated bookmarks
pushing to https://...
using https://...
sending capabilities command
using auth.drc.* for authentication
query 1; heads
sending batch command
using auth.drc.* for authentication
searching for changes
all remote heads known locally
preparing listkeys for "phases"
sending listkeys command
using auth.drc.* for authentication
received listkey for "phases": 343 bytes
preparing listkeys for "namespaces"
sending listkeys command
using auth.drc.* for authentication
received listkey for "namespaces": 40 bytes
OBSEXC: computing relevant nodes
OBSEXC: looking for common markers in 6932 nodes
sampling from both directions
query 1; still undecided: 6932, sample size is: 200
sending evoext_obshash1 command
using auth.drc.* for authentication
sampling from both directions
query 2; still undecided: 26, sample size is: 26
sending evoext_obshash1 command
using auth.drc.* for authentication
2 total queries
OBSEXC: markers already in sync
checking for updated bookmarks
preparing listkeys for "bookmarks"
sending listkeys command
using auth.drc.* for authentication
received listkey for "bookmarks": 1165 bytes
no changes found (ignored 132 secret changesets)
preparing listkeys for "phases"
sending listkeys command
using auth.drc.* for authentication
received listkey for "phases": 343 bytes
> --
> Pierre-Yves David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-evolve-testers/attachments/20170329/9569cdc2/attachment-0002.html>
More information about the Evolve-testers
mailing list