Кассандра в кластере - 1000 запросов в 1 с [1000 мс] - PullRequest
0 голосов
/ 08 мая 2019

Я хотел бы запросить одну и ту же базу данных (со скриптом) 1000 раз за 1 с.

Итак, я провел симуляционный тест с помощью nodejs для цикла.Я отправил 50 запросов, но ответ пришел очень медленно, примерно за 400 мс

Я использую просто цикл - количество запросов

setInterval - количество запросов 1k-1s

Мой вопрос: возможно ли выполнить 1000 запросов за 1 с, даже как-то форсировать?Я также хотел бы проверить, как база данных работает на большее количество запросов (10000, 100000).Логика заключается в том, что база данных возвращает состояние занятости.

funcname(){
.
 for(var i=0;i<50; i++) {
.
.
   client[ randomHostId ].execute(query, 
     [ ids[ Math.floor(Math.random() *   1000) ] ], 
     { prepare: true },function (err, result) {...})
.
.
}
const time = setInterval(funcname, 1000);

1 Ответ

0 голосов
/ 08 мая 2019

В приведенном вами примере код выполняет то, что обычно называют «запустить и забыть»: запускать кучу операций и не ожидать результата для запуска новых.

Обычно вам нужно контролировать количество операций, которые выполняются параллельно. Вы можете достичь этого, используя популярные библиотеки потоков управления, такие как bluebird или async утилиты .

В репозитории также есть пример того, как вставить большое количество строк в таблицу, ограничивающее количество параллельных запросов: https://github.com/datastax/nodejs-driver/blob/master/examples/concurrent-executions/execute-in-loop.js

Существует также встроенный драйвер API для параллельных утилит, который может помочь вам: https://docs.datastax.com/en/developer/nodejs-driver/4.1/features/concurrent-api/

const query = 'INSERT INTO table1 (id, value) VALUES (?, ?)';
const parameters = [[1, 'a'], [2, 'b'], [3, 'c'], ]; // ...
const result = await executeConcurrent(client, query, parameters);

Смотри также: https://stackoverflow.com/a/54810019/208683

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...