Tarantool DataBase 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: testoptions:args:lifetime_in_seconds: 15time_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.
Функция проверяет кортежи в трех спейсах и удаляет из спейсов все кортежи, которые старше заданного времени.
Узнать больше: Проверка устаревших кортежей с помощью универсальной функции.
До версии 1.2.0 персистентные функции, необходимые для работы модуля, требовалось объявлять перед применением конфигурации для роли expirationd.
Таким образом, до версии 1.2.0 нужно было сначала применить миграции с функциями, и только после этого можно было включать роли.
Иной порядок запуска приводил к возникновению ошибок.
Начиная с версии 1.2.0, эти ограничения исправлены: теперь порядок запуска не имеет значения.
Если роль expirationd не включена, в веб-интерфейсе Tarantool DB появляется соответствующее сообщение.
Клиентская утилита bootstrap.sh выполняет настройку топологии кластера.
Начиная с версии 1.2.0, в bootstrap.sh можно задать имя файла с описанием топологии.
Это полезно, когда нужно поднять два одинаковых кластера.
Имя файла указывается в переменной окружения TARANTOOLDB_TOPOLOGY_FILENAME.
Название файла по умолчанию — topology.json.