@Override
  public void deallocateEvicted(MemoryBuffer buffer) {
    LlapAllocatorBuffer buf = (LlapAllocatorBuffer)buffer;
    assert buf.isInvalid();
    int arenaToRelease = buf.releaseInvalidated();
    if (arenaToRelease < 0) return; // The block is being moved; the move will release memory.
    arenas[arenaToRelease].deallocate(buf, false);
    // Note: for deallocateEvicted, we do not release the memory to memManager; it may
    // happen that the evictor tries to use the allowance before the move finishes.
    // Retrying/more defrag should take care of that.
  }
Arbitrarily, we start getting the state from Allocator. Allocator calls MM which calls
the policies that call the eviction dispatcher that calls the caches. See init - these all
are connected in a cycle, so we need to make sure the who-calls-whom order is definite.
llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java