-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
v6.0
-
QE 2022-09-19, QE 2022-10-03, QE 2022-10-17, QE 2022-10-31, QE 2022-11-14, QE 2022-11-28, QE 2022-12-12, QE 2022-12-26
-
114
-
5
Right now when we do an update the index layer gets the pre- and post-image document of the update. Then it will extract keys from both and perform a symmetric set difference to see which keys need to be added or removed updated in the index. And it does this for each index. This is wasteful for two reasons:
- We should be able to completely skip over indexes of fields that didn't change.
- For indexes that cover multiple paths independently (eg wildcard and columnar, but not text), they can completely skip over fields that they know didn't change.
Since most updates don't update most fields, most of the index work we do on updates is wasteful work to detect which fields didn't change.
- is depended on by
-
SERVER-70984 Decouple the concepts "in-place updates" and "index updates"
- Closed
- is related to
-
SERVER-47140 Use diffing for full document replacement updates
- Backlog
- related to
-
SERVER-74136 UpdateDriver can miss index update
- Closed