Nano Hash - криптовалюты, майнинг, программирование

Почему моя скорость вставки cassandra лучше с клиентом/узлом на одном хосте, чем с клиентом и одним узлом на разных хостах?

Это дополнительный вопрос к этому: Почему моя пропускная способность cassandra не улучшается, когда я добавляю узлы?

Моя схема в настоящее время выглядит так (все большие двоичные объекты примерно одинакового размера, около 140 байт):

create keyspace nms WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };
use nms;
CREATE TABLE qos(
                hour timestamp,
                qos int,
                id int,
                ts timestamp,
                tz int,
                data blob,
              PRIMARY KEY ((hour, qos), id, ts));

В обоих сценариях у меня есть один узел. Помимо очевидного IP-адреса и мест хранения, конфигурация Apache C* 2.1.5 уже готова к использованию.

Когда я запускаю клиент и отдельный узел на разных хостах, я получаю примерно 55 000 вставок в секунду. Вывод cfhistograms выглядит примерно так:

nms/qos histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                              (micros)          (micros)           (bytes)
50%             0.00             86.00              0.00             42510               535
75%             0.00            124.00              0.00             42510               642
95%             0.00            179.00              0.00             61214              1109
98%             0.00            215.00              0.00             61214              1109
99%             0.00            258.00              0.00             61214              1109
Min             0.00              4.00              0.00               150                 3
Max             0.00          61214.00              0.00             61214              1109

Когда я запускаю клиент на том же хосте, что и единственный узел, я получаю примерно 90 000 вставок в секунду. Снимок гистограммы выглядит так (почти так же, как показано выше):

nms/qos histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                              (micros)          (micros)           (bytes)
50%             0.00             86.00              0.00             42510               535
75%             0.00            103.00              0.00             42510               642
95%             0.00            179.00              0.00             61214              1109
98%             0.00            310.00              0.00             61214              1109
99%             0.00            535.00              0.00             61214              1109
Min             0.00              3.00              0.00               150                 3
Max             0.00         126934.00              0.00             61214              1109

Почему такая большая разница в скорости вставки? Я бы подумал, что ставки будут эквивалентны или лучше в сплит-настройке?

Кстати, я вижу это странное поведение со всеми вариантами аппаратного обеспечения, которое у меня есть, так что это нечто большее, чем мощность клиента.


  • считайте это эквивалентностью: почему мне требуется больше времени, чтобы выпить, когда мне нужно ехать в магазин, по сравнению с тем, когда я просто беру что-то из холодильника? 09.06.2015
  • Не совсем эквивалентно. Если я добавлю еще один узел в ту же сеть, скорость удвоится. Если бы ваша аналогия была верна, то это указывало бы на задержку в сети, но я не вижу в этом проблемы. 09.06.2015
  • это больше, чем просто скорость вставки. например если каждая вставка представляет собой отдельное соединение с БД, то у вас есть накладные расходы на вход в систему, накладные расходы на соединение tcp, накладные расходы dns, бла-бла-бла. 09.06.2015
  • Нет, у клиента есть одно соединение для моего теста, которое вставляет 100 миллионов записей. Эти накладные расходы пережили бы нас для набора данных такого размера, если бы я делал это для каждой вставки :-D. Вставки заканчиваются примерно через 20 минут. 09.06.2015

Ответы:


1

Марк Б, вы правы. Если вы видите это и хотите опубликовать свой комментарий в качестве ответа, я дам вам кредит на это.

Более подробно, что происходило, так это то, что пока мое подключение к сети было 1G, я шел через неожиданный маршрутизатор 100Mb где-то. Как только я понял это и убедился, что все движущиеся части находятся в одной сети 1G, мои скорости подскочили до 180 000 вставок в секунду.

Если кого-то это волнует, команда Linux для проверки скорости вашего интерфейса:

sudo ethtool eth0

Инструмент для проверки скорости между ящиками — iperf.

16.06.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..