SDK Enterprise | Tarantool
Документация на русском языке
поддерживается сообществом

SDK Enterprise

Версия Tarantool Enterprise SDK состоит из двух частей:

<TARANTOOL_BASE_VERSION>-r<REVISION>

Например: 2.11.1-0-gc42d9735b-r589.

  • TARANTOOL_BASE_VERSION — версия Tarantool Enterprise.
  • REVISION — ревизия SDK. Помимо самого Tarantool, она включает утилиту tt, набор модулей с открытым и закрытым исходным кодом, а также примеры. Подробнее см. в разделе Комплектация.

В этом релизе Tarantool 2.x обновлён до версии 2.11.10 — bugfix-релиза, устраняющего 15 проблем с версии 2.11.9. Также в релизе обновлён широкий набор компонентов экосистемы: tt-ee, crud, cartridge, vshard, metrics, checks, membership, migrations, graphqlapi, graphqlapi-helpers и kafka.

Это bugfix-релиз: исправлено 15 проблем с версии 2.11.9 (r708), а также добавлена одна опциональная функция. Она отключена по умолчанию и не оказывает никакого эффекта, пока не включена явно.

  • Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x.
  • Чтобы обновиться с Tarantool 2.x на 3.x см. процедуру обновления.

Добавлено:

  • Нединамическая опция box.cfg.memtx_memory_recovery_check (по умолчанию 'off') для предупреждения ('warn') или отказа в запуске ('panic'), если memtx_memory задан ниже ранее зафиксированного уровня использования.

Исправлено:

  • Вызов box.cfg с аргументом, не являющимся таблицей, теперь завершается понятной ошибкой cfg should be a table вместо невнятной внутренней ошибки (gh-13145).
  • Устаревшие опции box.cfg, заданные через переменные окружения TT_*, теперь преобразуются в соответствующие опции-замены, а само преобразование больше не перезаписывает молча значение опции-замены, если оно было задано явно (gh-13144).
  • Избыточное предупреждение об устаревании replication_connect_quorum, которое выводилось при явном указании bootstrap_strategy = 'legacy' в том же вызове box.cfg (gh-12933).

Исправлено:

  • Ошибка упорядочивания при батчинге WAL, из-за которой присоединяющаяся реплика могла пропустить строки, записанные мастером (gh-11028).

В рамках этой работы перенесены патчи из основной ветки (trunk) ванильного LuaJIT (gh-12480). При этом были исправлены следующие проблемы:

Исправлено:

  • Некорректное поведение JIT для вариативных (vararg) FFI-функций на платформе macOS AArch64 (gh-6097).
  • Различные проблемы ABI и соглашений вызова FFI для архитектур x64/AArch64.
  • ipairs_aux() — приведено в соответствие с поведением JIT-бэкенда на x86/x64.
  • Возврат -1 функцией os.time().
  • Предупреждения UBSan для table.new().

Изменено:

  • Режим доступа по умолчанию для файлов, создаваемых через fio.open(), изменён на 0666 (до применения umask) (gh-7981).

Исправлено:

  • Регрессия авторизации на HTTP-прокси или целевом хосте HTTP(S) по алгоритму Basic (gh-12805).

Исправлено:

  • Разбор времени с десятичной дробной частью часа или минуты (gh-12082).
  • Переполнение стека в функции strptime() при разборе часовых поясов.

Исправлено:

  • Аварийное завершение при вызове pack() с пустой строкой формата или строковым значением для спецификатора формата 'a' (gh-12063).

Исправлено:

  • Падение use-after-poison в uri.format(), вызванное длинным URI.

Примечание

Ниже приведены модули, в которых произошли изменения. Если модуль не указан в списке ниже, то обновления для него не выпускались.

