Выбор таблиц стейта для YTsaurus Flow

Flow по умолчанию создаёт и монтирует внутренние таблицы вместе с пайплайном. Здесь сравниваются динамические таблицы внешнего стейта, которые вы создаёте и обслуживаете самостоятельно. Для такого стейта до создания таблиц выберите обычный, реплицированный или хаосный вариант. Решение влияет на стоимость хранения, консистентность чтения и поведение при недоступности кластера.

Сравнение

Вариант Чтение и запись Стоимость и применимость
Обычная динамическая таблица Одна копия на выбранном кластере. Доступность определяется этим кластером; асинхронных реплик, которые могли бы отставать, нет. Самый простой вариант, когда достаточно доступности одного кластера.
Реплицированная таблица Синхронная реплика даёт актуальное чтение, асинхронная может отставать. Метаданные и выбор синхронной реплики зависят от мета-кластера; его недоступность останавливает запись. Дополнительные реплики повышают стоимость, но дают варианты для доступного чтения.
Хаосная таблица Метаданные размещаются в хаос-ячейках; запись может продолжаться при недоступности отдельного кластера реплик. Асинхронное чтение может отставать. Стоимость записи и очередей репликации возникает на каждом кластере; выбирайте, если доступность записи критична.

Как принять решение

  1. Уточните допустимое время недоступности чтения и записи и требование к свежести результата. Для чтения самой свежей версии используйте синхронную реплику; у асинхронной реплики задержка не гарантирована.
  2. Оцените объём стейта, интенсивность записи и стоимость дополнительных реплик и очередей репликации в своей конфигурации. Не переносите численные оценки с другого кластера без измерения.
  3. Начните с обычных таблиц внешнего стейта, если один кластер удовлетворяет требованиям. Выбирайте реплицированные таблицы при дополнительном требовании к доступности чтения, а хаосные — при требовании к доступности записи во время отказа отдельного кластера. Ссылки в сравнении ведут к общим руководствам по этим типам таблиц; выбор не меняет способ создания внутренних таблиц Flow.
  4. Перед изменением схемы или типа таблицы внешнего стейта остановите пайплайн и подготовьте миграцию согласно правилам релиза.