Tarantool DB 1.2.0¶
Дата релиза: 04.09.2024.
В релизе Tarantool DB 1.2.0 добавлен ряд новых возможностей и обновлений.
Основные изменения:
В утилите bootstrap.sh теперь можно задать имя файла топологии;
Разработка модулей Community Edition –
crud
,expirationd
,migrations
иvshard
– теперь поддерживается только сообществом. Разработка указанных модулей силами команды Tarantool продолжается в Enterprise-версиях этих модулей. В названия модулей добавлен суффикс-ee
:crud → crud-ee 1.7.0;
expirationd → expirationd-ee 1.8.0;
migrations → migrations-ee 1.2.0;
vshard → vshard-ee 0.1.27;
Обновлены следующие модули:
Подробная информация о Tarantool DB приведена в документации продукта.
Автоматическое удаление устаревших данных¶
Начиная с версии Tarantool DB 1.2.0, в модуле expirationd можно автоматически удалять из спейса кортежи с истекшим сроком жизни. Такое удаление запускается, если не указана пользовательская функция, определяющая время жизни кортежа. Для автоматического удаления задают две опции:
lifetime_in_seconds
– срок жизни в секундах. Удаляются все кортежи старше указанного значения;time_create_field
– название поля, по которому проверяется время жизни кортежа.
Если для обработки устаревающих данных требуется более сложная логика, ее, как и раньше, можно описать в Lua-коде.
Пример конфигурации с автоматическим удалением
expirationd:
task_name1:
space: test
options:
args:
lifetime_in_seconds: 15
time_create_field: dt
Здесь:
task_name1
– название задачи по устареванию данных;space
– название спейса, по которому идет поиск устаревших кортежей;options.args
– дополнительные опции конфигурации:lifetime_in_seconds
– время жизни кортежа в секундах;time_create_field
– название поля, по которому проверяется время жизни кортежа.
Полное описание опций конфигурации expirationd
вы найдете в соответствующем разделе Справочника по конфигурации.
Проверка устаревших кортежей через универсальную функцию¶
В версии 1.2.0 добавлен запускаемый пример expirationd_universal_func
,
который использует модуль expirationd.
В отличие от примера expirationd_user_logic, где для обработки кортежей заданы три пользовательские функции,
здесь для контроля и обработки устаревших кортежей во всех спейсах используется одна универсальная функция is_tuple_expired
.
Функция проверяет кортежи в трех спейсах и удаляет из спейсов все кортежи, которые старше заданного времени.
Узнать больше: Проверка устаревших кортежей с помощью универсальной функции.
Исправлен порядок включения роли expirationd¶
До версии 1.2.0 персистентные функции, необходимые для работы модуля, требовалось объявлять перед применением конфигурации для роли expirationd
.
Таким образом, до версии 1.2.0 нужно было сначала применить миграции с функциями, и только после этого можно было включать роли.
Иной порядок запуска приводил к возникновению ошибок.
Начиная с версии 1.2.0, эти ограничения исправлены: теперь порядок запуска не имеет значения.
Если роль expirationd
не включена, в веб-интерфейсе Tarantool DB появляется соответствующее сообщение.
Имя файла с топологией в утилите bootstrap.sh¶
Клиентская утилита bootstrap.sh выполняет настройку топологии кластера.
Начиная с версии 1.2.0, в bootstrap.sh
можно задать имя файла с описанием топологии.
Это полезно, когда нужно поднять два одинаковых кластера.
Имя файла указывается в переменной окружения TARANTOOLDB_TOPOLOGY_FILENAME
.
Название файла по умолчанию – topology.json
.