SESSION ON-DEMAND

All Things P99

The event for developers who care about P99 percentiles and high-performance, low-latency applications

5 Hours to 7.7 Seconds: How Database Tricks Sped up Rust Linting Over 2000X

Linters are a type of database! They are a collection of lint rules — queries that look for rule violations to report — plus a way to execute those queries over a source code dataset.

This is a case study about using database ideas to build a linter that looks for breaking changes in Rust library APIs. Maintainability and performance are key: new Rust releases tend to have mutually-incompatible ways of representing API information, and we cannot afford to reimplement and optimize dozens of rules for each Rust version separately. Fortunately, databases don’t require rewriting queries when the underlying storage format or query plan changes! This allows us to ship massive optimizations and support multiple Rust versions without making any changes to the queries that describe lint rules.

Ship now, optimize later” can be a sustainable development practice after all — join us to see how!”

16 minutes
Register for access to all 60+ sessions available on demand.
Fill out the form to watch this session from the P99 CONF 2024 livestream. You’ll also get access to all available recordings.

Predrag Gruevski, Independent Software Researcher at Trustfall

Predrag has spent the last 8 years working on query engines for almost every kind of data imaginable: from relational and graph databases to APIs and unstructured data files. He built Trustfall, a universal query engine that can query any data source(s), and cargo-semver-checks, a semantic versioning linter for Rust. Previously, Predrag was a principal engineer at Kensho Technologies, did performance engineering research at MIT, and competed in international math and programming competitions. When not in front of a screen, Predrag enjoys skiing, ice hockey, and board games. He is also a huge space nerd. Ask him about the time he went to watch a giant rocket explode!