[SERVER-36888] Performance regression of operations in multi-document transactions required to check index catalog metadata more frequently Created: 27/Aug/18  Updated: 29/Oct/23  Resolved: 27/Nov/18

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: 4.0.1, 4.1.1
Fix Version/s: 4.1.6

Type: Bug Priority: Major - P3
Reporter: Louis Williams Assignee: Backlog - Storage Execution Team
Resolution: Fixed Votes: 0
Labels: nyc
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
related to SERVER-37263 New IAM for hybrid Closed
Assigned Teams:
Storage Execution
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:
Linked BF Score: 0

 Description   

A performance regression for operations in multi-document transactions was introduced by both SERVER-35789 and SERVER-36005. These changes require all callers of IndexCatalogEntry::isReady to confirm that the catalog metadata on-disk is consistent with the in-memory version. This method is called any time the query system uses, or considers using any single index.

In certain bulk update workloads, the effects of both commits showed a combined regression of up to a 38% decrease in write throughput compared to previous test runs.

This was previously a DEV invariant that was only executed in Debug builds. It used to be a fairly inexpensive call, but it's prevalence in code accompanied with its performance hit caused quite a significant regression.



 Comments   
Comment by Louis Williams [ 27/Nov/18 ]

This regression has been fixed by the index catalog iterator refactor introduced in SERVER-37263

Comment by Ian Whalen (Inactive) [ 31/Aug/18 ]

This probably won't require any specific/dedicated work in 4.1, but the intent is for the Simultaneous Indexing on All Nodes project to introduce a fix for this in 4.1. Just need to double check on this fact before closing this ticket.

Generated at Thu Feb 08 04:44:22 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.