@Override
  public ByteString getContent() {
    if (serializedData.get() == null) {
      synchronized (this) {
        if (serializedData.get() == null) {
          assert contentHolder instanceof TSStatus;
          TSStatus status = (TSStatus) contentHolder;
          try {
            serializedData.set(ByteString.copyFrom(Utils.serializeTSStatus(status)));
          } catch (TException e) {
            logger.warn("serialize TSStatus failed {}", status);
          }
        }
      }
    }
    return serializedData.get();
  }
This content holder may hold 1. TSStatus, which may be serialized when called getContent() 2.
DataSet, which never need to be serialized
iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ResponseMessage.java