Вышел YTsaurus 25.4.0

Кратко о ключевых обновлениях.

Выпустили обновление YTsaurus 25.4.0. Среди ключевых обновлений: сквозная поддержка Row-Level Security (RLS), bulk-insert под пользовательскими транзакциями и распределённая запись файлов.

Для установки YTsaurus Server 25.4.0 обновите k8s‑operator до версии 0.27.0 или выше.

Основные изменения

В этот релиз входят:

  • Row-Level Security (RLS) — сквозная поддержка. В ACE теперь можно указать выражение, ограничивающее доступ к отдельным строкам; full_read расширен построчно (покрывает copy/concatenate/remote_copy). Реализовано в master, proxy read_table и controller agent в операциях; CHYT 2.18+ уже поддерживает RLS, для SPYT нужна версия 2.9.0, для YQL/QT — 0.4.1.

  • Bulk-insert под пользовательской транзакцией. Теперь для общего использования. Функция появилась как экспериментальная в 25.3 (необходимое условие для REPLACE INTO //dynamic/table в YQL) и в 25.4 переведена в GA — её можно безопасно использовать в продакшене.

  • Authorized node expiration. Master запоминает, кто выставил expiration_time/expiration_timeout, и при включённом enable_authorized_expiration выполняет удаление от имени этого пользователя. Это предотвращает случайные кросс-аккаунтные удаления общих поддеревьев и даёт аудируемый жизненный цикл для автоматически истекающих нод.

  • Распределённый протокол записи файлов. Файлы теперь можно писать параллельно из многих клиентских процессов — так же, как уже можно было писать таблицы. Убирается узкое место единственного writer’а для крупных артефактов и появляется возможность fan-out-загрузок из операций и пайплайнов.

  • Команда transfer_bundle_resources. Атомарно переносит квоты ресурсов (число таблетов, tablet static memory) между двумя tablet cell bundles в одной мутации — безопасный rebalancing бандлов для автоматизации и bundle controller.

  • Heavy hitters для lookup-запросов. Динамические таблицы отдают raw и data-weighted heavy hitters по lookup’ам — операторам проще находить ключи, из‑за которых растёт давление на кеш, появляются горячие таблеты и перекосы чтения.

  • API check_operation_permission. Позволяет пользователям и оркестраторам спросить у scheduler’а, есть ли у данного пользователя данное право на операцию — по аналогии с check_permission для объектов Cypress.

  • API list-job-traces и переработанный get_job_trace. list-job-traces перечисляет все GPU-трассировки джоба; get_job_trace отдаёт трассировку потоком в формате, удобном для Perfetto, — большие трейсы открываются в Perfetto без конвертации.

  • Фильтрация чанков через input_query в атрибутах пути. Фильтрует чанки по запросу прямо в path attributes — полезно для оптимизаций чтения.

  • Ограничения по compressed-data-size для sorted-операций. Добавлены лимиты primary compressed-data-size и опция sizing’а джобов consider_only_primary_size, которая при нарезке джобов учитывает только primary size.

  • Обработка CPU overload на data node. Обработка CPU overload встроена в data node; добавлена динамическая подстройка лимитов памяти pending-disk-read/pending-disk-write и максимального числа сессий.

  • YTQL syntax v3 — расширение выразительности. Сняты несколько давних ограничений:

    • выражения разрешены в IN и BETWEEN;
    • целочисленный индекс в GROUP BY / GROUP BY KEY (GROUP BY 1, 2);
    • новые строковые функции make_ngrams и split;
    • чтение с tablet followers в SELECT;
    • fetch join выполняется на proxy;
    • array join со списками значений composite и any.

Обратно несовместимые изменения

Обратите внимание на следующие изменения:

  • List-ноды полностью удалены. Загрузка снапшота, в котором есть list-ноды, приведёт к падению master-server. Чтобы перед обновлением убедиться, что list-нод нет, можно сделать следующее:

    • если в динамическом конфиге master’а включена опция alert_on_list_node_load, то при загрузке из снапшота в 25.2 должен был появиться алерт, а в 25.3 — crash. Если алертов и падений не было, обновление, скорее всего, безопасно;

    • иначе рекомендуется прогнать dry-run с --validate-snapshot бинарником master-server версии 25.4 и убедиться, что снапшот загружается, до самого обновления.

  • Очистка конфига pool tree. Удалены enable_scheduling_tags (отключаемая им фича больше не актуальна) и max_share_ratio из конфига пула (использовался для ограничения guarantees до vector-HDRF).

  • Депрекация list_queue_consumer_registrations. В конфиге queue consumer registration manager появилась новая опция disallow_list_all_registrations; после фазы миграции она станет значением по умолчанию в следующих релизах.

Полное описание и примеры конфигурации — в release notes.

Войдите, чтобы сохранить пост