Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-16533

Investigate changes in SERVER-82970: Remove cursor cache from server as WiredTiger already caches cursor

    XMLWordPrintableJSON

Details

    Description

      Original Downstream Change Summary

      The config wiredTigerCursorCacheSize is removed.

      Description of Linked Ticket

      I noticed that there is also a cursor cache in server.

      WT_CURSOR* WiredTigerSession::getCachedCursor(uint64_t id, const std::string& config) {
          // Find the most recently used cursor
          for (CursorCache::iterator i = _cursors.begin(); i != _cursors.end(); ++i) {
              // Ensure that all properties of this cursor are identical to avoid mixing cursor
              // configurations. Note that this uses an exact string match, so cursor configurations with
              // parameters in different orders will not be considered equivalent.
              if (i->_id == id && i->_config == config) {
                  WT_CURSOR* c = i->_cursor;
                  _cursors.erase(i);
                  _cursorsOut++;
                  return c;
              }
          }
          return nullptr;
      }
      

      Given that we already have a cursor cache in WiredTiger. I feel this is inefficient and we are duplicating our effort.

      Review the background why we do this in server and whether it is beneficial to remove the cache from server and let WiredTiger to handle the cursor cache.

      Attachments

        Activity

          People

            Unassigned Unassigned
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              7 weeks, 6 days ago