-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: 6.0.0, 7.0.0, 7.3.0, 8.1.0-rc0, 8.0.0-rc16
-
Component/s: None
-
None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
v8.0, v7.3, v7.0, v6.0
-
CAR Team 2024-08-19
-
0
Context:
Our performance test showed that SERVER-91195 is causing a regression of 15%.
After an investigation, we have concluded that the changes for getTimeseriesBucketsMayHaveMixedSchemaData are responsible for the regression. The method runs for every time-series CRUD operations, and it had been changed in SERVER-91195 to get the value from a flag set in the storageEngine bson object at every iteration, instead of returning the cached in memory value that could be eventually wrong.
Our local benchmark showed the old implementation was around ~200x times faster. The new implementation relies on parsing a bson field, which can be quite slow compared to simply returning a cached value.
Solution:
The parsing of the document could be done only once in the constructor of CollectionImpl and then cached as before. This should both fix SERVER-91195 and revert the regression.
- is caused by
-
SERVER-91195 Provide a generic backportable solution not to miss top-level timeseries collection options
- Closed
- is related to
-
SERVER-93350 Refactor BSONCollectionCatalogEntry::MetaData to encapsulate the logic for correctly loading the timeseries flag.
- Backlog