private void printConfigInformation() {
    if (batchSize == 0) {
      LOG.info("Query History batch size is 0: every record will be flushed synchronously after the query" +
          " (not recommended)");
    } else {
      LOG.info("Query History batch size is {}: records will be flushed after every {} queries",
          batchSize, batchSize);
    }
    if (maxQueueSizeInMemoryBytes == 0) {
      LOG.info("Query History max queue memory byte size is 0: the service won't check the consumed memory to make " +
          "flush decision (not recommended)");
    } else {
      LOG.info("Query History max queue memory byte size is {}: records will be flushed when the queue consumes " +
              "more than {} bytes in the memory",
          maxQueueSizeInMemoryBytes, maxQueueSizeInMemoryBytes);
    }

    if (flushInterval == 0) {
      LOG.info("Query History flush interval size is 0: the service won't check for records to flush periodically");
    } else {
      LOG.info("Query History flush interval is {}s: service will attempt to flush records in every {}s",
          flushInterval, flushInterval);
    }
  }
Start method actually starts the service in a sense that it initializes the repository (which might involve
database operations) and starts the executor that's responsible for flushing records.
ql/src/java/org/apache/hadoop/hive/ql/queryhistory/QueryHistoryService.java