Pulling 100k revisions 100× faster
H.1301 (Cornil) | Day 2 | 12:30 - 13:10 | Speakers: Raphaël Gomès, Pierre-Yves David
Abstract
Mercurial is a distributed version control system whose codebase combines Python, C and Rust. Over its twenty years of development, significant effort has been put into its scaling and overall performance.
In the recent 7.2 version, the performance of exchanging data between repositories (e.g. push and pull) has been significantly improved, with some of our most complicated benchmark cases moving from almost four hours down to 2 minutes, a speedup of over 100x.
This talk uses this work as a case study of the multiple places where performance improvements lie. It goes over the challenges that arise from exchanging data in a DVCS, and the levers we can pull to overcome them: higher level logic changes, lower level algorithmic improvements, programming language strengths, modern CPU architecture, network protocol design, etc.
Despite the great results, exchanging data in version control remains a complex matter, and we lastly expose our ideas to further tackle its inherent complexity.
Speakers
I am a maintainer of the Mercurial version control system, I love working on pragmatic, performant and progressive tooling.
I have been using open source software for about 25 years, and I have been paid to write them for the past 15 years. For the past 10 years I have been paid full time to work on the Mercurial version control system.
I founded Octobus as small company doing open source development (mostly Mercurial and source control related)
Links
External Links
Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.
