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

Re: [PATCH 0/5] Suggested for PU: revision caching system to significantly speed up packing/walking

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 8, 2009, 16:07 UTC
Message-ID
<7vk51el25g.fsf@alter.siamese.dyndns.org>
In-Reply-To
<alpine.DEB.1.00.0908081709380.8306@pacific.mpi-cbg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 5 quoted lines
>> It is like having a "git diff" result cache: no one would think of 
>> stuffing that in the pack index.
>
> Do you want to try to kid me?  You'll have to try harder.  Caching "git 
> diff" results... no, really!

I thought Nico meant caching the rename similarity matrix when he said "git diff" cache. In a narrow context of "log --follow" it may make sense. It also might help "blame" without -C.

But I do not see how we would gain anything if we had that cache tied to the pack index.

> After all, the parents, referenced tree and blob objects to change as 
> often as the objects in the pack: never.

But I notice that the aspects of objects you listed: the parents, referenced tree and blob objects. The frequency of them changing does not depend on where the actual object is, either packed or loose. These aspects of an object (more specifically, you are talking about a commit object) never change either way. So I am somewhat puzzled.

It does change if a particular commit and its associated objects are relevant to the traversal as refs change (especially when they rewind). Just like an old "kept" pack can suddenly have tons of irrelevant objects after refs are pruned (e.g. a branch is dropped), cached reachability data, even though they may stay correct, would become irrelevant when nobody starts traversing from an object that is no longer reachable.

Previous: Johannes SchindelinNext: Sam Vilain
Message 20 of 34 in “Suggested for PU: revision caching system to significantly speed up packing/walking”
  1. 0/5 Suggested for PU: revision caching system to significantly speed up packing/walkingNick Edelen, Aug 6, 2009
  2. Johannes SchindelinAug 6, 2009
  3. Michael J GruberAug 6, 2009
  4. Nick EdelenAug 6, 2009
  5. Johannes SchindelinAug 6, 2009
  6. Nick EdelenAug 6, 2009
  7. Nick EdelenAug 6, 2009
  8. Shawn O. PearceAug 6, 2009
  9. A Large Angry SCMAug 6, 2009
  10. Shawn O. PearceAug 6, 2009
  11. A Large Angry SCMAug 6, 2009
  12. Nick EdelenAug 7, 2009
  13. Johannes SchindelinAug 7, 2009
  14. Nicolas PitreAug 7, 2009
  15. Sam VilainAug 7, 2009
  16. Nicolas PitreAug 7, 2009
  17. Johannes SchindelinAug 7, 2009
  18. Nicolas PitreAug 7, 2009
  19. Johannes SchindelinAug 8, 2009
  20. Junio C HamanoAug 8, 2009
  21. Sam VilainAug 8, 2009
  22. Nicolas PitreAug 9, 2009
  23. Nick EdelenAug 9, 2009
  24. Johannes SchindelinAug 7, 2009
  25. Nicolas PitreAug 7, 2009
  26. Nick EdelenAug 7, 2009
  27. Junio C HamanoAug 7, 2009
  28. Nick EdelenAug 7, 2009
  29. Junio C HamanoAug 8, 2009
  30. Nick EdelenAug 8, 2009
  31. Jeff KingAug 8, 2009
  32. Nick EdelenAug 8, 2009
  33. Jeff KingAug 8, 2009
  34. Junio C HamanoAug 8, 2009

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.