code: @Override
      public void seek(Slice targetKey)
      {
          if (restartCount == 0) {
              return;
          }
  
          int left = 0;
          int right = restartCount - 1;
  
          // binary search restart positions to find the restart position immediately before the targetKey
          while (left < right) {
              int mid = (left + right + 1) / 2;
  
              seekToRestartPosition(mid);
  
              if (comparator.compare(nextEntry.getKey(), targetKey) < 0) {
                  // key at mid is smaller than targetKey.  Therefore all restart
                  // blocks before mid are uninteresting.
                  left = mid;
              }
              else {
                  // key at mid is greater than or equal to targetKey.  Therefore
                  // all restart blocks at or after mid are uninteresting.
                  right = mid - 1;
              }
          }
  
          // linear search (within restart block) for first key greater than or equal to targetKey
          for (seekToRestartPosition(left); nextEntry != null; next()) {
              if (comparator.compare(peek().getKey(), targetKey) >= 0) {
                  break;
              }
          }
  
      }
docs: Repositions the iterator so the key of the next BlockElement returned greater than or equal to the specified targetKey.