storage_validation::storageValid is called by ObjectReplaceExecutor::applyReplacementUpdate even when validateForStorage is set to false. It scans the bucket document for . or $ characters in field names. As the bucket document grows this gets slower and slower and we basically have quadratic time complexity.
None of this should be needed for timeseries updates as we control the data. We should have a way to skip this. Commenting out the line gives 60% better single threaded insert performance using tsbs.
- is caused by
-
SERVER-56755 Collect and expose statistics for insert and updates with dots and dollars fields
- Closed
- related to
-
SERVER-60176 Delta-updates should only validate the diff for storage
- Closed
-
SERVER-61587 Research potential improvements in document validation for storage
- Closed