@Override
    public void run() {
      if (request.isEmpty()) {
        throw new IllegalArgumentException("No entities set to trigger eviction on.");
      }
      try {
        LlapManagementProtocolClientImpl client = new LlapManagementProtocolClientImpl(conf, instance.getHost(),
            instance.getManagementPort(), retryPolicy, socketFactory);

        List<LlapDaemonProtocolProtos.EvictEntityRequestProto> protoRequests = request.toProtoRequests();

        long evictedBytes = 0;
        for (LlapDaemonProtocolProtos.EvictEntityRequestProto protoRequest : protoRequests) {
          LOG.debug("Requesting proactive eviction for entities in database {}", protoRequest.getDbName());
          LlapDaemonProtocolProtos.EvictEntityResponseProto response = client.evictEntity(null, protoRequest);
          evictedBytes += response.getEvictedBytes();
          LOG.debug("Proactively evicted {} bytes", response.getEvictedBytes());
        }
        LOG.debug("Proactive eviction freed {} bytes on LLAP daemon {} in total", evictedBytes, instance);
      } catch (Exception e) {
        LOG.warn("Exception while requesting proactive eviction.", e);
      }
    }
The executable task to carry out request sending.
ql/src/java/org/apache/hadoop/hive/llap/ProactiveEviction.java