Creating a Virtuous Cycle in Performance Testing at MongoDB
This work addresses performance testing challenges for MongoDB's development team, but it is incremental as it builds on existing continuous integration systems.
The paper tackles the problem of detecting performance regressions in software development at MongoDB by improving their performance testing environment, resulting in faster software and avoidance of major performance regressions for customers.
It is important to detect changes in software performance during development in order to avoid performance decreasing release to release or dealing with costly delays at release time. Performance testing is part of the development process at MongoDB, and integrated into our continuous integration system. We describe a set of changes to that performance testing environment designed to improve testing effectiveness. These changes help improve coverage, provide faster and more accurate signaling for performance changes, and help us better understand the state of performance. In addition to each component performing better, we believe that we have created and exploited a virtuous cycle: performance test improvements drive impact, which drives more use, which drives further impact and investment in improvements. Overall, MongoDB is getting faster and we avoid shipping major performance regressions to our customers because of this infrastructure.