2012-01-12 4 views
6

Я пытаюсь понять утверждения о том, что Кассандра линейно масштабируется с количеством узлов. Вкратце оглядеть «сеть», я не видел особого отношения к этой теме. Несомненно, в Кассандре есть элементы последовательной обработки, которые должны ограничить скорость, получаемую при увеличении N. Любые мысли, указатели или ссылки на эту тему будут оценены.Когда Кассандра попадает в закон Амдаля?

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

+0

«Несомненно, есть элементы последовательной обработки» - почему вы так уверены? – fennec

+0

http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html – Schildmeijer

+1

@fennec: Потому что очень мало проблем на 100% параллелизуемо –

ответ

7

масштабирование Кассандры лучше описывается в терминах Gustafson's law, а не Amdahl's law. Шкала Gustafson выглядит так: сколько данных вы можете обрабатывать по мере увеличения количества узлов. То есть, если у вас в N раз больше узлов, вы можете обрабатывать набор данных в N раз больше за один и тот же промежуток времени.

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

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

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

В вашем случае это звучит так, будто вы спрашиваете, лучше ли иметь 1000 медленных узлов или 200 быстрых. Насколько велик ваш набор данных? Это зависит от вашей рабочей нагрузки, но обычная рекомендация заключается в том, что оптимальный размер узлов составляет около 1 ТБ данных, поэтому у вас достаточно памяти и процессора для соответствия (см. cassandra node limitations). 1000 звучит слишком много, если у вас нет петабайт данных.

Смежные вопросы