On 8/10/20 5:33 PM, Matheus Tavares wrote:
This series adds parallel workers to the checkout machinery. The cache entries are distributed among helper processes which are responsible for reading, filtering and writing the blobs to the working tree. This should benefit all commands that call unpack_trees() or check_updates(), such as: checkout, clone, sparse-checkout, checkout-index, etc. This proposal is based on two previous ones, by Duy [1] and Jeff [2]. It uses some of the patches from these two series, with additional changes. The final parallel version was benchmarked during three operations with cold cache in the linux repo: cloning v5.8, checking out v5.8 from v2.6.15 and checking out v5.8 from v5.7. The three tables below show the mean run times and standard deviations for 5 runs in: a local file system, a Linux NFS server and Amazon EFS. The number of workers was chosen based on what produces the best result for each case.
> ...
The first 4 patches come from [2]. I couldn't get in touch with Jeff yet and ask for his approval on then, so I didn't include his Signed-off-by, for the time being.
This looks like an interesting mixture of our efforts. Thanks for picking it up. I got re-tasked earlier this summer and had to put it on hold. I've given it a quick read and like the overall shape. I still need to give it an in-depth review and run some perf tests on Windows and on the gigantic Windows and Office repos. Please feel free to add my sign-off to those commits. > ... Jeff