"➖ Preemption 🪄Представьте, у нас есть YARN, в нем очереди, а в очередях бегут наши приложения. Под каждую очередь выделяется определенное количество ресурсов (память, ядра) Пусть у нас одна очередь считает витрины, вторая льет стриминговые данные, а в третьей де/да/дс запускают свои наработки. И ресурсы разделены в таком соотношении: 1️⃣ batch - 60% 2️⃣ realtime - 30% 3️⃣ adhoc - 10% Послеобеденное время, витринки особо пока не занимают очередь, пусть 20% вместо 60%. Тут приходит аналитик и запускает огроменный расчет, который перелопачивает 100млрд данных. Он занимает всю свою очередь, а сверху берет в долг ресурсы у витринной очереди, которая пока более-менее свободна 🗓️ Наступает момент запуска критичных витрин - а ресурсов уже нет. Они говорят: ""Мы витринки, у нас повышенный приоритет на собственные ресурсы"". Т.к. adhoc очередь их временно забрала, то экзекьюторы убиваются и ресурсы начинают отдаваться своей родной очереди У бедного аналитика приложение будет простаивать, а все, что не посчиталось, потом пойдет считаться заново (когда очередь освободится) 🌷А вот надо было писать оптимальный запрос и не посягать на чужое имущество Дисклеймер: любые совпадения с реальными личностями случайны"