Релиз Tarantool 2.1.3

12 ноября 2019 г.

Мы выпустили Tarantool 2.1.3. С последней стабильной версии закрыто около 20 тикетов, полный список изменений можно посмотреть тут. Самое главное:

  • Теперь актуальная версия библиотеки libcurl поставляется в составе исполняемого файла.

Реализация встроенного HTTP-клиента базируется на этой библиотеке. Многие дистрибутивы операционных систем содержат устаревшую версию libcurl. Поставка актуальной версии библиотеки в составе Tarantool решает несколько известных проблем, среди которых падения, зависания, утечки памяти и проблемы с производительностью. Кроме того, это позволяет использовать опции, недоступные при работе со старой версией libcurl, например, тонкая настройка управления кэшированием открытых соединений.

  • Значительно повышена скорость начального включения узла в набор реплик.

В предыдущих версиях начальные данные, которые передавались на новую реплику, формировались на основе последнего снимка на диске (с последующей "докруткой" журналом транзакций). В новой версии передаваемые данные берутся на основе текущего read view, что во многих случаях значительно снижает время готовности реплики принимать и обрабатывать запросы.

  • Мы больше не сжимаем верхний уровень LSM дерева, что существенно увеличивает скорость обработки запросов при работе с диском.

Дисковый движок Vinyl, ориентированный на хранение больших данных, использует технологию LSM деревьев. Это позволяет строить иерархии обновлений данных (уровни). Размер уровней растет экспоненциально, поэтому очень важно сжимать их, особенно на более "низких" уровнях. В то же время, размер верхнего уровня относительно невелик, а количество запросов, завершающихся на нем, может быть очень большим. Начиная с новой версии, мы больше не сжимаем верхний уровень, что во многих случаях значительно повышает скорость обработки запросов.