Исправлено:

  • Нарушение консистентности при ребалансировке: запрос мог быть повторён на хранилище, которое ещё не владело бакетом, из-за чего чтение не возвращало данные, а запись уходила не в тот набор реплик (#509).
  • Запросы больше не повторяются вслепую: повтор теперь выполняется только если роутер восстановился после ошибки, а сам повтор никогда не выходит за пределы исходного времени ожидания — раньше запрос мог занимать до двух раз больше времени, чем было указано.

Добавлено:

  • tt connect: команда \history для вывода последних выполненных команд в интерактивной консоли.

Изменено:

  • tt stop: процессы предварительно прерываются (interrupt), что позволяет завершать их параллельно.

Исправлено:

  • tt log -f: возможная потеря или дублирование строк при переименовании файла, зависание после удаления отслеживаемого каталога логов, а также строки, записанные ровно в момент дочитывания файла до конца, которые не появлялись до следующей записи.

Этот релиз охватывает версии 2.17.2, 2.17.3, 2.18.0 и 2.18.1.

Добавлено:

  • Новая опция --vshard-bootstrap-timeout (переменная окружения TARANTOOL_VSHARD_BOOTSTRAP_TIMEOUT) роли vshard-router для настройки времени ожидания бутстрапа vshard. Значение по умолчанию остаётся 10 секунд, чего может не хватать для распределения бакетов по хранилищам на медленных CI-раннерах.
  • Необязательный аргумент timeout у cartridge.test-helpers.Cluster:start, cartridge.test-helpers.Cluster:bootstrap и cartridge.test-helpers.Cluster:bootstrap_vshard для увеличения времени ожидания HTTP-запроса при бутстрапе.

Обновлено:

  • Зависимость vshard с версии 0.1.41 до 0.1.42.
  • Зависимость checks с версии 3.4.0 до 3.4.1.
  • Зависимость http с версии 1.9.0 до 1.9.1. В этот релиз включены исправления инфраструктуры, не меняющие поведение модуля.
  • Зависимость membership с версии 2.5.3 до 2.5.4.

Исправлено:

  • Состояние гонки при остановке экземпляра, когда membership.leave() мог выполниться до остановки ролей, что приводило к ошибкам.
  • Если во время failover box.ctl.promote() возвращает ER_INTERFERING_PROMOTE, повтор теперь выполняется 3 раза с задержкой в 1 секунду, чтобы новый мастер не застревал в режиме read-only.

Добавлено:

  • Флаг сборки WITH_ZSTD для включения поддержки сжатия zstd. В сборке Enterprise SDK поддержка zstd включена по умолчанию.

Изменено:

  • Обновлена версия librdkafka до 2.15.1.

Этот релиз охватывает версии 1.8.2 и 1.8.3: в нём появились аннотации EmmyLua и исправлен CI-пайплайн для запуска на внешних пулл-реквестах.

Добавлено:

  • Поддержка анализатора EmmyLua и аннотации (#551).

Изменено:

  • Опция config.checks в default_config установлена в 'off', чтобы избежать зависящих от окружения предупреждений (THP, readahead) в тестах (#549).
  • CI теперь запускается и для пулл-реквестов, а не только для push в ветки; запуски пропускаются для пулл-реквестов из базового репозитория, чтобы избежать дублирования (#555).

Исправлено:

  • config_metrics_test: системные предупреждения теперь отключаются только при наличии опции config.checks (вместо проверки версии Tarantool), поэтому тест проходит на любой версии Tarantool 3.x (#553).

Исправлено:

  • Полезная нагрузка (payload) участника могла безвозвратно теряться после leave() и последующего повторного присоединения (rejoin).

Этот релиз охватывает версии 1.2.0 и 1.2.1.

Добавлено:

  • Помощник drop_sharding_key() для очистки _ddl_sharding_key после удаления спейса.
  • Помощники register_sharding_func() и drop_sharding_func() (#59).

Исправлено:

  • Если у набора реплик не было исправного кандидата в лидеры (лидер был отключён, недоступен или ещё не избран во время stateful-failover), migrator.up() ранее пропускал его и сообщал об успехе. Теперь перед миграцией у каждого набора реплик требуется наличие исправного кандидата в лидеры: если у набора реплик ещё нет активного лидера или лидер неисправен, вызов завершается ошибкой, чтобы вызывающая сторона могла подождать появления лидера и повторить попытку.

Добавлено:

  • Аннотации EmmyLua (#68).

VShard 0.1.42 полностью совместим с предыдущими версиями vshard.

Добавлено:

  • Бэкенд для менеджера точек восстановления Tarantool — бэкенд vshard-router. Он позволяет менеджеру периодически создавать согласованные на уровне кластера точки восстановления, которые впоследствии можно использовать для резервного копирования и восстановления на момент времени всего кластера VShard. Новый публичный метод роутера vshard.router.create_cluster_recovery_point() создаёт точку восстановления на мастере каждого набора реплик (#648). Только с tarantool 3.8.0+. Для пользователей Tarantool 2.11 видимых изменений нет.

Этот релиз охватывает версии 0.0.12, 0.0.13, 0.0.14 и 0.0.15.

Изменено:

  • Поддержка ddl-ee была добавлена в 0.0.12 и отменена в 0.0.13; это изменение не сохранилось в 0.0.15 (#55).

Исправлено:

  • Определение Tarantool Enterprise в utils.get_tnt_version() теперь выполняется по tarantool.package (#58).
  • Нестабильные тесты cluster.test_get_instances и cluster.test_get_replicaset_instances — теперь тест дожидается статуса healthy у всех экземпляров перед проверками.
  • Аварийное завершение utils.get_tnt_version() с ошибкой variable 'tarantool' is not declared в приложениях на Cartridge, из-за чего ломалось определение Tarantool Enterprise (#61).

В этом релизе обновлены зависимости и тестовое окружение.

Добавлено:

  • Новые опции box.cfg для Tarantool 2.11: auth_delay, auth_type, bootstrap_strategy, disable_guest, election_fencing_mode, metrics, password_enforce_digits, password_enforce_lowercase, password_enforce_specialchars, password_enforce_uppercase, password_history_length, password_lifetime_days, password_min_length.

Исправлено:

  • Учтено изменение драйвера статистики crud по умолчанию на metrics.

Этот релиз добавляет фильтрацию пользовательских метрик на основе селекторов. Теперь пользовательские метрики можно связывать с иерархическими селекторами и управлять ими с помощью metrics.set_filter() или опций include/exclude metrics.cfg(). Неизвестные элементы include/exclude рассматриваются как пользовательские селекторы, а имена встроенных групп метрик сохраняют прежнее поведение.

Добавлено:

  • metrics.namespace() и metrics.set_filter() — для пометки пользовательских коллекторов/обратных вызовов селекторами и их фильтрации во время сбора метрик.

Исправлено:

  • metrics.cfg{exclude = {'all'}} теперь исключает селекторы пользовательских метрик в дополнение к встроенным группам метрик.

Добавлено:

  • Поддержка режима Tarantool election_mode = 'manual' в stateful-режиме отказоустойчивости Cartridge, включая наборы реплик из одного экземпляра.

  • Добавлены вспомогательные функции Lua API для работы во время выполнения:

    • require('cartridge.lua-api.failover').switch_to_manual_election_mode()
    • require('cartridge.lua-api.failover').switch_to_off_election_mode()

    для перевода stateful набора реплик между режимами Tarantool election_mode = 'off' и election_mode = 'manual'.

  • Документация по переводу набора реплик с управляемым состянием (stateful) на ручной режим выбора лидера (manual election mode) Tarantool, включая миграцию с перезапуском, вспомогательные функции для работы во время выполнения, откат (rollback) и рекомендации по фенсингу (fencing).

Изменено:

  • Обновлена зависимость vshard до версии 0.1.41.

Исправлено:

  • Состояние гонки при остановке экземпляра, когда membership.leave() мог выполниться до остановки ролей, что приводило к ошибкам.
  • Если box.ctl.promote() возвращает ER_INTERFERING_PROMOTE во время отказоустойчивости (failover), повышение повторяется 3 раза с задержкой в 1 секунду, чтобы новый мастер-узел не остался в режиме только чтения.
  • Состояние гонки в механизме отказоустойчивости с сохранением состояния (stateful-failover) при добавлении нового набора реплик: если state-провайдер еще не назначил лидера для этого набора реплик, failover.cfg() теперь использует topology.get_leaders_order(...)[1] (failover_priority[1]) в качестве начального назначения. Это предотвращает переключение будущего лидера в read_only=true и позволяет избежать взаимной блокировки при применении топологии.

Этот релиз добавляет управление конфигурацией воркеров (workers) кластера и исправляет некорректное сообщение об ошибке в tt start при недостаточных правах доступа к каталогу.

Добавлено:

  • tt cluster worker publish: публикация (загрузка) конфигурации воркера в etcd или хранилище конфигураций на основе Tarantool.
  • tt cluster worker show: вывод конфигурации воркера, хранящейся в etcd или хранилище конфигураций на основе Tarantool.
  • tt cluster worker delete: удаление конфигурации воркера из etcd или хранилища конфигураций на основе Tarantool.

Исправлено:

  • tt start: исправлена ошибка, из-за которой не выводилось сообщение при недостаточных правах доступа к директиве var.

Версия VShard 0.1.41 полностью совместима с предыдущими версиями VShard.

Добавлено:

  • Новая опция конфигурации хранилища: rebalancer_bucket_send_timeout. Она задает время ожидания в секундах на отправку одного бакета во время ребалансировки. Это позволяет ограничить, насколько долго бакет может быть недоступен для записи во время отправки.

Изменено:

  • Улучшен выбор бакетов ребалансировщиком: теперь приоритет отдается бакетам, на которых нет активных RW-запросов.

Исправлено:

  • Проблема, из-за которой могли появляться дублирующиеся активные бакеты из-за задержанных «блуждающих» TCP-пакетов #214.
  • Проблема, из-за которой RW-запросы могли нарушить репликацию после смены мастера во время ребалансировки #573.
  • Проблема, из-за которой смены мастера во время ребалансировки могли приводить к появлению дублирующихся активных бакетов #576.

В релизе обновлены ключевые зависимости платформы: Tarantool 2.11.9 — bugfix‑релиз ветки 2.11, ориентированный на повышение стабильности и предсказуемости работы. В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, а также внесён большой набор исправлений в LuaJIT и модуль Datetime. Дополнительно обновлены и доработаны ключевые компоненты экосистемы (crud, vshard, metrics, tt-ee, cartridge, http), включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP.

Это bugfix-релиз: исправлено 34 проблемы с версии 2.11.8 (r702).

  • Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x.
  • Чтобы обновиться с Tarantool 2.x на 3.x см. процедуру обновления.

При обновлении SDK рекомендуется:

  • перед началом обновления убедиться, что все наборы реплик исправны и находятся в согласованном состоянии;
  • выполнять обновление последовательно, проверяя состояние кластера после обновления каждого компонента;
  • не запускать ребалансировку данных при прохождении через CRUD 1.7.0, пока обновление полностью не завершено.

Добавлено:

  • Новое встроенное системное событие box.wal_error, которое рассылается каждый раз, когда Tarantool не удаётся зафиксировать транзакцию в журнале предзаписи (WAL) (gh-9405).

Исправлено:

  • Проблема, из-за которой ошибки SSL некорректно регистрировались при разрыве соединения с клиентом.
  • Ошибка, из-за которой Tarantool мог зависать при использовании box.watch (gh-9632).
  • Ошибка, при которой файлы .xlog.inprogress не удалялись автоматически во время запуска сервера, если wal_dir задан и отличается от значения по умолчанию (gh-12081).
  • Ошибка, при которой локальный спейс нельзя было очистить (truncate), если спейс _truncate настроен как синхронный (synchronous) (gh-12585).

  • Если при записи в WAL возникает ER_WAL_IO, текущий лидер при первом же таком случае отказывается от своей роли.

Добавлено:

  • Поддержка ffi.abi("dualnum") для определения режима LuaJIT (dual-number: различение целых int64 и double).
  • Добавлены флаги misc.memprof.available и misc.sysprof.available для определения доступности соответствующего профайлера в текущей сборке. Подробнее про профайлеры см. в разделах LuaJIT memory profiler и LuaJIT platform profiler.

Исправлено:

  • Некорректная генерация IR_TBAR на aarch64.
  • Обработка переполнения стека при выходе из трассировки.
  • «Висячие» ссылки на CType.
  • Закрытие состояния VM после раннего OOM.
  • Генерация IR_MUL на x86/x64.
  • Некорректное объединение инструкций stp/ldp на aarch64.
  • Инвалидизация записи SCEV при возврате в более низкий фрейм.
  • Сборка на macOS 15/Clang 16.
  • Генерация IR_HREFK на aarch64.
  • Проверки стека в varargs-вызовах в сборке GC64.
  • Проверки стека в pcall()/xpcall() в сборке GC64.
  • Лимит аллокаций для сборки без JIT.
  • Обработка ошибок OOM при расширении стека в coroutine.resume() и lua_checkstack().
  • Запись (recording) циклов со значением шага -0 или управляющими значениями NaN.
  • Формирование сообщений об ошибках, когда ошибка возникает во время обработки ошибки.
  • «Висячая» ссылка для FFI callback.
  • BC_UNM для аргумента -0 в режиме dual-number.
  • Сужение (narrowing) унарного минуса в режиме dual-number.
  • Запись (recording) string.byte(), string.sub() и string.find().
  • Отсутствие преобразования типов для слотов BC_FORI в режиме dual-number.
  • Различные пограничные случаи в VM events.
  • Запись разрешения индекса конструктора в JIT-компиляторе.
  • Предупреждение UBSan в unpack().

Исправлено:

  • Падение из-за срабатывания assert при разборе неоднозначной даты: когда в тексте одновременно указаны день года (yday, который неявно задаёт месяц и день месяца) и календарный месяц (без дня месяца). Теперь такие случаи распознаются, и отображается ошибка.
  • Вычисления tzoffset для случаев вида new({timestamp=x, tz='Zone'}).
  • Неконсистентность между датами, создаваемыми new({tzoffset=x}), и d:set({tzoffset=x}), когда d.tz ~= '' идёт перед set().
  • Теперь datetime.new() и datetime_object:set() проверяют, что значение timestamp находится в допустимом диапазоне.
  • Проверка типа timestamp в set().

Для обратной совместимости добавлена опция compat.datetime_setfn_timestamp_type_check. Сейчас она по умолчанию выключена («старое» поведение), то есть проверка типа не выполняется. «Новое» поведение с проверкой типа планируется сделать значением по умолчанию в версии 4.x.

Примечание

Ниже приведены модули, в которых произошли изменения. Если модуль не указан в списке ниже, то обновления для него не выпускались.

Примечание

Начиная с CRUD 1.6.0 закрыта уязвимость, позволявшая выполнять операции, на которые у пользователя не было прав. Теперь CRUD строго соблюдает права доступа: пользователь может выполнять только те действия, которые разрешены его привилегиями. Если приложению требуется доступ к служебным спейсам, соответствующие права необходимо выдавать явно.

Подробнее Чтение и запись данных через модуль CRUD.

Подробности о безопасном режиме и совместимости при поэтапном (rolling) обновлении описаны в разделе Обновление модуля crud (см. Ограничение совместимости при обновлении и Порядок обновления).

Добавлено:

  • Метод crud.locate() для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулем cooler.
  • В crud.len добавлена поддержка опций: mode, balance, prefer_replica, request_timeout.
  • safe mode — безопасный режим, предотвращающий запись данных в неверный набор реплик во время ребалансировки vshard.
  • Метрика tnt_crud_router_cache_clear_ts, помогающая корректно отключать безопасный режим в кластере.
  • Автоматическое переключение в безопасный режим при старте ребалансировки.
  • Возможность вручную вернуть быстрый режим (fast mode).
  • Метрика tnt_crud_storage_nil_bucket_id_compat_total для отслеживания операций, выполненных без bucket_ref (режим совместимости со старыми роутерами).

Исправлено:

  • Операции только для чтения (get, select, pairs, count, min, max) теперь выполняются через здоровые реплики, даже если все мастер-узлы в кластере недоступны.
  • Совместимость узлов хранилища с роутерами версии < 1.7.0: в get, update, delete корректно обрабатывается bucket_id = nil. В этом случае хранилище пропускает bucket referencing и пишет rate-limited предупреждение о сниженной безопасности ребаланса во время обновления без простоя (rolling upgrade).
  • Ошибка bucket_ref в методах crud.*_many теперь возвращается в виде массива.
  • Вызов bucket_unref вынесен из транзакции.
  • Предотвращено создание дублирующихся метрик при повторном вызове init.
  • Предотвращено создание дублирующихся триггеров на спейсе _crud_settings_local при повторном вызове init.
  • Взаимная блокировка в crud.schema() после ошибки перезагрузки схемы.
  • Удалена метрика tnt_crud_storage_safe_mode_enabled с роутера.
  • Убрана обёртка wrap_box_space_func_result для сокращения аллокаций и ускорения вызовов узла хранилища.
  • У* Оптимизирована пагинация в crud.select() и crud.pairs() с курсором after: для позиционирования курсора за O(1) на Tarantool 2.10+ используется нативная опция after.

Изменено:

  • При переключении в безопасный режим прекращена практика пометки/остановки iproto файберов в быстром режиме; корректность операций на узле хранилища проверяется через yield_checks в тестах.
  • Переключение в безопасный режим перенесено с триггера on_commit на on_replace.
  • Спейсы на движке vinyl всегда работают в безопасном режиме.

Версия 0.1.40 полностью совместима с предыдущими версиями vshard.

Добавлено:

  • Возможность отключать ограничитель частоты логирования (log rate limiter) через модуль consts.
  • Теперь вызывать vshard.router.info() и vshard.storage.info() можно, даже если роутер или хранилище отключены. Кроме того, функции возвращают новое булево поле: is_enabled.
  • Улучшено журналирование операций, связанных с ребалансировкой и восстановлением.

Исправлено:

  • Проблема, из‑за которой старый мастер-узел не мог обнаружить новый мастер-экземпляр в пределах набора реплик.
  • Утечка соединений: соединение не освобождалось сборщиком мусора после реконфигурации или перезагрузки.
  • Ограничение транзакций при работе с _bucket: ранее on_commit‑триггер на _bucket блокировал запись в другие спейсы в рамках той же транзакции (например, из on_replace‑триггеров). Теперь такие сценарии разрешены — в on_commit пропускаются изменения, относящиеся к «чужим» спейсам.
  • Проблема, из-за которой ошибка пользователя маскировалась ошибкой Transaction is active... при вызове персистентной функции, которая выбрасывает ошибку и не закрывает транзакцию на версиях Tarantool младше 3.0.0-beta1-18. Теперь vshard автоматически закрывает такие транзакции и возвращает исходную ошибку пользователя.
  • Проблема, из-за которой соединение с репликой не восстанавливалось автоматически, если оно было закрыто vshard или пользователем.

  • graphite: добавлена возможность отправлять метрики на несколько серверов.
  • Удаление реплики с помощью метода box.space._cluster:delete() не удаляет информацию об этой реплике из метрик. Информация исчезает только после перезапуска кластера.
  • Обратная совместимость с предыдущей версией плагина сохранена.
  • Изменения в поведении:
    • init теперь присваивает уникальное имя создаваемому файберу fiber на основе входных опций graphite server (если переданы).
    • Добавлен метод stop() для остановки всех файберов fibers, запущенных плагином.

Добавлено:

  • tt pack: добавлена поддержка вложенных файлов .packignore в корне окружения tt.
  • tt status: добавлена опция --format для вывода в форматах JSON и YAML (машиночитаемый вывод).

Изменено:

  • tt export: изменено поведение по умолчанию для составных полей (массивы и словари) — теперь они экспортируются в JSON. Для возврата прежнего поведения используйте --compound-value-format=ignore.

Исправлено:

  • Проверка целостности для приложения, использующего структуру каталогов Cartridge (одиночное приложение, у которого корневой каталог совпадает с корнем окружения).
  • Проблема с Tarantool 3.5+: экземпляр не останавливался при падении периодической проверки целостности.
  • Исправления, выявленные статическим анализатором Svacer и проверками на известные уязвимости (CVE).

Изменено:

  • По умолчанию дерево файлов на странице кода больше не разворачивается.
  • Обновлена зависимость vshard до версии 0.1.40.
  • Обновлена зависимость membership до версии 2.5.3.
  • Обновлена зависимость cartridge-metrics-role до версии 0.1.3.
  • Обновлена зависимость graphql до версии 0.3.1.
  • Обновлена зависимость http до версии 1.9.0.

Исправлено:

  • Переработан мониторинг синхронных спейсов с учетом фактического режима отказоустойчивости. Предупреждение о синхронных спейсах теперь записывается в журнал, когда отказоустойчивость (failover) настроена в режиме, который их не поддерживает (eventual, stateful без synchro_mode), а не безусловно при запуске экземпляра.
  • Добавлена функция is_sync_spaces_supported() в модуль cartridge.failover.
  • Синхронные спейсы теперь обнаруживаются динамически, что позволяет учитывать спейсы, добавленные во время работы.

Этот релиз добавляет новую опцию ssl_verify_client и изменяет поведение по умолчанию при заданном параметре ca_file. Также исправлено несколько ошибок.

Добавлено:

  • Новая опция ssl_verify_client.

Исправлено:

  • Сервер не пересоздается, если его адрес и порт не изменились.
  • Сервер не изменяется после обновления параметров при перезагрузке конфигурации.

Критические изменения:

Mutual TLS (взаимный TLS) с опцией ca_file включен по умолчанию.

Документация: Модуль http.

  • Bumped checks version to 3.4.0.
  • Bumped Cartridge version to 2.16.4.
  • Bumped vshard version to 0.1.37.

  • Bumped tarantool-2.11 series to 2.11.8.

  • Moved CI files from sdk-ci repository.

  • Bumped tt-ee version to v2.11.0.

  • Replaced Cartridge EE with Cartridge CE 2.16.3.
  • Added CRUD CE 1.6.1.
  • Added expirationd CE 1.7.0.
  • Added ddl CE 1.7.1.
  • Bumped metrics version to 1.5.0.
  • Added migrations CE 1.1.0.
  • Added vshard CE 0.1.36.
  • Moved to Community Edition modules.

  • Fixed glibc package URL to archived.

  • Added manual trigger job to run tests to generate certificate of compliance. Ready for Astra Linux.

  • Bumped Cartridge version to 2.16.2.
  • Bumped metrics version to 1.4.0.
  • Bumped http version to 1.8.0.
  • Bumped crud-ee version to 1.7.4.

  • Bumped tt-ee version to v2.10.1.

  • Bumped Cartridge version to 2.16.0.

  • Bumped vshard-ee version to 0.1.34.

  • Bumped Cartridge version to 2.15.4.

  • Bumped tt-ee version to v2.10.0.

  • Bumped migrations-ee version to 1.3.2.

  • Bumped tarantool-2.11 series to 2.11.7.

  • Bumped Kafka version to 1.6.10.

  • Bumped Cartridge version to 2.15.3.

  • Bumped vshard-ee version to 0.1.33.

  • Bumped tt-ee version to v2.9.1.

  • Bumped tt-ee version to v2.9.0.
  • Bumped Cartridge version to 2.15.2.
  • Bumped membership version to 2.5.2.

  • Bumped Cartridge version to 2.15.1.
  • Bumped tt-ee version to v2.8.1.
  • Bumped vshard-ee version to 0.1.32.

  • Bumped Cartridge version to 2.15.0.
  • Bumped membership version to 2.5.1.
  • Bumped expirationd-ee version to 1.8.0.

  • Bumped tarantool-2.11 series to 2.11.6.
  • Bumped tt-ee version to v2.8.0.
  • Bumped migrations-ee version to 1.3.1.

  • Bumped Cartridge version to 2.14.0.
  • Bumped membership version to 2.4.6.

  • Bumped vshard-ee version to 0.1.31.
  • Bumped tt-ee version to v2.7.0.

  • Bumped tt-ee version to v2.6.0.
  • Bumped Cartridge version to 2.13.0.
  • Bumped vshard version to 0.1.30.
  • Bumped http version to 1.7.0.

  • Bumped tarantool-2.11 series to 2.11.5.
  • Bumped tt-ee version to v2.5.2.
  • Updated Kafka to 1.6.9.
  • Bumped tt-ee version to v2.5.1.
  • Bumped tt-ee version to v2.5.0.

  • Moved cartridge-auth-extension to stable directory.
  • Bumped crud-ee version to 1.7.1.
  • Bumped migrations-ee version to 1.3.0.

  • Bumped Cartridge version to 2.12.4.
  • Bumped vshard version to 0.1.29.
  • Bumped http version to 1.6.0.

  • Bumped tarantool-2.11 series to 2.11.4.
  • Bumped Cartridge version to 2.12.3.

  • Bumped tt-ee version to v2.4.0.
  • Bumped queue version to 1.4.2.
  • Added Migration Guide to bundle.

  • Updated Oracle to 1.5.0 for x86_64.
  • Updated oci to 21.14 for x86_64.

  • Moved to Enterprise Edition modules.
  • Fixed Docker image due to CentOS 7 EOL.
  • Fixed CI/CD workflows running inside CentOS 7.

  • Bumped tt-ee version to v2.3.1.
  • Enabled tt bash completion.
  • Updated Kafka to 1.6.8.

  • Updated Docker image.
  • Updated CMake to 3.20.6.
  • Installed dependencies for building OpenSSL.
  • Fixed installation of Python 3.6.

  • Enabled back aarch64 jobs.
  • Temporary disabled aarch64 jobs.

  • Adjusted CI workflows for 1.x-2.x development branch.
  • Deleted tarantool-master submodule.

  • Updated CRUD to 1.5.1.
  • Updated sideservice to 0.2.1.
  • Updated httpgo to 0.2.2.
  • Updated httpgo-crud to 0.1.1.

  • Updated cartridge-cli to 2.12.12.
  • tt used instead of tarantoolctl for build/test routines.
  • Made Tarantool and bundle versions correct.
  • Bumped tarantool-2.11 to 2.11.3.

  • Updated Cartridge to 2.10.0.
  • Updated membership to 2.4.4.
  • Updated ddl to 1.7.0.
  • Updated graphqlapi to 0.0.11.

  • Updated expirationd to 1.6.0.
  • Updated sharded-queue to 1.0.0.
  • Dropped building MacOS bundles.
  • Updated cartridge-cli to 2.12.11.

  • Updated tt-ee to 2.2.1.
  • Updated CRUD to 1.5.0.
  • Updated membership to 2.4.3.
  • Updated Cartridge to 2.9.0.

  • Updated bundle tt-ee aarch64.
  • Updated tt-ee to 2.2.0.
  • Fixed running Tarantool tests on RED OS.

  • Updated CRUD to 1.4.3.
  • Updated luatest to 1.0.1.
  • Updated migrations to 0.7.0.
  • Updated tt-ee to 2.1.2.

  • Updated Cartridge to 2.8.5.
  • Updated CRUD to 1.4.2.
  • Added frontend-core 8.2.2.
  • Updated membership to 2.4.2.
  • Updated sideservice to 0.2.0.
  • Updated tt-ee to 2.1.1.
  • Updated vshard to 0.1.26.

  • Updated httpgo to 0.2.1.
  • Added httpgo-crud 0.1.0.
  • Updated tarantool-2.11 to 2.11.2.

  • Updated tarantool-master to 3.0.0-beta1.

  • Updated Cartridge to 2.8.4.
  • Updated CRUD to 1.4.1.
  • Updated ddl to 1.6.5.
  • Added httpgo 0.2.0.
  • Updated tt-ee to 2.0.0.

  • Updated cartridge-cli to 2.12.9.
  • Updated tt-ee to 1.3.1.

  • Updated tt-ee to 1.3.0.
  • Updated Cartridge to 2.8.3.
  • Updated cartridge-cli-extensions to 1.1.2.
  • Updated CRUD to 1.3.0.
  • Updated queue to 1.3.3.
  • Updated sharded-queue to 0.1.1.
  • Updated membership to 2.4.1.
  • Added tests for Astra Linux 1.7.

  • Updated tarantool-2.10 to 2.10.8.
  • Updated tarantool-master to 3.0.0-alpha3.
  • Updated migrations to 0.6.0.
  • Updated tt-ee to 1.2.0.
  • Updated space-explorer to 1.1.8.
  • Updated cartridge-metrics-role to 0.1.1.
  • Updated Cartridge to 2.8.2.
  • Updated expirationd to 1.5.0.
  • Added sideservice 0.1.0.

  • Updated cartridge-cli to 2.12.7.
  • Updated tarantool-2.11 to 2.11.1.

  • Added CRUD 1.2.0.
  • Added ddl 1.6.3.
  • Added sharded-queue 0.1.0.
  • Added ddl 1.6.4.
  • Updated tt-ee to 1.1.2.
  • Updated cartridge-cli to 2.12.6.

  • Updated tarantool-2.10 to 2.10.7.
  • Updated tarantool-2.11 to 2.11.0.
  • Added Kafka 1.6.6.
  • Added vshard 0.1.24.
  • Added metrics 1.0.0.
  • Added cartridge-metrics-role 0.1.0.
  • Added Cartridge 2.8.0.
  • Added http 1.5.0.

  • Added tt-ee and tt environment configuration.
  • Added CRUD 1.1.1.
  • Added avro-schema 3.1.1.
  • Added expirationd 1.4.0.
  • Added graphql 0.3.0.
  • Added graphqlapi 0.0.10.
  • Added metrics 0.17.0.
  • Added migrations 0.5.0.
  • Added Oracle 1.4.0.
  • Added Cartridge 2.7.9.
  • Added vshard 0.1.23.
  • Added Kafka 1.6.5.

  • Updated tarantool-2.10 to 2.10.6.

  • Updated tarantool-2.11 to 2.11.0-rc2.

  • Added the tarantool-2.11 submodule.

  • Updated tarantool-1.10 to 1.10.15.

  • Updated tarantool-master to 3.0.0-entrypoint.

  • Updated tarantool-2.10 to 2.10.5.

  • Updated tarantool-2.8 to apply 2 hotfixes.

  • Fixed non-interactive installation of the brew package.
  • Changed the owner of the /usr/local/bin directory.
  • Installed awscli@1 instead of awscli since it takes much less time.

  • Added the missing property 2.10 for scope CACHE in CMakeLists.txt.

  • Added expirationd 1.3.1.

  • Used runners with label regular for builds and the tagged release workflow.

  • Added http 1.4.0.
  • Added space-explorer 1.1.7.
  • Added checks 3.2.0.
  • Added metrics 0.16.0.
  • Added Cartridge 2.7.8.

  • Added the -DENABLE_LTO=ON flag for tarantool-ee@master branch to CMakeLists.txt.

  • Upgraded devtoolset from 8 to 9. It was required for upgrading ld from 2.30 to 2.31+ for LTO.

  • Updated tarantool’s master branch to a recent revision.

  • Fixed code style in the Linux and MacOS workflows.

  • Reliably installed packages in MacOS builds.

  • Refactored the way that GC64 builds are defined in the build workflow. There are no changes to the composition of resulting bundles.

  • Added alerting failures in builds on stable branches and integration testing to VK Teams chats.

  • Updated to fresh tarantool master (2.11.0-entrypoint-107-ga18449d)

  • Outdated workflow runs are now canceled to save CI time.

Release SDK by tags:

  • Run workflow in SDK docker container.
  • Uploaded SDK files for 1.10, 2.8, 2.10 versions to release folder.
  • Added consistency check for all versions.

  • On feature branches, SDK is now rebuilt only on relevant changes.

  • Updated Tarantool EE to 2.10.4.

  • Updated bundled OpenSSL to version 1.1.1q.

  • Removed support of Tarantool 2.7.
  • Started using tarantool/actions/prepare-checkout to make builds more stable.

  • Remove the local registry and setup using GitHub registry.
  • Sync rocks cache to S3 and back.
  • Setup using shared runners.
  • Refactor and format ci-linux.yml and ci-macos.yml.

  • Removed Kafka 1.5.0 due to a build issue with Tarantool 2.10.3 and higher.
  • Updated Kafka to version 1.6.2.

  • Updated tuple-keydef to version 0.0.3.

  • Enabled parallel build of rocks for MacOS in CI.

  • Updated Tarantool to 2.10.3.
  • Added a readable error for the case when the flight recoder fails to write data due to insufficient free space on the disk device. Previously, it was sending a SIGBUS error.
  • Fixed a crash in the flight recorder caused by non-thread-safe log recording from multiple threads.

  • Updated Tarantool to 2.10.2.
  • Increased resolution of stored entries in flight recorder.
  • Fixed a bug in the flight recorder that resulted in skipping log entries in case box.cfg.log_level is less than flightrec_log_level.

  • Updated Tarantool to 2.10.1.
  • Updated Cyrus SASL to version 2.1.28.
  • Updated OpenLDAP to version 2.5.13.
  • Updated LZ4 to version 1.9.3. Fixed CVE-2021-3520.
  • Fixed replication reconnect failure after disabling SSL encryption.
  • Fixed a crash that occurred while tyring to start an instance that has a compressed memtx space.
  • Fixed CVE-2022-29242 in GOST SSL engine.
  • Fixed a bug in the flight recorder reader implementation that resulted in a hang or error while trying to open an empty section.

  • Default audit log format was changed to CSV.

  • Implemented user-defined audit events. Now it’s possible to log custom messages to the audit log from Lua.
  • [Breaking change] Switched the default audit log format to CSV. The format can be switched back to JSON using the new box.cfg.audit_format configuration option.
  • Implemented the audit log filter. Now, it’s possible to enable logging only for a subset of all audit events using the new box.cfg.audit_filter configuration option.

  • Implement constraints and foreign keys. Now a user can create function constraints and foreign key relations (gh-6436).
  • Changed log level of some information messages from critical to info (gh-4675).
  • Added predefined system events: box.status, box.id, box.election and box.schema (gh-6260).
  • Introduced transaction isolation levels in Lua and IPROTO (gh-6930).

  • Disabled the deferred DELETE optimization in Vinyl to avoid possible performance degradation of secondary index reads. Now, to enable the optimization, one has to set the defer_deletes flag in space options (gh-4501).

  • Added support of console autocompletion for net.box objects stream and future (gh-6305).

  • Parse method to allow converting string literals in extended iso-8601
    or rfc3339 formats (gh-6731).
  • The range of supported years has been extended in all parsers to cover
    fully -5879610-06-22..5879611-07-11 (gh-6731).

  • Added bundling of GNU libunwind to support backtrace feature on AARCH64 architecture and distributives that don’t provide libunwind package.
  • Re-enabled backtrace feature for all RHEL distributions by default, except for AARCH64 architecture and ancient GCC versions, which lack compiler features required for backtrace (gh-4611).

  • Disabled audit log unless explicitly configured. Before this change, audit events were written to stderr if box.cfg.audit_log wasn’t set. Now, audit log is disabled in this case.
  • Disabled audit logging of replicated events. Now, replicated events (for example, user creation) are logged only on the origin, never on a replica.

  • Banned DDL operations in space on_replace triggers, since they could lead to a crash (gh-6920).
  • Fixed a bug due to which all fibers created with fiber_attr_setstacksize() leaked until the thread exit. Their stacks also leaked except when fiber_set_joinable(..., true) was used.
  • Fixed a crash in mvcc connected with secondary index conflict (gh-6452).
  • Fixed a bug which resulted in wrong space count (gh-6421).
  • Select in RO transaction now reads confirmed data, like a standalone (auotcommit) select does (gh-6452).

  • Fixed potential obsolete data write in synchronous replication due to race in accessing terms while disk write operation is in progress and not yet completed.
  • Fixed replicas failing to bootstrap when master is just re-started (gh-6966).

  • Fixed the behavior of tarantool console on SIGINT. Now Ctrl+C discards the current input and prints the new prompt (gh-2717).

  • Fixed assertion or segfault when MP_EXT received via net.box (gh-6766).
  • Now ROUND() properly support INTEGER and DECIMAL as the first argument (gh-6988).

  • Intervals received after datetime arithmetic operations may be improperly normalized if result was negative

    tarantool> date.now() - date.now()
    ---
    - -1.000026000 seconds
    ...
    

    I.e. 2 immediately called date.now() produce very close values, whose difference should be close to 0, not 1 second (gh-6882).

  • Changed the type of the error returned by net.box on timeout from ClientError to TimedOut (gh-6144).

  • Fixed some binary protocol encryption bugs.
Нашли ответ на свой вопрос?
Обратная связь