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

Re: Unresolved issues #2 (shallow clone again)

From
Theodore Tso <tytso@mit.edu>
Date
May 8, 2006, 01:26 UTC
Message-ID
<20060508012632.GD17138@thunk.org>
In-Reply-To
<Pine.LNX.4.64.0605071744210.3718@g5.osdl.org>
On Sun, May 07, 2006 at 05:50:42PM -0700, Linus Torvalds wrote:
Show 25 quoted lines
> 
> 
> On Sun, 7 May 2006, Theodore Tso wrote:
> >> 
> > If there are 233338 objects, then the average wasted space due to
> > internal fragmentation is 233338 * 2k, or 466676 kilobytes, or only
> > 36% of the wasted space.
> 
> That's not necessarily true.
> 
> That assumes a randomly distributed filesize. File sizes are _not_ random, 
> and in particular if you have the distribution leaning towards <2kB being 
> common, you can actually get >50% fragmentation.
> 
> Btw, I hit this when some people argued that the page size should be made 
> 64kB. The above (incorrect) logic implies that you waste 32kB on average 
> per file. That's not true, if a large fraction of your files are small, in 
> which case you may actually be wastign closer to 60kB on average from 
> using a big page-size, because about half of the kernel files are actually 
> smaller than 4kB (or something. I forget the exact statistics, I did them 
> with a script at some point).
> 
> Anyway, with inode overhead and a lot of objects being just a couple of 
> hundred bytes, I think I estimated at some point that you actually lost 
> closer to 3kB per object.

I just ran the numbers on filesizes of a kernel tree I had handy, which happened to be 2.6.16.11. With no object files, git files, etc. the average loss was 2351 bytes --- not that far away from the average of 2048 bytes. Granted, it may be there is more different versions of small objects causing a skewing of the distributions of git objects in the 2.6 tree, but I'm not familiar enough with the git porcelain to be able to make it disgorge the sizes of the repository to do the math.

						- Ted
Previous: Linus TorvaldsNext: Linus Torvalds
Message 47 of 81 in “Recent unresolved issues”
  1. Junio C HamanoApr 14, 2006
  2. Petr BaudisApr 14, 2006
  3. seanApr 14, 2006
  4. Petr BaudisApr 14, 2006
  5. Carl WorthApr 14, 2006
  6. Johannes SchindelinApr 15, 2006
  7. Junio C HamanoApr 15, 2006
  8. Junio C HamanoApr 15, 2006
  9. Linus TorvaldsApr 14, 2006
  10. Linus TorvaldsApr 15, 2006
  11. Linus TorvaldsApr 15, 2006
  12. Junio C HamanoApr 15, 2006
  13. Linus TorvaldsApr 15, 2006
  14. Linus TorvaldsApr 15, 2006
  15. Linus TorvaldsApr 15, 2006
  16. Junio C HamanoApr 15, 2006
  17. Junio C HamanoApr 15, 2006
  18. Junio C HamanoApr 15, 2006
  19. Johannes SchindelinApr 15, 2006
  20. Linus TorvaldsApr 15, 2006
  21. Linus TorvaldsApr 15, 2006
  22. Junio C HamanoApr 16, 2006
  23. Junio C HamanoApr 15, 2006
  24. Linus TorvaldsApr 15, 2006
  25. Junio C HamanoApr 15, 2006
  26. Unresolved issues #2Junio C Hamano, May 4, 2006
  27. Jakub NarebskiMay 4, 2006
  28. Junio C HamanoMay 4, 2006
  29. Jakub NarebskiMay 4, 2006
  30. Petr BaudisMay 4, 2006
  31. Pavel RoskinMay 4, 2006
  32. Carl WorthMay 4, 2006
  33. Junio C HamanoMay 5, 2006
  34. Martin LanghoffMay 5, 2006
  35. Carl WorthMay 5, 2006
  36. Jakub NarebskiMay 5, 2006
  37. Linus TorvaldsMay 5, 2006
  38. Jakub NarebskiMay 5, 2006
  39. Linus TorvaldsMay 5, 2006
  40. Martin LanghoffMay 6, 2006
  41. Junio C HamanoMay 6, 2006
  42. Martin LanghoffMay 7, 2006
  43. Jeff KingMay 7, 2006
  44. Linus TorvaldsMay 7, 2006
  45. Theodore TsoMay 8, 2006
  46. Linus TorvaldsMay 8, 2006
  47. Theodore TsoMay 8, 2006
  48. Linus TorvaldsMay 8, 2006
  49. Theodore TsoMay 8, 2006
  50. Linus TorvaldsMay 8, 2006
  51. Jeff KingMay 8, 2006
  52. Linus TorvaldsMay 8, 2006
  53. Sergey VlasovMay 7, 2006
  54. Martin LanghoffMay 7, 2006
  55. Junio C HamanoMay 7, 2006
  56. Martin LanghoffMay 7, 2006
  57. Carl WorthMay 5, 2006
  58. Jakub NarebskiMay 7, 2006
  59. Junio C HamanoMay 8, 2006
  60. Jakub NarebskiMay 8, 2006
  61. Jakub NarebskiMay 8, 2006
  62. Daniel BarkalowMay 4, 2006
  63. Linus TorvaldsMay 4, 2006
  64. Junio C HamanoMay 6, 2006
  65. Linus TorvaldsMay 6, 2006
  66. seanMay 6, 2006
  67. Linus TorvaldsMay 6, 2006
  68. seanMay 6, 2006
  69. Linus TorvaldsMay 6, 2006
  70. Junio C HamanoMay 6, 2006
  71. Johannes SchindelinMay 6, 2006
  72. Linus TorvaldsMay 6, 2006
  73. Junio C HamanoMay 7, 2006
  74. Junio C HamanoMay 7, 2006
  75. Johannes SchindelinMay 7, 2006
  76. Jakub NarebskiMay 7, 2006
  77. Junio C HamanoMay 8, 2006
  78. Jakub NarebskiMay 7, 2006
  79. David WoodhouseMay 9, 2006
  80. Bertrand JacquinMay 9, 2006
  81. Nicolas PitreMay 9, 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.