Когда Кассандра нарушает закон Амдала? - PullRequest
7 голосов
/ 12 января 2012

Я пытаюсь понять утверждения, что Кассандра масштабируется линейно с количеством узлов.При быстром осмотре в сети я не увидел особой трактовки этой темы.Конечно, в Cassandra есть последовательные элементы обработки, которые должны ограничивать скорость, получаемую при увеличении N.Будем благодарны за любые мысли, указатели или ссылки на эту тему.

Изменить, чтобы предоставить перспективу:
Я работаю над проектом, который имеет текущий запрос на инфраструктуру Cassandra с 1000+ узлами.Я не придумал эту спецификацию.Я обнаружил, что предлагаю уменьшить N до 200–500, при этом каждый узел должен быть как минимум вдвое быстрее для последовательных вычислений.Этого легко добиться без потери стоимости на узел, внеся простые изменения в конфигурацию сервера.

1 Ответ

8 голосов
/ 13 января 2012

масштабирование Кассандры лучше описывается в терминах закона Густафсона , а не закона Амдала . При масштабировании по Гастафсону показывает, сколько данных можно обработать при увеличении количества узлов. То есть, если у вас в N раз больше узлов, вы можете обработать набор данных в N раз больше за то же время.

Это возможно, потому что Кассандра использует очень мало координации для всего кластера, за исключением изменений схемы и кольца. В большинстве операций используется только количество узлов, равное коэффициенту репликации, который остается постоянным по мере роста набора данных - следовательно, почти линейный масштаб.

В отличие от этого, при масштабировании по Амдалю оценивается, насколько быстрее вы можете обрабатывать фиксированный набор данных при увеличении количества узлов. То есть, если у вас в N раз больше узлов, можете ли вы обрабатывать один и тот же набор данных в N раз быстрее?

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

В вашем случае звучит так, будто вы спрашиваете, лучше ли иметь 1000 медленных узлов или 200 быстрых. Насколько большой ваш набор данных? Это зависит от вашей рабочей нагрузки, но, как правило, рекомендуется, чтобы оптимальный размер узлов составлял около 1 ТБ данных каждый, что гарантирует наличие достаточного объема ОЗУ и ЦП для соответствия (см. Ограничения узлов кассандры ). 1000 звучит как слишком много, если только у вас нет петабайт данных.

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