private PutAllEntryData[] selectVersionedEntries() {
    int resultSize = 0;
    for (PutAllEntryData p : putAllData) {
      if (p == null || p.isInhibitDistribution()) {
        continue; // skip blanks
      } else if (p.versionTag != null && p.versionTag.hasValidVersion()) {
        resultSize++;
      }
    }
    PutAllEntryData[] result = new PutAllEntryData[resultSize];
    int ri = 0;
    for (PutAllEntryData p : putAllData) {
      if (p == null || p.isInhibitDistribution()) {
        continue; // skip blanks
      } else if (p.versionTag != null && p.versionTag.hasValidVersion()) {
        result[ri++] = p;
      }
    }
    return result;
  }
Create PutAllPRMessages for primary buckets out of dpao

@return a HashMap contain PutAllPRMessages, key is bucket id
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java