This project implements functionality to allow indexes to be hidden from the query planner.
As MongoDB users evolve schemas and tune performance, they are often in a position where dropping an index could improve query performance and reduce collection overhead. However, dropping an index comes with the risk that an application or script may depend on an index for acceptable performance and recreating can take substantial time.
Allowing users to hide an index provides the opportunity to evaluate impact on user workloads. Restoring the index can then be done quickly, without having to undergo the time and expense of a full index build.
Additionally, adding an index can cause a negative change in performance, if the query planner starts using the new index over a preferable existing index. Creating an index that is hidden on build completion allows users to make it visible at a suitable time for evaluation.
Hiding an index only allows for plan selection evaluation and does not reduce the cost of maintenance. Index removal will still be required to reclaim disk space and improve write performance.
Cast of Characters
- Product Owner: Katya Kamenieva
- Project Lead: James Wahlin
- Program Manager: Craig Homa
Technical Design Document