Высокая пропускная способность и низкая латентность в HDFS

Я попытался определить, что означает высокая пропускная способность и низкая латентность в HDFS в моих собственных словах, и придумал следующее определение:

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

Имеет ли смысл?:)

Спасибо!

Ответ 1

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

Когда я думаю о системе с высокой задержкой, я не думаю о том, к какой записи я обращаюсь, а скорее, что доступ к любой записи вообще имеет высокие накладные расходы. Доступ даже к первому байту файла из HDFS может занять около секунды или более.

Если вы более склонны к количественно, вы можете подумать об общем времени, требуемом для доступа к числу записей N как T(N)=aN+b. Здесь a представляет пропускную способность, а b представляет задержку. С такой системой, как HDFS, N часто бывает настолько большой, что b становится неактуальным, и выгодно использовать компромиссы в пользу низкого a. Контрастируйте это с хранилищем данных с малой задержкой, где часто каждый прочитанный получает доступ только к одной записи, а затем оптимизирует для более низкого b.

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

Ответ 2

Я возьму качели на этом.

Доступ к данным с низкой задержкой: я нажимаю клавишу ввода (или кнопку отправки), а я ожидайте результаты в считанные секунды. Мое время запроса базы данных должно быть к югу от второго. Высокая пропускная способность данных: я хочу сканировать миллионы строк данных и подсчитывать или суммировать некоторое подмножество. Я ожидаю, что это займет несколько минут (или намного дольше в зависимости от сложности). Подумайте о более рабочих заданиях в пакетном режиме.

Предостережения: Это действительно проблема с картой/уменьшением. Настройка и обработка заданий M/R занимает немного накладных расходов. Есть несколько проектов работая теперь, чтобы перейти к доступу к данным с меньшей задержкой.

Кроме того, HDFS хранит данные в блоках и распределяет их по многим узлам.  Это означает, что всегда будет (практически) передача данных по сети требуется, чтобы получить окончательный ответ, и что "замедляет" ситуацию немного, в зависимости от пропускной способности и других факторов.

Надеюсь, что это поможет.:)