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

Re: Submodule object store

From
DLDavid Lang <david.lang@digitalinsight.com>
Date
Mar 26, 2007, 23:40 UTC
Message-ID
<Pine.LNX.4.63.0703261530030.14387@qynat.qvtvafvgr.pbz>
In-Reply-To
<20070326235527.GM22773@admingilde.org>
On Tue, 27 Mar 2007, Martin Waitz wrote:
Show 20 quoted lines
> hoi :)
>
> On Mon, Mar 26, 2007 at 03:20:34PM -0800, David Lang wrote:
>>> I want to be able to list all objects which are not reachable in the
>>> object store, without traversing all submodules at the same time.
>>> The only way I can think of to achieve this is to have one separate
>>> object store per submodule and then do the traversal per submodule.
>>
>> why do you want to optimize for the relativly rare fsck function rather
>> then the more common read functions (which would benifit from shareing
>> object that are identical between projects)?
>
> Because I don't know how to make it _possible_ for large repositories
> otherwise.  Consider a Linux-distribution which handles each package
> as one submodule.
>
> I don't think that it's too much balanced towards fsck.
> The separated object store also helps reduce the memory requirement for
> large pushs/pulls.
> Sharing objects can be achieved by alternates if you want.
alternates require explicitly setting up the sharing.

useing the same object store makes this work automaticaly (think of all the copies of COPYING that would end up being the same as a trivial example)

> If someone comes up with a nice way to handle everything in one big
> object store I would happily use that! :-)
what exactly are the problems with one big object store?
ones that I can think of:
1. when you are doing a fsck you need to walk all the trees and find out the 
list of objects that you know about.
   done as a tree of binary values you can hold a LOT in memory before running 
into swap.
   if it's enough larger then available ram then an option for fsck to use trees 
on disk is an option.
2. when creating a pack you will eventually run into pack-size limits with too 
many objects
   teach the pack creators to make packs that are subsets rather then everything 
(I belive that most of the smarts are there, it just needs the upper control 
logic to tell the existing things what to include)
3. when doing a pull it takes longer to figure out what to pull to get a 
duplicate of _everything_
   add a way to do a 'pull projectlist' that would look at what objects are 
needed by the project(s) requested and only try to pack up those objects

what else is there that I'm not thinking of? so far these look like long-term problems as opposed to short-term problems, and all of them have fairly simple fixes that can be implemented as they become an issue.

David Lang
Previous: Martin WaitzNext: Martin Waitz
Message 24 of 61 in “.gitlink for Summer of Code”
  1. Eric LeshMar 25, 2007
  2. Matthieu MoyMar 25, 2007
  3. Shawn O. PearceMar 25, 2007
  4. Johannes SchindelinMar 25, 2007
  5. Shawn O. PearceMar 25, 2007
  6. Junio C HamanoMar 25, 2007
  7. Shawn O. PearceMar 25, 2007
  8. Petr BaudisMar 27, 2007
  9. Eric LeshMar 26, 2007
  10. Matthieu MoyMar 26, 2007
  11. Eric LeshMar 26, 2007
  12. Martin WaitzMar 26, 2007
  13. Josef WeidendorferMar 26, 2007
  14. Matthieu MoyMar 26, 2007
  15. Josef WeidendorferMar 26, 2007
  16. Matthieu MoyMar 27, 2007
  17. Martin WaitzMar 26, 2007
  18. Junio C HamanoMar 26, 2007
  19. Submodule object storeMartin Waitz, Mar 26, 2007
  20. Junio C HamanoMar 26, 2007
  21. Martin WaitzMar 26, 2007
  22. David LangMar 26, 2007
  23. Martin WaitzMar 26, 2007
  24. David LangMar 26, 2007
  25. Martin WaitzMar 27, 2007
  26. David LangMar 27, 2007
  27. Junio C HamanoMar 27, 2007
  28. Martin WaitzMar 27, 2007
  29. Uwe Kleine-KönigMar 27, 2007
  30. Uwe Kleine-KönigMar 27, 2007
  31. Martin WaitzMar 27, 2007
  32. Josef WeidendorferMar 27, 2007
  33. Martin WaitzMar 27, 2007
  34. Uwe Kleine-KönigMar 27, 2007
  35. Linus TorvaldsMar 27, 2007
  36. Uwe Kleine-KönigMar 27, 2007
  37. Linus TorvaldsMar 27, 2007
  38. Linus TorvaldsMar 27, 2007
  39. Martin WaitzMar 27, 2007
  40. Josef WeidendorferMar 26, 2007
  41. Junio C HamanoMar 26, 2007
  42. Linus TorvaldsMar 27, 2007
  43. David LangMar 27, 2007
  44. Linus TorvaldsMar 27, 2007
  45. Martin WaitzMar 27, 2007
  46. Daniel BarkalowMar 27, 2007
  47. Linus TorvaldsMar 27, 2007
  48. Daniel BarkalowMar 27, 2007
  49. Linus TorvaldsMar 27, 2007
  50. David LangMar 27, 2007
  51. Jakub NarebskiMar 27, 2007
  52. David LangMar 27, 2007
  53. Steven GrimmMar 27, 2007
  54. Daniel BarkalowMar 27, 2007
  55. Linus TorvaldsMar 27, 2007
  56. Josef WeidendorferMar 26, 2007
  57. Martin WaitzMar 26, 2007
  58. Jakub NarebskiMar 26, 2007
  59. Matthieu MoyMar 26, 2007
  60. Jakub NarebskiMar 27, 2007
  61. Shawn O. PearceMar 25, 2007

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.