RethinkDB обновляет производительность транзакций

Я новичок здесь, а также новичок в rethinkdb. Прежде всего, извините за мой плохой английский, и у меня есть вопросы о производительности транзакций обновления rethinkdb.

Я использую Nodejs с Native JS API rethinkdb. Мне нужно обработать поток файлов чтения и обновить данные в rethinkdb. После того, как я получил данные и отфильтровал их с помощью 1k строк, я отправил их на обновление в rethinkdb. Затем сервер nodejs с socketio запускает функцию changefeed.

Это занимает 1 секунду/1000 транзакций. (SSD-накопитель)

r.table('mds').getAll(data.symbol, { index : "symbol" }).update({ price : data.price, update_date : moment().format('YYYY-MM-DD HH:mm:ss') }, { returnChanges : false}).run(conn, function(err, cursor)....

Обычно это нормально для производительности обновления rethinkdb? Может быть быстрее? Или я ошибаюсь в запросе или условиях?


person Pikachu    schedule 22.06.2016    source источник
comment
можно найти ответ на вопрос или нет? Я также сталкиваюсь с той же проблемой медленного запроса обновлений.   -  person Dipak    schedule 13.02.2018


Ответы (1)


Сколько строк возвращается одним из этих вызовов getAll? В зависимости от количества строк, измененных в каждой транзакции, 1000 транзакций в секунду может быть или не быть разумным.

Если количество строк в каждой транзакции невелико, вы, вероятно, должны получить более высокую производительность. Одна вещь, которую вы можете попробовать, это включить мягкую долговечность для записей. Если это не поможет (или если вам нужна высокая устойчивость), единственное, что можно сделать, это добавить больше серверов RethinkDB в ваш кластер и разбить вашу таблицу на них.

person mlucy    schedule 22.06.2016
comment
Сколько строк возвращается одним из этих вызовов getAll? - Это около 2 тыс. строк. Я не могу использовать мягкую долговечность, потому что мне нужно использовать функцию Changefeed. Тогда он не будет возвращать результаты. Однако я также использую контейнер докеров для rethinkdb, поэтому я попытаюсь настроить другой контейнер для тестирования кластера и так далее. Спасибо за ваше предложение. - person Pikachu; 23.06.2016