[PATCH 0 of 1 ] Wrong distance calculation in revlog causes huge manifests

Noel Grandin noel at peralex.com
Thu Jul 12 00:53:39 CDT 2012


On 2012-07-12 01:19, Matt Mackall wrote:
> Note that we intentionally do _a single read_ to pull in the entire 
> span of deltas, including data we're skipping. This is important for 
> performance on spinning media: reads are blocking and you have to wait 
> for every read to complete before issuing another one.

If that's the case, perhaps we should be using async IO, so that we can 
issue multiple reads at once, and then wait for them all to complete.

Given that all of the major OS's implement some variation of the 
elevator algorithm for disk reads, that would give us the performance we 
want without the memory overhead of reading extra data.


Disclaimer: http://www.peralex.com/disclaimer.html




More information about the Mercurial-devel mailing list