public int decRef() {
    long newState, oldState;
    do {
      oldState = state.get();
      // We have to check it here since invalid decref will overflow.
      int oldRefCount = State.getRefCount(oldState);
      if (oldRefCount == 0) {
        throw new AssertionError("Invalid decRef when refCount is 0: " + this);
      }
      newState = State.decRefCount(oldState);
    } while (!state.compareAndSet(oldState, newState));
    int newRefCount = State.getRefCount(newState);
    if (LlapIoImpl.LOCKING_LOGGER.isTraceEnabled()) {
      LlapIoImpl.LOCKING_LOGGER.trace("Unlocked {}; refcount {}", this, newRefCount);
    }
    return newRefCount;
  }
Allocator uses this to remember the allocation size. Somewhat redundant with header.
llap-server/src/java/org/apache/hadoop/hive/llap/cache/LlapAllocatorBuffer.java