[PATCH 5 of 6 V2] obscache: instantiate the cache and keep it warm

Jun Wu quark at fb.com
Wed May 24 13:48:48 EDT 2017


Excerpts from Augie Fackler's message of 2017-05-24 13:41:53 -0400:
> I'm extremely sympathetic to wanting to avoid new deps on revlog, but in
> this case we're talking about a 500ms win on 'hg id' in the Mercurial
> repository, which is significant savings.

I have already demonstrated the index works. They are tagged as "RFC" but
actually quite complete and I can polish them up in 2 days. And my latest
analysis indicates it could be made to be just 20ms difference from
obscache.

I'd note that obscache is also incomplete in this series - the way it
handles strip (could be triggered by histedit/rebase --abort) is bad for
huge repos (the next command takes 7 seconds).

When talking about performance. Please take that 7 seconds after strip (or
histedit --abort) into consideration and not only just read operations.

> Realistically, any non-revlog storage engine is going to have to work out
> similar cache invalidation hooks anyway, isn't it?

True. But the index stuff does not depend on changelog. Its single source of
truth is obsstore. So it's easier.


More information about the Mercurial-devel mailing list