private void readIds()

in azure-documentdb-benchmark/src/main/java/com/microsoft/azure/documentdb/benchmark/SimpleTests.java [402:442]


    private void readIds() throws IOException {
        ConnectionPolicy connectionPolicy = new ConnectionPolicy();
        connectionPolicy.setConnectionMode(ConnectionMode.valueOf(connectionMode));
        List<String> regions = Arrays.asList(preferredRegions.split(";"));
        connectionPolicy.setPreferredLocations(regions);
        client = new DocumentClient(endpoint, key, connectionPolicy, ConsistencyLevel.valueOf(consistencyLevel));

        final String collectionLink = String.format("dbs/%s/colls/%s", dbName, collectionName);

        List<PartitionKeyRange> partitionKeyRanges = client.readPartitionKeyRanges(collectionLink, (FeedOptions) null)
                .getQueryIterable().toList();

        List<String> ids = new ArrayList<>();

        for (PartitionKeyRange r : partitionKeyRanges) {
            FeedOptions feedOptions = new FeedOptions();
            feedOptions.setPartitionKeyRangeIdInternal(r.getId());
            feedOptions.setPageSize(1);
            try {
                List<Document> docs = client.readDocuments(collectionLink, feedOptions).getQueryIterable().fetchNextBlock();
                for (Document doc : docs) {
                    ids.add(doc.getId());
                }
            } catch (DocumentClientException e) {
                logger.error("Failed to read documents from partition {}", r.getId());
            }
        }

        if (StringUtils.isEmpty(docIdFilePath)) {
            logger.error("IDs file path is empty");
            return;
        }

        PrintWriter writer = new PrintWriter(new FileWriter(docIdFilePath));

        for (String idString : ids) {
            writer.println(idString);
        }

        writer.close();
    }