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

Re: [PATCHv2] refs.c: enable large transactions

From
Stefan Beller <sbeller@google.com>
Date
Apr 22, 2015, 19:09 UTC
Message-ID
<CAGZ79kbb=UUVq8np-ndiMS_id5GaBHpDafDe9ZB3TvsK3xYe_g@mail.gmail.com>
In-Reply-To
<5537AC00.5060208@alum.mit.edu>
On Wed, Apr 22, 2015 at 7:11 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
>> +     if (lock->lk->fd == -1)
>> +             reopen_lock_file(lock->lk);
>
> You should check that reopen_lock_file() was successful.
ok
Show 11 quoted lines
>> @@ -3762,6 +3779,10 @@ int ref_transaction_commit(struct ref_transaction *transaction,
>>                                   update->refname);
>>                       goto cleanup;
>>               }
>> +             if (remaining_fds > 0)
>> +                     remaining_fds--;
>> +             else
>> +                     close_lock_file(update->lock->lk);
>
> I consider this code a stopgap, and simplicity is more important than
> optimization.
Can you explain a bit why you think this is a stopgap?

Looking at the patch this looks simple to me, as there are no huge pain points involved. (Compared to [1] as we'd change a lot in that series)

Also this is pretty good on performance. The small cases do not have an additional unneeded close and reopen, but only the larger cases do.

[1] http://git.661346.n2.nabble.com/PATCHv1-0-6-Fix-bug-in-large-transactions-tt7624363.html#a7624368
> But just for the sake of discussion, if we planned to keep
> this code around, it could be improved by not wasting open file
> descriptors for references that are only being verified or deleted, like so:
I'll pick that up for the resend.
Previous: Michael HaggertyNext: Michael Haggerty
Message 20 of 28 in “Another approach to large transactions”
  1. 0/3 Another approach to large transactionsStefan Beller, Apr 16, 2015
  2. 1/3 refs.c: remove lock_fd from struct ref_lockStefan Beller, Apr 16, 2015
  3. 2/3 Move get_max_fd_limit(void) to git_compat_util.hStefan Beller, Apr 16, 2015
  4. 3/3 refs.c: enable large transactionsStefan Beller, Apr 16, 2015
  5. Junio C HamanoApr 17, 2015
  6. Junio C HamanoApr 17, 2015
  7. Stefan BellerApr 17, 2015
  8. Stefan BellerApr 17, 2015
  9. Stefan BellerApr 20, 2015
  10. Junio C HamanoApr 20, 2015
  11. Stefan BellerApr 20, 2015
  12. Stefan BellerApr 21, 2015
  13. refs.c: enable large transactionsStefan Beller, Apr 21, 2015
  14. Junio C HamanoApr 21, 2015
  15. Stefan BellerApr 21, 2015
  16. Junio C HamanoApr 21, 2015
  17. [PATCHv2] refs.c: enable large transactionsStefan Beller, Apr 21, 2015
  18. Stefan BellerApr 21, 2015
  19. Michael HaggertyApr 22, 2015
  20. Stefan BellerApr 22, 2015
  21. Michael HaggertyApr 22, 2015
  22. Junio C HamanoApr 21, 2015
  23. Jeff KingApr 21, 2015
  24. Stefan BellerApr 22, 2015
  25. Jeff KingApr 22, 2015
  26. Junio C HamanoApr 21, 2015
  27. Stefan BellerApr 21, 2015
  28. Michael HaggertyApr 21, 2015

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.