public synchronized boolean clearReferenceCount(final String holderMessage) {
    if (isReleased.get()) {
      return false;
    }

    if (referenceCount.get() >= 1) {
      shouldReportOnCommit = false;
      // We assume that this function will not throw any exceptions.
      if (!internallyDecreaseResourceReferenceCount(holderMessage)) {
        LOGGER.warn(
            "resource reference count is decreased to 0, but failed to release the resource, EnrichedEvent: {}, stack trace: {}",
            coreReportMessage(),
            Thread.currentThread().getStackTrace());
      }
    }

    referenceCount.set(0);
    isReleased.set(true);
    return true;
  }
Decrease the {@link EnrichedEvent#referenceCount} of this {@link EnrichedEvent} to 0, to
release the {@link EnrichedEvent} directly. The {@link EnrichedEvent} can be recycled and the
data stored in the {@link EnrichedEvent} may not be safe to use.

@param holderMessage the message of the invoker
@return {@code true} if the {@link EnrichedEvent#referenceCount} is cleared successfully,
    {@code false} otherwise; {@link EnrichedEvent#referenceCount} will be reset to zero
    regardless of the circumstances
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/event/EnrichedEvent.java