@Override
  public void deallocate(MemoryBuffer buffer) {
    LlapAllocatorBuffer buf = (LlapAllocatorBuffer)buffer;
    int arenaToRelease = buf.invalidateAndRelease();
    if (arenaToRelease < 0) return; // The block is being moved; the move will release memory.
    long memUsage = buf.getMemoryUsage();
    arenas[arenaToRelease].deallocate(buf, false);
    memoryManager.releaseMemory(memUsage);
  }
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