private void pinMNodeWithMemStatusUpdate(ICachedMNode node) {
    CacheEntry cacheEntry = getCacheEntry(node);
    // update memory status first
    if (cacheEntry == null) {
      memoryStatistics.requestPinnedMemResource(node);
      nodeCache.initCacheEntryForNode(node);
    } else if (!cacheEntry.isPinned()) {
      memoryStatistics.upgradeMemResource(node);
    }
    doPin(node);
  }
Pin a node in memory, and it will not be evicted. The pin is implemented as a multi mayer lock.
When a thread/task pin the node, one mayer lock will be added to the node and its parent. This
help guarantees the cache assumption that if a node is cached/pinned, its parent should be
cached/pinned.

@param node
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/memory/MemoryManager.java