public synchronized boolean increaseReferenceCount(final String holderMessage) {
    boolean isSuccessful = true;

    if (isReleased.get()) {
      LOGGER.warn(
          "re-increase reference count to event that has already been released: {}, stack trace: {}",
          coreReportMessage(),
          Thread.currentThread().getStackTrace());
      isSuccessful = false;
      return isSuccessful;
    }

    if (referenceCount.get() == 0) {
      // We assume that this function will not throw any exceptions.
      isSuccessful = internallyIncreaseResourceReferenceCount(holderMessage);
    }

    if (isSuccessful) {
      if (referenceCount.incrementAndGet() == 1
          && PipeConfig.getInstance().getPipeEventReferenceTrackingEnabled()) {
        trackResource();
      }
    } else {
      LOGGER.warn(
          "increase reference count failed, EnrichedEvent: {}, stack trace: {}",
          coreReportMessage(),
          Thread.currentThread().getStackTrace());
    }

    return isSuccessful;
  }
Increase the {@link EnrichedEvent#referenceCount} of this event. When the {@link
EnrichedEvent#referenceCount} is positive, the data in the resource of this {@link
EnrichedEvent} should be safe to use.

@param holderMessage the message of the invoker
@return {@code true} if the {@link EnrichedEvent#referenceCount} is increased successfully,
    {@code false} otherwise
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/event/EnrichedEvent.java