Re: New revlog format, plan page

2021-01-05 Thread Joerg Sonnenberger
On Tue, Jan 05, 2021 at 04:38:20PM +0100, Raphaël Gomès wrote:
> I've opened a very much draft plan page [1] to try to list all the things we
> want to do in that version and try to figure out an efficient new format.

"No support for hash version"

I don't think that points really matters. The plan for the hash
migration allows them in theory to coexist fully on the revlog layer and
the main problems for mixing them are on the changeset/manifest layer
anyway. That is, any migration strategy will IMO rewrite all revlogs to
the newer hash anyway and only keep a secondary index for changesets and
maybe manifests.

"No support for sidedata"

My big design level concern is that revlog ATM is optimized for fast
integer indexing and append-only storage. At least for some sidedata
use cases I have, that is an ill fit.

"No support for unified revlog"

IMO this should be the driving feature. The biggest issue for me is that
it creates two challenges that didn't exist so far:
(1) Inter-file patches and how they interact with the wire protocol
(2) Identical revisions stored in different places.

"No support for larger files"

Supporting large revlog files is sensible and having a store for
design-challenged file systems might be necessary. Microsoft, I'm
looking at you. Otherwise the concern is space use in the revlog file
and RAM use during operations. I don't think the latter is as big an
issue now as it was 15 years ago, but the former is real. But it might
be a good point in time to just go for 64bit offsets by default...

Joerg
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


New revlog format, plan page

2021-01-05 Thread Raphaël Gomès

Hi all,

During the last (virtual) sprint, a lot of us spoke about the need for a 
format change of the revlog to overcome some of its limitations.


I've opened a very much draft plan page [1] to try to list all the 
things we want to do in that version and try to figure out an efficient 
new format.


I'm aware that the v2 is already planned, but I figured that we can just 
merge that (seemingly) paused effort and this new one.


I wish you all a nice 2021!
Raphaël

[1] https://www.mercurial-scm.org/wiki/RevlogV2Plan

___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel