public synchronized void push(E element) {
    if (element == null) {
      throw new NullPointerException("pushed element is null");
    }
    Preconditions.checkState(size < capacity, TOO_MANY_CONCURRENT_QUERIES_ERROR_MSG);
    pushToQueue(element);
    size++;
    this.notifyAll();
  }
Push an element to the queue. The new element position is determined by the implementation. If
the queue size has been reached the maxCapacity, or the queue has already contained an element
with the same ID, an {@link IllegalStateException} will be thrown. If the element is null, an
{@link NullPointerException} will be thrown.

@param element the element to be pushed.
@throws NullPointerException the pushed element is null.
@throws IllegalStateException the queue size has been reached the maxCapacity, or the queue has
    already contained the same ID element .
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/queue/IndexedBlockingQueue.java