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

Re: [PATCHv4 08/12] Teach the notes lookup code to parse notes trees with various fanout schemes

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 27, 2009, 21:27 UTC
Message-ID
<20090827212710.GV1033@spearce.org>
In-Reply-To
<7vtyztq8nv.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> Johan Herland <johan@herland.net> writes:
> > 2. Simply decide on a constant 2/2/36 fanout.
> 
> I thought it was Gitney who suggested to use a top-level fan-out based on
> the committer-date.  If you typically have already parsed the commit when
> you want to look up notes objects for it, it won't have extra overhead,
> and when looking at only recent history it will only need to access a
> small subset of trees.  I thought it was a neat idea (except that the
> question becomes what the granularity of the top level fan-out should
> be---one a day?  one a month?---the optimum would depend on commit
> density).  Was that idea shot down for some reason?

Yea, it was me. I still think it might be a useful idea, since it allows you better density of loading notes when parsing the recent commits. In theory the last 256 commits can easly be in each of the 2/ fanout buckets, making 2/38 pointless for reducing the search space. Commit date on the other hand can probably force all of them into the same bucket, making it easy to have the last 256 commits in cache, from a single bucket.

But I thought you shot it down, by saying that we also wanted to support notes on blobs. I happen to see no value in a note on a blob, a blob alone doesn't make much sense without at least an annotated tag or commit to provide it some named context, and the latter two have dates.

-- 
Shawn.
Previous: Junio C HamanoNext: Junio C Hamano
Message 16 of 38 in “[PATCHv4 00/12] git notes”
  1. Johan HerlandAug 27, 2009
  2. 01/12 Introduce commit notesJohan Herland, Aug 27, 2009
  3. 02/12 Add a script to edit/inspect notesJohan Herland, Aug 27, 2009
  4. 03/12 Speed up git notes lookupJohan Herland, Aug 27, 2009
  5. 04/12 Add an expensive test for git-notesJohan Herland, Aug 27, 2009
  6. 05/12 Teach "-m <msg>" and "-F <file>" to "git notes edit"Johan Herland, Aug 27, 2009
  7. 06/12 fast-import: Add support for importing commit notesJohan Herland, Aug 27, 2009
  8. 07/12 t3302-notes-index-expensive: Speed up create_repo()Johan Herland, Aug 27, 2009
  9. 08/12 Teach the notes lookup code to parse notes trees with various fanout schemesJohan Herland, Aug 27, 2009
  10. Junio C HamanoAug 27, 2009
  11. Johan HerlandAug 27, 2009
  12. Johannes SchindelinAug 27, 2009
  13. Junio C HamanoAug 27, 2009
  14. Johannes SchindelinAug 28, 2009
  15. Junio C HamanoAug 27, 2009
  16. Shawn O. PearceAug 27, 2009
  17. Junio C HamanoAug 27, 2009
  18. Johan HerlandAug 27, 2009
  19. Jeff KingAug 27, 2009
  20. Junio C HamanoAug 28, 2009
  21. Sverre RabbelierAug 28, 2009
  22. Junio C HamanoAug 28, 2009
  23. Sverre RabbelierAug 28, 2009
  24. Junio C HamanoAug 28, 2009
  25. Sverre RabbelierAug 28, 2009
  26. Junio C HamanoAug 28, 2009
  27. Johannes SchindelinAug 28, 2009
  28. Johan HerlandAug 28, 2009
  29. Johannes SchindelinAug 28, 2009
  30. Johan HerlandAug 28, 2009
  31. Johannes SchindelinAug 27, 2009
  32. 09/12 Selftests verifying semantics when loading notes trees with various fanoutsJohan Herland, Aug 27, 2009
  33. 10/12 notes.c: Implement simple memory pooling of leaf nodesJohan Herland, Aug 27, 2009
  34. Alex RiesenAug 27, 2009
  35. Johan HerlandAug 27, 2009
  36. Johan HerlandAug 27, 2009
  37. 11/12 Add flags to get_commit_notes() to control the format of the note stringJohan Herland, Aug 27, 2009
  38. 12/12 Add '%N'-format for pretty-printing commit notesJohan Herland, Aug 27, 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.