Я работаю над API, который получит много хитов, поэтому я его кешировал. Каждый вызов будет иметь набор идентификаторов, которые должны быть переданы в самом запросе, и я не могу использовать пакет для получения элементов из-за проблем с дизайном. Поэтому я вызываю операцию get несколько раз для всех eventIds
async function getSummaryFromDax(id) {
const perf = perfMeasure({enable: true});
let params = {
TableName: Table,
Key: {
id
}
};
//todo dax not working as expected.
perf("parallel");
const result = await daxCacheClient.get(params).promise();
perf("parallel");
return {result: result.Item,perf: perf._summary};
}
Эта функция проверяет функциональность. Я просто жестко закодировал идентификатор.
const {queryStringParameters= {}} = event;
const {calls = 1, id = "CwjPJ4rcdIOOi3yFhpHhDiHzHKo-w8aRaVAYR"} = queryStringParameters;
dummy.length = calls;
dummy.fill(id);
const proms = dummy.map(async id=>{
return getSummaryFromDax(id)
})
const response = await Promise.all(proms);
perf("handler");
Если звонки = 1 , значит, будет получен вызов на 1 дБ. Время, необходимое для получения ответа БД, составляет 2 мс . Когда я увеличиваю количество вызовов, скажем, 100 , я получаю среднюю производительность 200 мс за каждая операция get. Почему это происходит?