marmoute added a comment.
marmoute added a subscriber: gracinet.

  In D7894#116397 <https://phab.mercurial-scm.org/D7894#116397>, @martinvonz 
wrote:
  
  > How much does this patch help performance?
  > I would also like to see performance numbers (even just rough ones) for the 
Rust version. Sorry about a possibly stupid question, but why will this on-disk 
nodemap be faster than building it from the index? Is it that the file is 
smaller and thus faster to read? Or is it more the building of the tree than 
the reading that's slow? You mentioned you use some private repo for testing 
this. How large is the `00changelog.n` file in that repo and how large is 
`00changelog.i`?
  
  This save hundreds of milli second at initialization of large repositories. 
The repositories we are looking at are about 2 millions revisions. (but this 
will help smaller repository too). Mozilla try is a public repository in that 
range. It 00changelog.i is 103MB
  
  The information in the .i files is just a flat list of node. So anything that 
need a mapping needs to build it. Building a mapping for millions of revision 
is slow. (I think Georges mentionned 300ms to build the mozilla-try nodemap). 
The nodemap we write on disk is directly usage as such. So we just need to mmap 
the files (mostly instant is the repository have been busy recently, eg: on 
server) and directly query the data from disk. We will get more data once the 
latest version of this series and the latest version of the Rust series (from 
@gracinet) are connected again. But this greatly boost many operation (small 
operation, discovery, etc).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7894/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7894

To: marmoute, #hg-reviewers
Cc: gracinet, martinvonz, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to