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

Re: How git affects kernel.org performance

From
Theodore Tso <tytso@mit.edu>
Date
Jan 8, 2007, 12:58 UTC
Message-ID
<20070108125819.GA32756@thunk.org>
In-Reply-To
<20070108030555.GA7289@in.ibm.com>
On Mon, Jan 08, 2007 at 08:35:55AM +0530, Suparna Bhattacharya wrote:
Show 13 quoted lines
> > Yeah, slowly-growing directories will get splattered all over the disk.
> > 
> > Possible short-term fixes would be to just allocate up to (say) eight
> > blocks when we grow a directory by one block.  Or teach the
> > directory-growth code to use ext3 reservations.
> > 
> > Longer-term people are talking about things like on-disk rerservations.
> > But I expect directories are being forgotten about in all of that.
> 
> By on-disk reservations, do you mean persistent file preallocation ? (that
> is explicit preallocation of blocks to a given file) If so, you are
> right, we haven't really given any thought to the possibility of directories
> needing that feature.

The fastest and probably most important thing to add is some readahead smarts to directories --- both to the htree and non-htree cases. If you're using some kind of b-tree structure, such as XFS does for directories, preallocation doesn't help you much. Delayed allocation can save you if your delayed allocator knows how to structure disk blocks so that a btree-traversal is efficient, but I'm guessing the biggest reason why we are losing is because we don't have sufficient readahead. This also has the advantage that it will help without needing to doing a backup/restore to improve layout.

Allocating some number of empty blocks when we grow the directory would be a quick hack that I'd probably do as a 2nd priority. It won't help pre-existing directories, but combined with readahead logic, should help us out greatly in the non-btree case.

						- Ted
Previous: Suparna BhattacharyaNext: Johannes Stezenbach
Message 26 of 52 in “Re: [KORG] Re: kernel.org lies about latest -mm kernel”
  1. Jeff GarzikJan 7, 2007
  2. Linus TorvaldsJan 7, 2007
  3. Greg KHJan 7, 2007
  4. H. Peter AnvinJan 7, 2007
  5. Junio C HamanoJan 7, 2007
  6. Jeff GarzikJan 7, 2007
  7. Linus TorvaldsJan 7, 2007
  8. Martin LanghoffJan 7, 2007
  9. How git affects kernel.org performanceH. Peter Anvin, Jan 7, 2007
  10. Linus TorvaldsJan 7, 2007
  11. Willy TarreauJan 7, 2007
  12. H. Peter AnvinJan 7, 2007
  13. Willy TarreauJan 7, 2007
  14. Christoph HellwigJan 7, 2007
  15. Willy TarreauJan 7, 2007
  16. Linus TorvaldsJan 7, 2007
  17. Linus TorvaldsJan 7, 2007
  18. Jan EngelhardtJan 7, 2007
  19. Randy DunlapJan 7, 2007
  20. Jan EngelhardtJan 7, 2007
  21. Randy DunlapJan 7, 2007
  22. Linus TorvaldsJan 7, 2007
  23. Andrew MortonJan 7, 2007
  24. Rene HermanJan 7, 2007
  25. Suparna BhattacharyaJan 8, 2007
  26. Theodore TsoJan 8, 2007
  27. Johannes StezenbachJan 8, 2007
  28. Theodore TsoJan 8, 2007
  29. Pavel MachekJan 8, 2007
  30. Theodore TsoJan 8, 2007
  31. Jeff GarzikJan 8, 2007
  32. Paul JacksonJan 9, 2007
  33. Jeremy HigdonJan 9, 2007
  34. Fengguang WuJan 9, 2007
  35. Linus TorvaldsJan 9, 2007
  36. Fengguang WuJan 10, 2007
  37. Fengguang WuJan 10, 2007
  38. Fengguang WuJan 10, 2007
  39. Fengguang WuJan 9, 2007
  40. Fengguang WuJan 9, 2007
  41. Robert FitzsimonsJan 7, 2007
  42. J.H.Jan 7, 2007
  43. Jakub NarebskiJan 8, 2007
  44. Krzysztof HalasaJan 7, 2007
  45. Shawn O. PearceJan 7, 2007
  46. Nicolas PitreJan 8, 2007
  47. Linus TorvaldsJan 7, 2007
  48. Nigel CunninghamJan 10, 2007
  49. Fengguang WuJan 10, 2007
  50. Fengguang WuJan 10, 2007
  51. Fengguang WuJan 10, 2007
  52. Nigel CunninghamJan 12, 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.