code: public long waitForZkTxId(long zkTxId, Object timeout)
      throws TimeoutException, InterruptedException
    {
      long endTime = ClockUtils.toEndTime(clock, timeout);
  
      synchronized(_lock)
      {
        while(_lastZkTxId < zkTxId)
        {
          ConcurrentUtils.awaitUntil(clock, _lock, endTime);
        }
  
        return _lastZkTxId;
      }
    }
docs: Waits no longer than the timeout provided (or forever if <code>null</code>) for this tracker
  to have seen at least the provided zookeeper transaction id
  @return the last known zkTxId (guaranteed to be &gt;= to zkTxId)