Tarantool 1.6
Release: v. 1.6.0
Версия 1.6.9
Release type: maintenance. Release date: 2016-09-27. Release tag: 1.6.9-4-gcc9ddd7. Release: v. 1.6.9
Since February 15, 2017, due to Tarantool issue (gh-2040)
there no longer is a storage engine named sophia
.
It will be superseded in version 1.7 by the vinyl
storage engine.
Несовместимые изменения:
- Поддержка SHA-0 (
digest.sha()
) прекращается по причине обновления OpenSSL.- Бинарный файл Tarantool будет динамически связываться с libssl.so во время компиляции вместо загрузки во время выполнения.
- Пакеты для Fedora 22 объявлены устаревшими (прекращение поддержки).
Изменения или добавления функциональности:
- Tab-based autocompletion in the interactive console (gh-86).
- LUA_PATH and LUA_CPATH environment variables taken into account, like in PUC-RIO Lua (gh-1428).
- Search for
.dylib
as well as for.so
libraries in OS X (gh-810).- A new
box.cfg { read_only = true }
option to emulate master-slave behavior (gh-246).if_not_exists = true
option added tobox.schema.user.grant
(gh-1683).clock_realtime()
/monotonic()
functions added to the public C API (gh-1455).space:count(key, opts)
introduced as an alias forspace.index.primary:count(key, opts)
(gh-1391).- Upgrade script for 1.6.4 -> 1.6.8 -> 1.6.9 (gh-1281).
- Support for OpenSSL 1.1 (gh-1722).
Новые модули и пакеты:
- curl - неблокирующие привязки для libcurl
- prometheus - сборщик метрик Prometheus для Tarantool
- gis – полнофункциональное геопространственное расширение для Tarantool.
- mqtt – клиент MQTT-протокола для Tarantool
- luaossl - самый полноценный OpenSSL-модуль во вселенной Lua
Версия 1.6.8
Release type: maintenance. Release date: 2016-02-25. Release tag: 1.6.8-525-ga571ac0. Release: v. 1.6.8
Несовместимые изменения:
RPM-пакеты для CentOS 7 / RHEL 7 Fedora 22+ будут использовать встроенную конфигурацию systemd без устаревших скриптов sysvinit. В systemd появляется возможность управления несколькими экземплярами. Чтобы обновить, выполните следующие действия:
- Убедитесь в наличии файла
ИМЯ_ЭКЗЕМПЛЯРА.lua
в директории/etc/tarantool/instances.available
.- Остановите ЭКЗЕМПЛЯР с помощью
tarantoolctl stop ИМЯ_ЭКЗЕМПЛЯРА
.- Запустите ЭКЗЕМПЛЯР с помощью
systemctl start tarantool@ИМЯ_ЭКЗЕМПЛЯРА
.- Enable INSTANCENAME during system boot using
systemctl enable tarantool@INTANCENAME
.Директория
/etc/tarantool/instance.enabled
больше не используется для платформ, запускаемых поsystemd
.Для получения дополнительной информации см. главу по администрированию серверной части.
Sophia was upgraded to v2.1 to fix upsert, memory corruption and other bugs. Sophia v2.1 doesn’t support old v1.1 data format. Please use Tarantool replication to upgrade (gh-1222).
Ubuntu Vivid, Fedora 20, Fedora 21 объявлены устаревшими по причине прекращения поддержки.
i686-пакеты объявлены устаревшими. Используйте наши спецификации по RPM и DEB для сборки на своей инфраструктуре.
Обновите
yum.repos.d
и/или aptsources.list.d
в соответствии с инструкциями по ссылке http://tarantool.org/download.html
Изменения или добавления функциональности:
Tarantool 1.6.8 fully supports ARMv7 and ARMv8 (aarch64) processors. Now it is possible to use Tarantool on a wide range of consumer devices, starting from popular Raspberry PI 2 to coin-size embedded boards and no-name mini-micro-nano-PCs (gh-1153). (Also qemu works well, but we don’t have real hardware to check.)
Tuple comparator functions were optimized, providing up to 30% performance boost when an index key consists of 2, 3 or more parts (gh-969).
Tuple allocator changes give another 15% performance improvement (gh-1298).
Replication relay performance was improved by reducing the amount of data directory re-scans (gh-1150).
A random delay was introduced into snapshot daemon, reducing the chance that multiple instances take a snapshot at the same time (gh-732).
Движок базы данных Sophia был обновлен до версии 2.1:
- изоляция сериализуемых снимков (SSI – Serializable Snapshot Isolation),
- режим хранения в оперативной памяти,
- режим хранения без кэша,
- режим хранения в кэше с подключением к базе данных,
- внедренный AMQ-фильтр,
- режим LRU (удаление страниц, которые дольше всего не использовались),
- отдельная компрессия горячих и холодных данных,
- внедрение снимков для быстрого восстановления,
- реорганизация и исправление ошибок в upsert,
- новые метрики производительности.
Обратите внимание на «Несовместимые изменения» выше.
Allow to remove servers with non-zero LSN from
_cluster
space (gh-1219).
net.box
now automatically reloads space and index definitions (gh-1183).The maximal number of indexes in space was increased to 128 (gh-1311).
New native
systemd
configuration with support of instance management and daemon supervision (CentOS 7 and Fedora 22+ only). Please note «Incompatible changes» above (gh-1264).Пакет Tarantool принят в официальный репозиторий Fedora (https://apps.fedoraproject.org/packages/tarantool).
Пакет Tarantool (OS X) принят в официальный репозиторий Homebrew (https://formulae.brew.sh/formula/tarantool).
Clang compiler support was added on FreeBSD. (gh-786).
Support for musl libc, used by Alpine Linux and Docker images, was added (gh-1249).
Добавлена поддержка GCC 6.0.
Получили поддержку Ubuntu Wily, Xenial и Fedora 22, 23 и 24, для которых мы создаем официальные пакеты.
box.info.cluster.uuid can be used to retrieve cluster UUID (gh-1117).
Многочисленные исправления в документации, добавлена документация по пакетам
syslog
,clock
,fiber.storage
, встроенное практическое задание получило обновление.
Новые модули и пакеты:
- Tarantool перешел на новую облачную инфраструктуру на основе Docker. Новый инструмент интеграции разработки buildbot значительно уменьшает время передачи коммитов в пакеты. Официальные репозитории по ссылке http://tarantool.org теперь содержат последнюю версию сервера, модулей и коннекторов. См. http://github.com/tarantool/build
- Репозитории по ссылке http://tarantool.org/download.html were был перенесены в облачное хранилище http://packagecloud.io (при поддержке Amazon AWS). Благодарим packagecloud.io за поддержку свободного ПО!
memcached
– внедрение текстового и бинарного протокола memcached для Tarantool. Превращает Tarantool в memcached с доступом к базе данных с репликацией по схеме мастер-мастер. См. https://github.com/tarantool/memcachedmigrate
– модуль Tarantool для миграции с версии 1.5 на версию 1.6. См. https://github.com/bigbes/migratecqueues
– асинхронный Lua-каркас для работы по сети с потоками и уведомлениями (разработал @daurnimator). Проблема 1204.
Версия 1.6.7
Release type: maintenance. Release date: 2015-11-17. Release: v. 1.6.7 Incompatible changes:
- Изменился синтаксис команды
upsert
, и из нее был удален дополнительный аргументkey
. Первичный ключ для поиска всегда берется из кортежа, который является вторым аргументом в upsert.upsert()
добавили довольно поздно в рабочем цикле, и в проекте была очевидная ошибка, которую нам пришлось исправлять. Извините.- Функцию
fiber.channel.broadcast()
удалили, потому что ее никто не использовал, и она работала некорректно.- Команда
reload
утилиты tarantoolctl переименована в``eval``.
Изменения или добавления функциональности:
- Опция
logger
допускает синтаксис для вывода в системный журнал syslog. Используйте синтаксис URI, чтобы определить место назначения журнала: в файл, в конвейер или syslog.replication_source
принимает массив URI, так что в каждой реплике может быть до 30 узлов.- RTREE-индекс принимает два типа функций
distance
:euclid
иmanhattan
.fio.abspath()
– новая функция в модулеfio
для конвертации относительного пути в абсолютный.- Название процесса теперь можно определить с помощью встроенного модуля
title
.- В данной версии используется LuaJIT 2.1.
Новые сторонние библиотеки:
memcached
помогает Tarantool понимать бинарный протокол Memcached. Поддержка текстового протокола находится в процессе разработки и будет добавлена в отдельный модуль без изменений основных компонентов.
Версия 1.6.6
Release type: maintenance. Release date: 2015-08-28. Release: v. 1.6.6
Tarantool версии 1.6 больше не получает значимых новых функций, но продолжает поддерживаться. Разработчики сосредоточили свои усилия на версии 1.9.
Несовместимые изменения:
- Появляется новая схема системного спейса
_index
для размещения многомерных RTREE-индексов. Tarantool 1.6.6 нормально работает со старыми снимками и системными спейсами, но нельзя будет запустить Tarantool версии 1.6.5 с директорий, созданной в Tarantool версии 1.6.6, как нельзя будет ввести запрос в Tarantool 1.6.6 с net.box версии 1.6.5.- Переименование
box.info.snapshot_pid
вbox.info.snapshot_in_progress
Изменения или добавления функциональности:
- Потоковая архитектура для работы по сети. Сетевой ввод-вывод окончательно переведен на отдельный поток, что увеличит производительность отдельного экземпляра до 50%.
- Потоковая архитектура для создания контрольных точек. Tarantool больше не делает ответвлений для создания снимка, а использует отдельный поток, получая доступ к данным с помощью вида постоянного просмотра. Это помогает устранить скачки задержки отклика во время создания снимков.
- Хранимые процедуры на языках C/C++. Хранимые процедуры на языках C/C++ дают скорость (в 3-4 раза больше по сравнению с Lua-версией по нашим подсчетам), а также возможность неограниченного расширения. Поскольку процедуры C/C++ выполняются там же, где располагается база данных, они могут с легкостью повредить базу данных. См. API для языка C.
- Многомерный RTREE-индекс. RTREE-индекс теперь поддерживает большое количество измерений (до 32). Cтруктура данных RTREE была оптимизирована так, чтобы действительно использовать R*-TREE. Мы работаем над дальнейшим улучшением индекса, в частности, над функцией конфигурации расстояния. См. https://github.com/tarantool/tarantool/wiki/R-tree-index-quick-start-and-usage
- Sophia 2.1.1 с поддержкой компрессии и составных первичных ключей. См. https://groups.google.com/forum/#!topic/sophia-database/GfcbEC7ksRg
- New
upsert
command available in the binary protocol and in stored functions. The key advantage of upsert is that it’s much faster with write-optimized storage (sophia storage engine), but some caveats exists as well. See (gh-905) for details. Even though upsert performance advantage is most prominent with sophia engine, it works with all storage engines.- Better memory diagnostics information for fibers, tuple and index arena. Try a new command
box.slab.stats()
, for detailed information about tuple/index slabs,fiber.info()
now displays information about memory used by the fiber.- Операции update и delete работают с использованием вторичного индекса, если индекс уникальный.
- Триггеры для аутентификации. Установите триггеры
box.session.on_auth
для отслеживания событий аутентификации. API для триггеров улучшили, чтобы он отображал все заданные триггеры, старые триггеры легко удалить.- Разнообразные улучшения производительности встроенного модуля
net.box
.- Оптимизация производительности BITSET-индекса.
panic_on_wal_error
представляет собой динамический параметр конфигурации.- Поле iproto
sync
доступно в Lua какsession.sync()
.box.once()
– новый метод для вызова кода однократно в течение срока жизни экземпляра и набора реплик. Используйтеonce()
для настройки спейсов и пользователей, а также для обновления схемы в эксплуатационной среде.box.error.last()
возвращает последнюю ошибку в сессии.
Новые сторонние библиотеки:
- Следующие модули LuaJIT 2.0 теперь являются встроенными:
jit.*
,jit.dump
,jit.util
,jit.vmdef
. См. http://luajit.org/ext_jit.htmlstrict
– встроенный пакет, который запрещает использование необъявленных переменных в Lua. Работа ведется в таком режиме, когда Tarantool компилируется с отладкой. Чтобы включить/отключить этот режим, используйтеrequire('strict').on()
/require('strict').off()
соответственно.pg
иmysql
– модули, доступные по ссылке http://rocks.tarantool.org – работают с MySQL и PostgreSQL из Tarantool.gperftools
rock, available at http://rocks.tarantool.org - getting performance data using Google’s gperf from Tarantool.csv
– встроенный модуль для разбора и загрузки данных в формате CSV (значения, разделенные запятыми).
Поддержка новой платформы:
- Fedora 22, Ubuntu Vivid