Высокая пропускная способность и низкая латентность в HDFS
Я попытался определить, что означает высокая пропускная способность и низкая латентность в HDFS в моих собственных словах, и придумал следующее определение:
HDFS оптимизирован для более быстрого доступа к пакетам данных (высокий пропускная способность), а не конкретные записи в этом наборе данных (низкий задержка)
Имеет ли смысл?:)
Спасибо!
Ответы
Ответ 1
Я думаю, что то, что вы описали, больше похоже на разницу между оптимизацией для разных шаблонов доступа (последовательный, пакетный или произвольный), чем разница между пропускной способностью и задержкой в самом чистом смысле.
Когда я думаю о системе с высокой задержкой, я не думаю о том, к какой записи я обращаюсь, а скорее, что доступ к любой записи вообще имеет высокие накладные расходы. Доступ даже к первому байту файла из HDFS может занять около секунды или более.
Если вы более склонны к количественно, вы можете подумать об общем времени, требуемом для доступа к числу записей N как T(N)=aN+b
. Здесь a
представляет пропускную способность, а b
представляет задержку. С такой системой, как HDFS, N часто бывает настолько большой, что b
становится неактуальным, и выгодно использовать компромиссы в пользу низкого a
. Контрастируйте это с хранилищем данных с малой задержкой, где часто каждый прочитанный получает доступ только к одной записи, а затем оптимизирует для более низкого b
.
С учетом сказанного ваше утверждение неверно; это определенно верно, и часто бывает, что хранилища пакетного доступа имеют высокую задержку и высокую пропускную способность, тогда как хранилища с произвольным доступом имеют низкую задержку и низкую пропускную способность, но это не всегда так.
Ответ 2
Я возьму качели на этом.
Доступ к данным с низкой задержкой: я нажимаю клавишу ввода (или кнопку отправки), а я
ожидайте результаты в считанные секунды. Мое время запроса базы данных должно быть
к югу от второго.
Высокая пропускная способность данных: я хочу сканировать миллионы строк данных и подсчитывать
или суммировать некоторое подмножество. Я ожидаю, что это займет несколько минут (или намного дольше
в зависимости от сложности). Подумайте о более рабочих заданиях в пакетном режиме.
Предостережения: Это действительно проблема с картой/уменьшением. Настройка и обработка
заданий M/R занимает немного накладных расходов. Есть несколько проектов
работая теперь, чтобы перейти к доступу к данным с меньшей задержкой.
Кроме того, HDFS хранит данные в блоках и распределяет их по многим узлам.
Это означает, что всегда будет (практически) передача данных по сети
требуется, чтобы получить окончательный ответ, и что "замедляет" ситуацию немного,
в зависимости от пропускной способности и других факторов.
Надеюсь, что это поможет.:)