Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-36888

Performance regression of operations in multi-document transactions required to check index catalog metadata more frequently

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.6
    • Affects Version/s: 4.0.1, 4.1.1
    • Component/s: Storage
    • Storage Execution
    • Fully Compatible
    • ALL
    • 0

      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.

            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            louis.williams@mongodb.com Louis Williams
            0 Vote for this issue
            6 Start watching this issue