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

Re: worktrees vs. alternates

From
MFMartin Fick <mfick@codeaurora.org>
Date
May 16, 2018, 19:18 UTC
Message-ID
<5484271.13heo1O2yY@mfick-lnx>
In-Reply-To
<4a18e167-8cec-0141-fe2c-4e0a35f16daf@linuxfoundation.org>

On Wednesday, May 16, 2018 03:11:47 PM Konstantin Ryabitsev wrote:

Show 31 quoted lines
> On 05/16/18 15:03, Martin Fick wrote:
> >> I'm undecided about that. On the one hand this does
> >> create lots of small files and inevitably causes
> >> (some) performance degradation. On the other hand, I
> >> don't want to keep useless objects in the pack,
> >> because that would also cause performance degradation
> >> for people cloning the "mother repo." If my
> >> assumptions on any of that are incorrect, I'm happy to
> >> learn more.
> > 
> > My suggestion is to use science, not logic or hearsay.
> > :)
> > i.e. test it!
> 
> I think the answer will be "it depends." In many of our
> cases the repos that need those loose objects are rarely
> accessed -- usually because they are forks with older
> data (hence why they need objects that are no longer used
> by the mother repo). Therefore, performance impacts of
> occasionally touching a handful of loose objects will be
> fairly negligible. This is especially true on
> non-spinning media where seek times are low anyway.
> Having slimmer packs for the mother repo would be more
> beneficial in this case.
> 
> On the other hand, if the "child repo" is frequently used,
> then the impact of needing a bunch of loose objects would
> be greater. For the sake of simplicity, I think I'll
> leave things as they are -- it's cheaper to fix this via
> reducing seek times than by applying complicated logic
> trying to optimize on a per-repo basis.

I think a major performance issue with loose objects is not just the seek time, but also the fact that they are not delta compressed. This means that sending them over the wire will likely have a significant cost before sending it. Unlike the seek time, this cost is not mitigated across concurrent fetches by the FS (or jgit if you were to use it) caching,

-Martin
-- 
The Qualcomm Innovation Center, Inc. is a member of Code 
Aurora Forum, hosted by The Linux Foundation
Previous: Konstantin RyabitsevNext: Jeff King
Message 20 of 34 in “worktrees vs. alternates”
  1. Lars SchneiderMay 16, 2018
  2. Ævar Arnfjörð BjarmasonMay 16, 2018
  3. Robert P. J. DayMay 16, 2018
  4. Ævar Arnfjörð BjarmasonMay 16, 2018
  5. Lars SchneiderMay 16, 2018
  6. Ævar Arnfjörð BjarmasonMay 16, 2018
  7. Derrick StoleeMay 16, 2018
  8. Konstantin RyabitsevMay 16, 2018
  9. Ævar Arnfjörð BjarmasonMay 16, 2018
  10. Konstantin RyabitsevMay 16, 2018
  11. Ævar Arnfjörð BjarmasonMay 16, 2018
  12. Martin FickMay 16, 2018
  13. Konstantin RyabitsevMay 16, 2018
  14. Ævar Arnfjörð BjarmasonMay 16, 2018
  15. Konstantin RyabitsevMay 16, 2018
  16. Martin FickMay 16, 2018
  17. Konstantin RyabitsevMay 16, 2018
  18. Martin FickMay 16, 2018
  19. Konstantin RyabitsevMay 16, 2018
  20. Martin FickMay 16, 2018
  21. Jeff KingMay 16, 2018
  22. Konstantin RyabitsevMay 16, 2018
  23. Jeff KingMay 16, 2018
  24. Martin FickMay 16, 2018
  25. Jeff KingMay 16, 2018
  26. Martin FickMay 16, 2018
  27. Konstantin RyabitsevMay 16, 2018
  28. Jeff KingMay 16, 2018
  29. Sitaram ChamartyMay 17, 2018
  30. Jeff KingMay 17, 2018
  31. Duy NguyenMay 19, 2018
  32. Jeff KingMay 16, 2018
  33. Stefan BellerMay 16, 2018
  34. Jeff KingMay 16, 2018

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.