private synchronized EvictionNode moveToTailAndGetNext(EvictionNode evictionNode) {
    EvictionNode next = evictionNode.next();
    if (next != null && next != tail) {
      EvictionNode previous = evictionNode.previous();
      next.setPrevious(previous);
      previous.setNext(next);
      evictionNode.setNext(tail);
      tail.previous().setNext(evictionNode);
      evictionNode.setPrevious(tail.previous());
      tail.setPrevious(evictionNode);
    }
    return next;
  }
Determine who/when should invoke scan. Maybe when 10% of the RegionEntries have been dirtied by
{@link RegionEntry#setRecentlyUsed(RegionEntryContext)}.

Determine when to stop scanning.
geode-core/src/main/java/org/apache/geode/internal/cache/eviction/LRUListWithAsyncSorting.java