Re: [PATCH] Support 64-bit indexes for pack files.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Troy Telford <ttelford.groups@xxxxxxxxx> wrote:
> As I've not been involved with git development before, I'm
> aware that this may already be on somebody's 'todo' list.  It was an itch
> I needed to scratch, as I have a repository whose size is multiple gigabytes,
> and 'git clone' (by default) forces everything into a single
> packfile with >=git-1.5.0.
> 
> The patch introduces a new packfile index version, which adds a:
>  * header to the index file (index version info).
>  * leaves the object indexes within the index at 32-bit
>  * extends the offsets used to describe the packfile to 64-bit.
> 
> The new index format is only used when the associated  packfile 
> becomes large enough to warrant a 64-bit index; otherwise the original
> index format is used.

Clearly a good deal of work has been put into this patch.  I cannot
say that reviewed every bit of it... because...

Nico and I are neck deep in our pack version 4 topic.  That topic
hits all of the same code you touched with your patch.

Our topic also requires us to change the index file format, and
in doing so we have decided to extend the index records to look
something like the following[*1*]:

	object SHA-1
	64-bit offset within packfile
	32-bit index of next object in packfile

The latter field is to help pack-objects reuse existing packfile
data, as today it needs to sort everything on its own on the fly.
Having that last field of data will help avoid that, and will keep
the index nicely aligned for 64-bit accesses to the offset.

I want to say your patch shouldn't be merged without even bothering
to review it.  The last time I was in this part of the git code
(implementing sliding mmap window) Nico and Junio also both went in
here and rewrote huge chunks.  Their changes prevented sliding mmap
window from applying.  It was 6 months before I got back around to
rewriting the patch.

Right now I'm neck deep in pack v4.  I hope to have the topic in
pu-ready state by some time mid-next week, hopefully in time for
Junio's git day.  I'm very unlikely to have the time to rewrite the
topic again until late June/July if something like your patch goes
in now.

So would you mind waiting a couple of weeks for 64 bit indexes?


*1*: This was Nico's idea; I'm in agreement with him about it.
     The actual disk layout here has not been set in stone as we
     want to kick around different layouts before we settle on
     something final.  I'm a little unhappy with the way the above
     lays out in memory when we mmap it, for example.

-- 
Shawn.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]