code: public Iterator<Entry<K, V>> iterator(int fetchSize, int partitionId, boolean prefetchValues) {
          return new ClientMapPartitionIterator<K, V>(this, getContext(), fetchSize, partitionId, prefetchValues);
      }
docs: Returns an iterator for iterating entries in the {@code partitionId}. If {@code prefetchValues} is
  {@code true}, all values will be sent along with the keys and no additional data will be fetched when
  iterating. If {@code false}, the values will be fetched when iterating the entries.
  <p>
  The values are not fetched one-by-one but rather in batches.
  You may control the size of the batch by changing the {@code fetchSize} parameter.
  A too small {@code fetchSize} can affect performance since more data will have to be sent to and from the partition owner.
  A too high {@code fetchSize} means that more data will be sent which can block other operations from being sent,
  including internal operations.
  The underlying implementation may send more values in one batch than {@code fetchSize} if it needs to get to
  a "safepoint" to later resume iteration.
  <p>
  <b>NOTE</b>
  Iterating the map should be done only when the {@link IMap} is not being
  mutated and the cluster is stable (there are no migrations or membership changes).
  In other cases, the iterator may not return some entries or may return an entry twice.
  
  @param fetchSize   the size of the batches which will be sent when iterating the data
  @param partitionId the partition ID which is being iterated
  @return the iterator for the projected entries