IndexEntry getFirstPutEntry() throws StoreException {
    rwLock.readLock().lock();
    try {
      if (sealed.get()) {
        return sealedIndex.getFirstPutEntry();
      }
      for (Map.Entry<StoreKey, ConcurrentSkipListSet<IndexValue>> entry : index.entrySet()) {
        Set<IndexValue> values = entry.getValue();
        for (IndexValue value : values) {
          if (value.isPut()) {
            return new IndexEntry(entry.getKey(), new IndexValue(value));
          }
        }
      }
      // There is no put in this index segment
      return null;
    } finally {
      rwLock.readLock().unlock();
    }
  }
Return the first put entry in this segment. Return null if there is no put entry.
@return
@throws StoreException
ambry-store/src/main/java/com/github/ambry/store/IndexSegment.java