synchronized void add(final LRUCacheEntry<SK, V> cacheEntry) {
      LRUCacheEntry<SK, V> nextEntry;

      do {
        nextEntry = head.next;
      } while (nextEntry.isInvalidated.get());

      cacheEntry.next = head.next;
      cacheEntry.pre = head;
      head.next.pre = cacheEntry;
      head.next = cacheEntry;
    }
This class implements the cache entry manager with LRU policy.

@param <FK> The first key of cache value.
@param <SK> The second key of cache value.
@param <V> The cache value.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/LRUCacheEntryManager.java