Это хороший вопрос. Большая часть вычислений на кластерах YT это честная batch-обработка данных, находящихся в YT. Для таких классических мапов и редьюсов запись результата производится штатными средствами YT, а они обеспечивают exactly-once семантику, т.к. интегрированны со встроенным в YT механизмом транзакций. Таким образом, если на ноде что-то сломается до сообщения об окончании джоба, записанные, но не закоммиченные выходные данные через какое-то время будут физически подчищены и никуда не попадут.
Если джобы операции по каким-то причинам ходит в по-настоящему внешние сервисы (скажем, сторонние базы данных), то тут ответственность за правильную реакцию на перезапуски джобов ложится на разработчика этой операции. Иногда бывает так, что сайд-эффект является идемпотентным, например, запись по ключу какого-то детерминированного значения — такой сайд-эффект ретраить не страшно.
Если сайд-эффекты неизбежны, а к перезапускам джобов операция не готова, то на этот случай в YT есть возможность заказать тот или иной режим работы «без перезапусков»: планировщик может либо просто игнорировать не завершившиеся успешно джобы, либо тут же аварийно завершать всю операцию.
> Авторами программы, предположительно, являются Ефим Бушманов и Сергей Бугаев. Сергей сказал, что написал большую часть кода.
Автор, читай внимательно, на что ссылаешься. В упомянутом тикете чёрным по белому написано, что код написан Ефимом Бушмановым, а Сергей лишь открыл тикет, в котором интересуется о правовом статусе проекта.
Андрей Лопатин прекратил участвовать в подготовке школьников около пяти лет назад, сейчас с кандидатами в сборную работает состав тренеров, в числе которых есть и Андрей Станкеивч.
Мы не можем переставлять элементы по сравнению с их порядком в исходной последовательности, поэтому мы действительно можем получить только (2, 3, 2, 3).
Нет, переупорядочивать нельзя. Мы разбиваем на подпоследовательности, которые необязательно состоят из подряд идущих элементов. Например, из последовательности (1, 2, 1, 2) первый и третий элементы пойдут в одну хорошую последовательность, а второй и четвёртый — в другую, речь идёт об этом.
> Абсолютно все золотые призеры РФ не справились с последней, седьмой задачей, набрав за нее 3, 2, 1 и 0 баллов соответственно своим местам в итоговой таблице.
Ну, справедливости ради, данные в std::array могут жить как на стеке, так и на куче (например, если std::array используется как поле в классе, экземпляр которого размещения в куче).
Очень хорошее изложение! Как человек с математическим образованием, не нашедший достаточно времени в школе на физику, я получил искреннее удовольствие от прочтения.
Наверное, называем. В моем представлении, которое не противоречит приведенному вами определению в Википедии, на гитхабе есть инструмент для код-ревью: клик (секция collaborative code review). А вы о чем?
Насколько я помню, в Visual Studio при правильном подборе заголовочных файлов и дефайнов max(a, b) является макросом с содержанием в духе (((a) > (b))? (a): (b)). Это объясняет, почему данная строка компилируется (в правой части скобки есть, и поэтому max развернулся в тело соответствующего макроса, в левой остался, как был, переменной max).
Особо приятной плюшкой такого макроса является черт знает какое поведение, когда выражения a и b имеют сайд-эффекты при вычислении, или, что еще хуже, когда макрос используется в рекурсии (легкой подстановкой макроса время исполнения функции из логарифмического становится экспоненциальным!)
Если джобы операции по каким-то причинам ходит в по-настоящему внешние сервисы (скажем, сторонние базы данных), то тут ответственность за правильную реакцию на перезапуски джобов ложится на разработчика этой операции. Иногда бывает так, что сайд-эффект является идемпотентным, например, запись по ключу какого-то детерминированного значения — такой сайд-эффект ретраить не страшно.
Если сайд-эффекты неизбежны, а к перезапускам джобов операция не готова, то на этот случай в YT есть возможность заказать тот или иной режим работы «без перезапусков»: планировщик может либо просто игнорировать не завершившиеся успешно джобы, либо тут же аварийно завершать всю операцию.
Автор, читай внимательно, на что ссылаешься. В упомянутом тикете чёрным по белому написано, что код написан Ефимом Бушмановым, а Сергей лишь открыл тикет, в котором интересуется о правовом статусе проекта.
Результаты соревнования доступны здесь: https://contest.yandex.ru/contest/2620/standings/
Ну только не седьмой, все-таки, а шестой.
Насколько я помню, в Visual Studio при правильном подборе заголовочных файлов и дефайнов max(a, b) является макросом с содержанием в духе (((a) > (b))? (a): (b)). Это объясняет, почему данная строка компилируется (в правой части скобки есть, и поэтому max развернулся в тело соответствующего макроса, в левой остался, как был, переменной max).
Особо приятной плюшкой такого макроса является черт знает какое поведение, когда выражения a и b имеют сайд-эффекты при вычислении, или, что еще хуже, когда макрос используется в рекурсии (легкой подстановкой макроса время исполнения функции из логарифмического становится экспоненциальным!)