docs: private List<Key> getScatterKeys(
        int numSplits, Query query, PartitionId partition, Datastore datastore)
        throws DatastoreException {
      Query.Builder scatterPointQuery = createScatterQuery(query, numSplits);
  
      List<Key> keySplits = new ArrayList<Key>();
  
      QueryResultBatch batch;
      do {
        RunQueryRequest scatterRequest =
            RunQueryRequest.newBuilder()
                .setPartitionId(partition)
                .setQuery(scatterPointQuery)
                .build();
        batch = datastore.runQuery(scatterRequest).getBatch();
        for (EntityResult result : batch.getEntityResultsList()) {
          keySplits.add(result.getEntity().getKey());
        }
        scatterPointQuery.setStartCursor(batch.getEndCursor());
        scatterPointQuery.getLimitBuilder().setValue(
            scatterPointQuery.getLimit().getValue() - batch.getEntityResultsCount());
      } while (batch.getMoreResults() == MoreResultsType.NOT_FINISHED);
      Collections.sort(keySplits, DatastoreHelper.getKeyComparator());
      return keySplits;
    }