Классика баз данных - статьи

       

Если это не так, то


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

Является ли это проблемой или нет, обычно можно определить на основе распределения данных по узлам; к несчастью, во многих случаях требование равномерного распределения нагрузки может прямо противоречить требованию распределять данные таким образом, чтобы их обработка на каждом узле производилась локально. Например, рассмотрим набор данных, которые собирались от 1000 датчиков в течение 10 лет с 15-секундным интервалом. Для каждого датчика имеется более 20 миллионов записей. Поскольку при типичном анализе производятся вычисления над временными рядами (например, ищутся значения, являющиеся необычными по отношению к скользящему среднему и среднему квадратичному отклонению), мы принимаем решение хранить данные каждого датчика в порядке времени (рис. 5) и распределить их по 10 вычислительным узлам, чтобы каждый из них содержал все данные от 100 датчиков (всего 2 миллиарда записей на узел). К несчастью, это означает, что во всех случаях, когда нас интересуют результаты только одного или нескольких датчиков, большая часть вычислительных узлов будет полностью простаивать. Выбор способа кластеризации строк по датчикам или по времени приводит к большой разнице в уровне параллелизма, на котором могут выполняться разные запросы.



Рис. 5. Два способа распределения по десяти машинам данных, собранных за 10 лет от 1000 датчиков

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

Содержание  Назад  Вперед