Адаптивное разбиение HashJoin в Bolt: меньше повторных выгрузок на диск
При соединении таблиц через хеш-таблицу нехватка памяти вынуждает Bolt разбивать строки на разделы и писать их на диск. Если раздел снова не помещается в память, цикл повторяется: чтение, разбиение, запись.
В техническом разборе адаптивного разбиения первая нехватка памяти служит оценкой вместимости. Bolt сопоставляет число обработанных строк с общим числом строк: при 10 млн строк и вместимости около 800 тысяч фиксированных 4 разделов мало, а адаптивный выбор может дать 16 или 32.
В статье показан путь статистики строк до решения о разбиении. Число разделов только увеличивается; ширина строк влияет на точность оценки, а перекос ключей всё ещё может создавать слишком крупные разделы. Разработчикам аналитических движков здесь есть что учесть при диагностике повторных выгрузок.
#производительность #разборы
Post #3059
171