为什么RU数量会改变我的CosmosDB结果集大小?

时间:2018-05-16 07:32:40

标签: c# .net azure azure-cosmosdb

这个让我完全不知所措。

上下文:我在CosmosDB上运行存储过程,如果有多个“页面”数据(其中至少会有少量数据),它会返回结果集和连续令牌。我的收藏中总共有65,000条记录。对于最后一个“页面”,延续令牌应该(并且确实)从CosmosDB返回NULL,表示已经返回了我的整个集合。

我的问题: 当我将我的CosmosDB集合的RU设置为最小值(400)时,数据集会很好,连续下一页的标记也会很好,而且一切都很好。一旦我提高了我的RU(为了加快查询执行速度),延续令牌就会在前几个“页面”中完成,但在整个数据集的中途突然返回NULL。

这是我的存储过程:

function count(continuationToken) {
var filterQuery = 'select c.id from c where c.Type = 0';
var collection = getContext().getCollection();
var maxResult = 900000;
var result = [];
tryQuery(continuationToken);

function tryQuery(nextContinuationToken) {
    var responseOptions = { continuation: nextContinuationToken, pageSize: maxResult };
    if (result.length >= maxResult || !query(responseOptions)) {
        setBody(nextContinuationToken);
    }
}
function query(responseOptions) {
    return collection.queryDocuments(collection.getSelfLink(), filterQuery, responseOptions, onReadDocuments);
}
function onReadDocuments(err, docFeed, responseOptions) {
    if (err) {
        throw 'Error while reading document: ' + err;
    }
    result.push(docFeed);
    if (responseOptions.continuation) {
        tryQuery(responseOptions.continuation);
    } else {
        setBody(null);
    }
}
function setBody(continuationToken) {
    var body = { records: result, continuationToken: continuationToken };        
    getContext().getResponse().setBody(body);
}
}

有没有人对这里可能出现的问题有任何想法?对我来说,RUs应该对从CosmosDB集合返回的数据量产生影响是没有意义的。

非常感谢任何帮助,谢谢!

0 个答案:

没有答案