Rex: Preventing Bugs and Misconfiguration in Large Services Using Correlated Change Analysis
Sonu Mehta, Ranjita Bhagwan, Rahul Kumar, Chetan Bansal, Chandra Shekhar Maddila, Balasubramanyan Ashok, Sumit Asthana, Christian Bird, Aditya Kumar
Abstract
Large services experience extremely frequent changes to code and configuration. In many cases, these changes are correlated across files. For example, an engineer introduces a new feature following which they also change a configuration file to enable the feature only on a small number of experimental machines. This example captures only one of numerous types of correlations that emerge organically in large services. Unfortunately, in almost all such cases, no documentation or specification guides engineers on how to make correlated changes and they often miss making them. Such misses can be vastly disruptive to the service. We have designed and deployed Rex, a tool that, using a combination of machine-learning and program analysis, learns change-rules that capture such correlations. When an engineer changes only a subset of files in a change-rule, Rex suggests additional changes to the engineer based on the change-rule. Rex has been deployed for 14 months on 360 repositories within Microsoft that hold code and configuration for services such as Office 365 and Azure. Rex has so far positively affected 4926 changes without which, at the very least, code-quality would have degraded and, in some cases, the service would have been severely disrupted.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext a8a77c13-df9e-4186-a573-cb8c02271150Cited by top-tier papers14
- Identifying bad software changes via multimodal anomaly detection for online service systemsNengwen Zhao, Junjie Chen, Zhaoyang Yu, Honglin Wang et al.FSE 2021 · 89 citations
- Test-case prioritization for configuration testingRunxiang Cheng, Lingming Zhang, Darko Marinov, Tianyin XuISSTA 2021 · 34 citations
- Static detection of silent misconfigurations with deep interaction analysisJialu Zhang, Ruzica Piskac, Ennan Zhai, Tianyin XuOOPSLA 2021 · 30 citations
- OPPerTune: Post-Deployment Configuration Tuning of Services Made EasyGagan Somashekar, Karan Tandon, Anush Kini, Chieh-Chun Chang et al.NSDI 2024 · 24 citations
- An Evolutionary Study of Configuration Design and Implementation in Cloud SystemsYuanliang Zhang, Haochen He, Owolabi Legunsen, Shanshan Li et al.ICSE 2021 · 19 citations
Related papers
- Understanding and Detecting Query Performance Regression in Practical Index Tuning: [Experiments & Analysis]Wentao Wu, Anshuman Dutt, Gaoxiang Xu, Vivek R. Narasayya et al.SIGMOD 2026
- Learning Patterns in ConfigurationRanjita Bhagwan, Sonu Mehta, Arjun Radhakrishna, Sahil GargASE 2021 · 11 citations
- SPINFER: Inferring Semantic Patches for the Linux KernelLucas Serrano, Van-Anh Nguyen, Ferdian Thung, Lingxiao Jiang et al.USENIX ATC 2020 · 16 citations
- Inferring and Applying Def-Use Like Configuration Couplings in Deployment DescriptorsChengyuan Wen, Yaxuan Zhang, Xiao He, Na MengASE 2020 · 3 citations
- FBDetect: Catching Tiny Performance Regressions at Hyperscale through In-Production MonitoringDong Young Yoon, Yang Wang, Miao Yu, Elvis Huang et al.SOSP 2024 · 5 citations
