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

Re: [PATCH 0/2] A new merge algorithm, take 3

From
CLChuck Lever <cel@citi.umich.edu>
Date
Sep 8, 2005, 18:16 UTC
Message-ID
<43207FE6.2030108@citi.umich.edu>
In-Reply-To
<Pine.LNX.4.58.0509081012540.3208@g5.osdl.org>
Linus Torvalds wrote:
Show 13 quoted lines
> 
> On Thu, 8 Sep 2005, Junio C Hamano wrote:
> 
>>Yes, the reading of three trees upfront is probably the culprit
>>in your case
> 
> 
> However, note that _most_ tree reading just reads one.
> 
> Merges may take half a second, and yes, when I did it, the fact that we 
> move things around in the array is by far the highest cost. But the thing 
> is, if merges take half a second, that's still not only damn good, it's 
> not even the most common operation.

in my case the merges were taking significantly longer than a half second. making this change is certainly not worth it if merges are running fast...

Show 7 quoted lines
> Yes, the active_cache[] layout as one big array is inconvenient for 
> read_tree(), which tends to want to interleave different trees in the 
> array and thus forces things to be moved around.
> 
> But remember what the most common use for the index is - it's the "single 
> tree" case from read_cache(). That's _so_ much more common than 
> read_tree() that it's not even funny.

read_cache is fast as implemented. the issue is that the next thing that is often done is a cache insert, which requires a memmove, which is slow.

Show 5 quoted lines
> So the data structure is optimized for a different case than reading in 
> trees. Big deal. That optimization is definitely worth it: it allows us to 
> do the read_cache() with the actual index entries being totally read-only 
> (a linked list would have to add a "next" pointer to the cache entries and 
> not allow the in-place thing that read_cache() does).
they are still read-only with my linked list implementation.

begin:vcard fn:Chuck Lever n:Lever;Charles org:Network Appliance, Incorporated;Linux NFS Client Development adr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA email;internet:cel@citi.umich.edu title:Member of Technical Staff tel;work:+1 734 763-4415 tel;fax:+1 734 763 4434 tel;home:+1 734 668-1089 x-mozilla-html:FALSE url:http://www.monkey.org/~cel/ version:2.1 end:vcard

Previous: Junio C HamanoNext: Linus Torvalds
Message 28 of 40 in “A new merge algorithm, take 3”
  1. 0/2 A new merge algorithm, take 3Fredrik Kuivinen, Sep 7, 2005
  2. 1/2 Add '-i' flag to read-tree to make it ignore whats in the working directory.Fredrik Kuivinen, Sep 7, 2005
  3. Unified merge driver pushed out to "master" branchJunio C Hamano, Sep 11, 2005
  4. Fredrik KuivinenSep 11, 2005
  5. Junio C HamanoSep 12, 2005
  6. Another merge test case from the kernel tree.Junio C Hamano, Sep 14, 2005
  7. Daniel BarkalowSep 14, 2005
  8. Junio C HamanoSep 14, 2005
  9. Fredrik KuivinenSep 14, 2005
  10. Junio C HamanoSep 14, 2005
  11. Yet another set of merge test cases from the kernel tree.Junio C Hamano, Sep 15, 2005
  12. Fredrik KuivinenSep 19, 2005
  13. Junio C HamanoSep 20, 2005
  14. Fredrik KuivinenSep 20, 2005
  15. 2/2 A new merge algorithmFredrik Kuivinen, Sep 7, 2005
  16. Daniel BarkalowSep 7, 2005
  17. Fredrik KuivinenSep 8, 2005
  18. Daniel BarkalowSep 8, 2005
  19. Fredrik KuivinenSep 8, 2005
  20. Daniel BarkalowSep 8, 2005
  21. Junio C HamanoSep 7, 2005
  22. Junio C HamanoSep 8, 2005
  23. A Large Angry SCMSep 8, 2005
  24. Chuck LeverSep 8, 2005
  25. Junio C HamanoSep 8, 2005
  26. Linus TorvaldsSep 8, 2005
  27. Junio C HamanoSep 8, 2005
  28. Chuck LeverSep 8, 2005
  29. Linus TorvaldsSep 8, 2005
  30. Chuck LeverSep 8, 2005
  31. Linus TorvaldsSep 8, 2005
  32. [RFH] Merge driverJunio C Hamano, Sep 9, 2005
  33. Daniel BarkalowSep 9, 2005
  34. Junio C HamanoSep 9, 2005
  35. Daniel BarkalowSep 9, 2005
  36. [RFH] Merge driverJunio C Hamano, Sep 11, 2005
  37. Fredrik KuivinenSep 12, 2005
  38. Junio C HamanoSep 12, 2005
  39. Fredrik KuivinenSep 13, 2005
  40. Junio C HamanoSep 13, 2005

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.