docs: public QueryableEntriesSegment run(String mapName, Predicate predicate, int partitionId, int tableIndex, int fetchSize) {
          int lastIndex = tableIndex;
          final List<QueryableEntry> resultList = new LinkedList<>();
          final PartitionContainer partitionContainer = mapServiceContext.getPartitionContainer(partitionId);
          final RecordStore recordStore = partitionContainer.getRecordStore(mapName);
          final Extractors extractors = mapServiceContext.getExtractors(mapName);
  
          while (resultList.size() < fetchSize && lastIndex >= 0) {
              final MapEntriesWithCursor cursor = recordStore.fetchEntries(lastIndex, fetchSize - resultList.size());
              lastIndex = cursor.getNextTableIndexToReadFrom();
              final Collection<? extends Entry<Data, Data>> entries = cursor.getBatch();
              if (entries.isEmpty()) {
                  break;
              }
              for (Entry<Data, Data> entry : entries) {
                  QueryableEntry queryEntry = new LazyMapEntry(entry.getKey(), entry.getValue(), serializationService, extractors);
                  if (predicate.apply(queryEntry)) {
                      resultList.add(queryEntry);
                  }
              }
          }
          return new QueryableEntriesSegment(resultList, lastIndex);
      }