final int evictableBaseIndex = getEvictionStartIndex(criterias, evictableSize);
final long criteriaValue = criterias[evictableBaseIndex];
int evictedRecordCounter = 0;
final Iterator<Record> iterator = recordStore.iterator();
while (iterator.hasNext()) {
final Record record = iterator.next();
final long value = getEvictionCriteriaValue(record, evictionPolicy);
if (value <= criteriaValue) {
final Data tmpKey = record.getKey();
final Object tmpValue = record.getValue();
if (evictIfNotLocked(tmpKey, recordStore, backup)) {
evictedRecordCounter++;
final String mapName = mapConfig.getName();
if (!backup) {
interceptAndInvalidate(mapServiceContext, value, tmpKey, mapName);