@Override
  public void returnData(ColumnVectorBatch data) {
    //In case a writer has a lock on any of the vectors we don't return it to the pool.
    for (ColumnVector cv : data.cols) {
      if (cv != null && cv.getRef() > 0) {
        return;
      }
    }
    cvbPool.offer(data);
  }
Returns the ECB to caller for reuse. Only safe to call if the thread is the only owner
of the ECB in question; or, if ECB is still in pendingData, pendingData must be locked.
llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java