Re: [PATCH 07/11] pack-objects: move in_pack out of struct object_entry
On Thu, Mar 1, 2018 at 9:49 PM, Jeff Kingwrote: > On Thu, Mar 01, 2018 at 04:10:48PM +0700, Nguyễn Thái Ngọc Duy wrote: > >> Instead of using 8 bytes (on 64 bit arch) to store a pointer to a >> pack. Use an index isntead since the number of packs should be >> relatively small. >> >> This limits the number of packs we can handle to 256 (still >> unreasonably high for a repo to work well). If you have more than 256 >> packs, you'll need an older version of Git to repack first. > > I overall like the direction of this series, but I think this one is > just too much. While you definitely shouldn't have a ton of packs, this > leaves the user with no real escape hatch. And 256 isn't actually that > many packs. It was raised back to 4096 at the end (I didn't know how many spare bits we had at this point). Agreed on the escape hatch though. I think we could do better: if there are more than X packs, we repack X packs into one and leave the rest alone. The _next_ pack-objects will pick another X packs to combine. Repeat until you only have one pack left. -- Duy
Re: [PATCH 07/11] pack-objects: move in_pack out of struct object_entry
Nguyễn Thái Ngọc Duywrites: > Instead of using 8 bytes (on 64 bit arch) to store a pointer to a > pack. Use an index isntead since the number of packs should be > relatively small. > > This limits the number of packs we can handle to 256 (still > unreasonably high for a repo to work well). If you have more than 256 > packs, you'll need an older version of Git to repack first. I can tell without looking at the rest of the thread that people had reasonable objection against this stance ;-) This will not fly well.
Re: [PATCH 07/11] pack-objects: move in_pack out of struct object_entry
On Thu, Mar 01, 2018 at 04:10:48PM +0700, Nguyễn Thái Ngọc Duy wrote: > Instead of using 8 bytes (on 64 bit arch) to store a pointer to a > pack. Use an index isntead since the number of packs should be > relatively small. > > This limits the number of packs we can handle to 256 (still > unreasonably high for a repo to work well). If you have more than 256 > packs, you'll need an older version of Git to repack first. I overall like the direction of this series, but I think this one is just too much. While you definitely shouldn't have a ton of packs, this leaves the user with no real escape hatch. And 256 isn't actually that many packs. -Peff
Re: [PATCH 07/11] pack-objects: move in_pack out of struct object_entry
On Thu, Mar 01 2018, Nguyễn Thái Ngọc Duy jotted: > pack. Use an index isntead since the number of packs should be s/isntead/instead/ > This limits the number of packs we can handle to 256 (still > unreasonably high for a repo to work well). If you have more than 256 > packs, you'll need an older version of Git to repack first. So if you have gc.autoPackLimit=300 this will break, how does it break? Should we also make (& document) setting that variable higher than 256 an error?