[PATCH v9 7/9] unpack-objects: use the bulk-checkin infrastructure
- From
- Neeraj Singh via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Nov 15, 2021, 23:51 UTC
- Message-ID
- <cfc6a347d08ce465f260990010267e4e71d469eb.1637020263.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1076.v9.git.git.1637020263.gitgitgadget@gmail.com>
From: Neeraj Singh <neerajsi@microsoft.com>
The unpack-objects functionality is used by fetch, push, and fast-import to turn the transfered data into object database entries when there are fewer objects than the 'unpacklimit' setting.
By enabling bulk-checkin when unpacking objects, we can take advantage of batched fsyncs.
Signed-off-by: Neeraj Singh <neerajsi@microsoft.com> --- builtin/unpack-objects.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c index 4a9466295ba..51eb4f7b531 100644 --- a/builtin/unpack-objects.c +++ b/builtin/unpack-objects.c @@ -1,5 +1,6 @@ #include "builtin.h" #include "cache.h" +#include "bulk-checkin.h" #include "config.h" #include "object-store.h" #include "object.h" @@ -503,10 +504,12 @@ static void unpack_all(void) if (!quiet) progress = start_progress(_("Unpacking objects"), nr_objects); CALLOC_ARRAY(obj_list, nr_objects); + plug_bulk_checkin(); for (i = 0; i < nr_objects; i++) { unpack_one(i); display_progress(progress, i + 1); } + unplug_bulk_checkin(); stop_progress(&progress); if (delta_list)
-- gitgitgadget