Map<byte[], List<byte[]>> findLower(Map<byte[], Long> sequenceids) {
    Map<byte[], List<byte[]>> toFlush = null;
    // Keeping the old behavior of iterating unflushedSeqNums under oldestSeqNumsLock.
    synchronized (tieLock) {
      for (Map.Entry<byte[], Long> e : sequenceids.entrySet()) {
        Map<ImmutableByteArray, Long> m = this.lowestUnflushedSequenceIds.get(e.getKey());
        if (m == null) {
          continue;
        }
        for (Map.Entry<ImmutableByteArray, Long> me : m.entrySet()) {
          // FLUSH events produce an entry in the wal with a "fake" METAFAMILY CF. We need to ignore
          // these entries here, as there is actual no such store.
          if (me.getKey().toString().equals("METAFAMILY")) {
            continue;
          }
          if (me.getValue() <= e.getValue()) {
            if (toFlush == null) {
              toFlush = new TreeMap(Bytes.BYTES_COMPARATOR);
            }
            toFlush.computeIfAbsent(e.getKey(), k -> new ArrayList<>())
              .add(Bytes.toBytes(me.getKey().toString()));
          }
        }
      }
    }
    return toFlush;
  }
Iterates over the given Map and compares sequence ids with corresponding entries in
{@link #lowestUnflushedSequenceIds}. If a region in {@link #lowestUnflushedSequenceIds} has a
sequence id less than that passed in <code>sequenceids</code> then return it.
@param sequenceids Sequenceids keyed by encoded region name.
@return stores of regions found in this instance with sequence ids less than those passed in.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java