git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Huge win, compressing a window of delta runs as a unit

From
Jon Smirl <jonsmirl@gmail.com>
Date
Aug 21, 2006, 16:14 UTC
Message-ID
<9e4733910608210914s1157f47eta821584928ce4dd5@mail.gmail.com>
In-Reply-To
<Pine.LNX.4.64.0608211036150.3851@localhost.localdomain>

How about making the length of delta chains an exponential function of the number of revs? In Mozilla configure.in has 1,700 revs and it is a 250K file. If you store a full copy every 10 revs that is 43MB (prezip) of data that almost no one is going to look at. The chains lengths should reflect the relative probability that someone is going to ask to see the revs. That is not at all a uniform function.

Personally I am still in favor of a two pack system. One archival pack stores everything in a single chain and size, not speed, is it's most important attribute. It is marked readonly and only functions as an archive; git-repack never touches it. It might even use a more compact compression algorithm.

The second pack is for storing more recent revisions. The archival pack would be constructed such that none of the files needed for the head revisions of any branch are in it. They would all be in the second pack.

After time the second pack may grow large and another archival pack can be created. The first one would still be maintained in it's readonly form. git could be optimized to always search for objects in non-archival packs before even opening the index of an archival one.

This may be a path to partial repositories. Instead of downloading the real archival pack I could download just an index for it. The index entries would be marked to indicate that these objects are valid but not-present.

-- 
Jon Smirl
jonsmirl@gmail.com
Previous: Nicolas PitreNext: Nicolas Pitre
Message 33 of 36 in “Huge win, compressing a window of delta runs as a unit”
  1. Jon SmirlAug 16, 2006
  2. Shawn PearceAug 17, 2006
  3. Johannes SchindelinAug 17, 2006
  4. Johannes SchindelinAug 17, 2006
  5. Jon SmirlAug 17, 2006
  6. Johannes SchindelinAug 17, 2006
  7. Nicolas PitreAug 17, 2006
  8. Johannes SchindelinAug 17, 2006
  9. Jon SmirlAug 17, 2006
  10. Nicolas PitreAug 17, 2006
  11. Jon SmirlAug 17, 2006
  12. Nicolas PitreAug 17, 2006
  13. Jon SmirlAug 17, 2006
  14. Nicolas PitreAug 17, 2006
  15. Jon SmirlAug 17, 2006
  16. Nicolas PitreAug 17, 2006
  17. Nicolas PitreAug 18, 2006
  18. Jon SmirlAug 18, 2006
  19. Nicolas PitreAug 18, 2006
  20. Jon SmirlAug 18, 2006
  21. Nicolas PitreAug 21, 2006
  22. Shawn PearceAug 21, 2006
  23. Jakub NarebskiAug 21, 2006
  24. Jon SmirlAug 21, 2006
  25. Jon SmirlAug 18, 2006
  26. Johannes SchindelinAug 18, 2006
  27. Jon SmirlAug 18, 2006
  28. Linus TorvaldsAug 19, 2006
  29. Nicolas PitreAug 18, 2006
  30. Shawn PearceAug 21, 2006
  31. Jon SmirlAug 21, 2006
  32. Nicolas PitreAug 21, 2006
  33. Jon SmirlAug 21, 2006
  34. Nicolas PitreAug 21, 2006
  35. Nicolas PitreAug 21, 2006
  36. Nicolas PitreAug 21, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.