Overview
Explore the journey of improving Mercurial's performance through Rust implementation in this 46-minute conference talk from linux.conf.au 2021. Dive into the challenges and solutions encountered during the rewrite of core components, particularly the 'hg status' command, which achieved a 25x speed improvement. Learn about Rust and Python interoperability, efficient data structures, directory traversal optimization, version control internals, and platform-specific issues. Gain insights into append-only binary formats, mtime caching, safe memory mapping in concurrent contexts, and multithreading techniques. Discover how this rewrite effort significantly enhanced Mercurial's scalability and performance for large repositories.
Syllabus
Introduction
About Raphal
Maintainability
Attack from both sides
Status command
Multithreading
Unrealistic target
Performance comparison
dirstate
filesystem
costs
tree
data
appendonly storage
dependonly storage
docket
memory usage
tree optimization
recursive implementation
not reliable
mtime caching
durstate
update
file systems
red deer
Taught by
linux.conf.au