Neeraj Singh 425d290ce5 
	
	
	unpack-objects: use the bulk-checkin infrastructure ... 
			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 an odb-transaction when unpacking objects, we can take advantage
of batched fsyncs.
Here are some performance numbers to justify batch mode for
unpack-objects, collected on a WSL2 Ubuntu VM.
Fsync Mode | Time for 90 objects (ms)
-------------------------------------
       Off | 170
  On,fsync | 760
  On,batch | 230
Note that the default unpackLimit is 100 objects, so there's a 3x
benefit in the worst case. The non-batch mode fsync scales linearly
with the number of objects, so there are significant benefits even with
smaller numbers of objects.
Signed-off-by: Neeraj Singh <neerajsi@microsoft.com >
Signed-off-by: Junio C Hamano <gitster@pobox.com > 
		
	 
		2022-04-06 13:13:26 -07:00 
	 
	
	
		 
	
	
	
		
			
			
			
			
			
			2022-04-06 13:13:26 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:36 -08:00 
		 
	
		
	
		
	
		
			
			
			
			
			
			2021-08-25 14:39:08 -07:00 
		 
	
		
			
			
			
			
			
			2022-03-06 21:25:32 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:35 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-18 13:53:29 -08:00 
		 
	
		
			
			
			
			
			
			2021-09-27 09:44:54 -07:00 
		 
	
		
			
			
			
			
			
			2022-03-04 13:24:18 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-18 11:21:46 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2021-07-01 12:32:22 -07:00 
		 
	
		
			
			
			
			
			
			2021-01-12 14:04:42 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2021-10-15 13:09:40 -07:00 
		 
	
		
			
			
			
			
			
			2022-01-13 13:49:45 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-13 22:56:17 +00:00 
		 
	
		
			
			
			
			
			
			2022-02-17 16:25:05 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-13 22:56:17 +00:00 
		 
	
		
			
			
			
			
			
			2021-08-26 14:36:27 -07:00 
		 
	
		
			
			
			
			
			
			2022-03-04 13:24:18 -08:00 
		 
	
		
			
			
			
			
			
			2021-08-25 14:39:08 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:36 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-04 13:24:18 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-03-15 14:32:51 -07:00 
		 
	
		
			
			
			
			
			
			2021-09-14 09:30:54 -07:00 
		 
	
		
			
			
			
			
			
			2021-07-26 12:17:16 -07:00 
		 
	
		
			
			
			
			
			
			2021-10-28 09:57:09 -07:00 
		 
	
		
			
			
			
			
			
			2022-01-05 13:31:00 -08:00 
		 
	
		
			
			
			
			
			
			2021-02-25 16:43:30 -08:00 
		 
	
		
			
			
			
			
			
			2021-09-07 11:11:35 -07:00 
		 
	
		
			
			
			
			
			
			2022-01-05 13:29:23 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-02 11:30:53 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-10 15:10:22 -08:00 
		 
	
		
			
			
			
			
			
			2021-02-05 13:49:54 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-13 22:56:16 +00:00 
		 
	
		
			
			
			
			
			
			2021-12-20 14:55:02 -08:00 
		 
	
		
			
			
			
			
			
			2021-10-20 14:33:07 -07:00 
		 
	
		
			
			
			
			
			
			2021-07-26 12:19:20 -07:00 
		 
	
		
			
			
			
			
			
			2021-11-25 22:15:07 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-09 14:21:00 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2022-02-25 15:47:36 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:35 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-09 13:38:24 -08:00 
		 
	
		
			
			
			
			
			
			2022-01-07 15:19:34 -08:00 
		 
	
		
			
			
			
			
			
			2022-04-06 13:01:54 -07:00 
		 
	
		
			
			
			
			
			
			2022-01-05 13:29:23 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2022-02-25 15:47:36 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-23 16:41:55 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-06 18:02:34 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-15 18:00:50 -08:00 
		 
	
		
			
			
			
			
			
			2021-05-10 15:06:22 +09:00 
		 
	
		
			
			
			
			
			
			2021-08-25 14:39:08 -07:00 
		 
	
		
			
			
			
			
			
			2022-03-04 13:24:17 -08:00 
		 
	
		
			
			
			
			
			
			2021-12-01 14:45:58 -08:00 
		 
	
		
			
			
			
			
			
			2021-04-14 13:47:21 -07:00 
		 
	
		
			
			
			
			
			
			2021-06-09 09:15:58 +09:00 
		 
	
		
	
		
			
			
			
			
			
			2021-05-11 12:47:31 +09:00 
		 
	
		
			
			
			
			
			
			2022-02-18 13:53:27 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-10-28 15:32:14 -07:00 
		 
	
		
			
			
			
			
			
			2021-09-28 10:31:02 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-15 17:37:43 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-10 15:10:22 -08:00 
		 
	
		
			
			
			
			
			
			2021-04-27 16:31:38 +09:00 
		 
	
		
	
		
			
			
			
			
			
			2022-02-02 11:24:23 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-01-03 16:24:15 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:35 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-03-29 14:06:08 -07:00 
		 
	
		
			
			
			
			
			
			2021-09-27 13:38:37 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:35 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-18 13:53:27 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-06 21:25:32 -08:00 
		 
	
		
	
		
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-01-10 11:52:56 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-05-11 12:47:31 +09:00 
		 
	
		
			
			
			
			
			
			2022-02-25 15:47:36 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-09-27 12:36:45 -07:00 
		 
	
		
			
			
			
			
			
			2021-09-20 15:20:45 -07:00 
		 
	
		
			
			
			
			
			
			2022-01-10 11:52:56 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-11 10:06:41 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-16 09:40:00 -08:00 
		 
	
		
			
			
			
			
			
			2021-04-27 16:31:39 +09:00 
		 
	
		
			
			
			
			
			
			2021-01-21 15:51:31 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-13 22:56:18 +00:00 
		 
	
		
			
			
			
			
			
			2022-02-24 11:06:18 -08:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2022-03-13 22:56:18 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-14 15:57:59 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-16 09:40:00 -08:00 
		 
	
		
	
		
			
			
			
			
			
			2022-04-06 13:13:26 -07:00 
		 
	
		
			
			
			
			
			
			2022-04-06 13:13:26 -07:00 
		 
	
		
			
			
			
			
			
			2021-09-03 11:35:15 -07:00 
		 
	
		
			
			
			
			
			
			2022-02-04 13:58:28 -08:00 
		 
	
		
			
			
			
			
			
			2021-11-25 22:15:07 -08:00 
		 
	
		
			
			
			
			
			
			2021-08-05 08:59:37 -07:00 
		 
	
		
			
			
			
			
			
			2021-11-03 13:25:36 -07:00 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2022-03-06 21:25:31 -08:00