public ServerErrorCode triggerCompaction(DataNodeId dataNodeId, PartitionId partitionId)
      throws IOException, TimeoutException {
    AdminRequest adminRequest =
        new AdminRequest(AdminRequestOrResponseType.TriggerCompaction, partitionId, correlationId.incrementAndGet(),
            CLIENT_ID);
    ResponseInfo response = sendRequestGetResponse(dataNodeId, partitionId, adminRequest);
    AdminResponse adminResponse = AdminResponse.readFrom(new NettyByteBufDataInputStream(response.content()));
    response.release();
    return adminResponse.getError();
  }
Triggers compaction on {@code dataNodeId} for the partition defined in {@code partitionIdStr}.
@param dataNodeId the {@link DataNodeId} to contact.
@param partitionId the {@link PartitionId} to compact.
@return the {@link ServerErrorCode} that is returned.
@throws IOException
@throws TimeoutException
ambry-tools/src/main/java/com/github/ambry/tools/admin/ServerAdminTool.java