Перейти к содержимому

Tarantool что это

  • автор:

Уникальные возможности Tarantool

Tarantool — это крайне интересная база данных.
Представление о ней можно получить из доклада Константина Осипова Tarantool: как обрабатывать 1,5 млрд запросов в сутки?

Этой заметкой я хочу обратить внимание на уникальные возможности, которые отличают Tarantool от других подобных решений и делают его полезным инструментом.
Кроме того, я расскажу, чем можно помочь этому открытому проекту и почему это круто 🙂

Что такое Tarantool
  • Это очень быстрая in-memory база данных
  • Модель данных «ключ — структурированное значение»
    Каждое значение — это кортеж из произвольного количества полей.
    Например:
    (101, «johnsmith», «25Ezk62$i2Z12QYY», «USA»)
    (102, «ivankuznetsov», «35Fal73$y3x23KZZ», «RUS»)
  • Первый элемент кортежа — это первичный ключ, по которому осуществляется доступ ко всему кортежу
  • Чтение всегда из памяти
  • Данные в памяти защищены логом транзакций и снапшотами на диске
Tarantool — это зрелый проект

Tarantool разработан в Mail.ru и активно там используется.
В некотором смысле, Tarantool можно сравнить c Nginx, который разрабатывался в Rambler, и только через некоторое время обрел заслуженную славу и признание сообщества, будучи открытым проектом.

Ключевые возможности Tarantool

    Пространства ключей
    Пространства — это коллекции объектов. Можно думать о пространствах, как об отдельных таблицах. Это удобно, поскольку в одной коллекции, как правило, находятся сущности одного типа. В том же Redis для разделения сущностей предлагается просто добавлять к ключам префикс («user:1001», «session:9994513»). У каждого пространства в Tarantool может быть свой набор индексов.

Как начать использовать Tarantool прямо сейчас
  1. У Tarantool есть простой SQL-клиент
    С его помощью можно делать любые запросы и экспериментировать, не написав ни строчки кода
  2. Tarantool поддерживает протокол Memcached
    Используйте Tarantool, как лучший Memcached (со снапшотами и логом транзакций на диске).
  3. Для Tarantool есть клиентские библиотеки на python, ruby, perl, php, java и C
    Подумайте, как использовать возможности Tarantool в вашем проекте
Чем я могу помочь?

Tarantool — это зрелая система, которая давно находится в реальной эксплуатации.

Но как открытый проект он существует относительно недавно. Поэтому информации в интернете мало, сообщество небольшое, документация не идеальна, книжек O’Relly не издает.

И это хорошо! Ведь в проекте, который уже широко известен, трудно сделать что-то существенное — все сделано до нас. А здесь — нет!

Поэтому у вас есть реальный шанс внести значительный вклад в развитие этого перспективного проекта.
Ранние последователи всегда в выигрыше. Этот проект вполне может стать заметным, например, как Nginx.

  • Пробуйте! Задавайте вопросы в рассылке. Пишите посты в блогах и
  • Используйте в своих проектах (можно начать просто с замены memcached)
  • Сделайте пакеты для вашего дистрибутива
  • Создавайте и дорабатывайте клиентские библиотеки.
  • Присылайте патчи к серверу. Или даже форкайте и делайте что-то свое!
Ссылки
  • Официальный сайт Tarantool
  • Репозиторий на Gitub
  • Примеры хранимых функций на Lua
  • Документация
  • Русскоязычный список рассылки
  • Доклад (слайды и видео) Tarantool: как обрабатывать 1,5 млрд запросов в сутки?

Главный архитектор СУБД Tarantool ушел из Mail.ru и заявил о «распаде команды»

Главный архитектор СУБД Tarantool Константин Осипов вышел из состава команды поддержки Tarantool в Mail.ru и сделал собственный форк СУБД на GitHub. Свои действия он объясняет тем, что компания включает в код патчи низкого качества.

Уход Осипова

Главный архитектор Константин Осипов покинул группу поддержки СУБД Tarantool в Mail.ru. На сайте groups.google.com он сообщил о «распаде» (collapse) команды, после которого оставшиеся коммитеры стали нарушать правила управления проектом, отклоняясь от дорожной карты развития продукта. В беседе с CNews Осипов уточнил, что речь идет о распаде команды мейнтейнеров, то есть тех разработчиков, у которых есть право на внесение изменений в основную ветку проекта.

Несмотря на бурные возражения Осипова, в дерево кода добавлялись патчи низкого качества, что заставило разработчика сделать форк СУБД в своем аккаунте на GitHub. Теперь он планирует продолжать развитие проекта в этой ветви, в связи с чем просит присылать ему патчи. Также Осипов сообщает, что в настоящий момент занимается поддержкой форка в одиночку и ищет квалифицированных соратников, «в какой бы компании они не работали».

Разработчик не исключает, что Mail.ru изменит модель развития Tarantool на закрытую, по-прежнему оставив открытым исходный код.

Константин Осипов рассказал CNews, что действительно ушел из Mail.ru около полугода назад, но они с компанией продолжают искать пути совместной работы над проектом. Сама Mail.ru также подтвердила CNews, что Осипов больше не работает в компании — начиная с весны он «снизил свое присутствие и участие в проекте».

«Сейчас над платформой Tarantool работает большая команда, которая значительно усилилась за последние полгода. Мы продолжаем активную разработку opensource-версии, а также enterprise-продукта для крупных клиентов. Tarantool всегда являлся opensource-проектом, и это останется неизменным. До конца года выйдет несколько важных релизов платформы», — сообщил CNews операционный директор СУБД Tarantool Игорь Ермаков.

Главный архитектор СУБД Tarantool Константин Осипов пришел в Mail.ru в 2010 г. До февраля 2016 г. занимался развитием Tarantool в качестве менеджера по проектированию, затем стал техническим директором. Судя по профилю Осипова на LinkedIn, в мае 2019 г. занял позицию тимлида в ScyllaDB. До Mail.ru сотрудничал с Oracle, Sun, MySQL и Spylog. В 2001 г. окончил МГУ им. М. В. Ломоносова. В 2018 г. Осипов стал лауреатом премии HighLoad++ Awards.

Что такое СУБД Tarantool

Система управления базами данных Tarantool — это собственное решение Mail.Ru Group, основанное на принципах Open Source. Разработка Tarantool началась более десяти лет назад. Система используется в собственных сервисах Mail.Ru: «Почте», «Облаке Mail.Ru», myTarget и др. Сначала продукт был предназначен для внутреннего использования Mail.Ru, но в апреле 2016 г. компания выложила его в открытый доступ под лицензией BSD.

osipov600.jpg

Главный архитектор СУБД Tarantool Константин Осипов

Техническая поддержка и кастомизация СУБД являются платными, что обеспечивает монетизацию технологии. Mail.ru Group сообщала, что разработка была внедрена в качестве пилотного проекта в Avito, Qiwi и других компаниях.

По словам разработчиков, главное достоинство Tarantool — способность эффективно работать при высоких нагрузках и с большими объемами данных. В Mail.Ru уверяют, что один сервер с Tarantool заменяет более 30 серверов с обычной СУБД, поскольку его производительность составляет миллион транзакций в секунду на одном ядре простейшего commodity-сервера. По словам авторов проекта, Tarantool отменяет необходимость формирования гетерогенной системы из SQL СУБД, NoSQL СУБД, с ним не нужно создавать огромные кластера и докупать лишнее железо.

Инновации и внедрения

С осени 2016 г. на Tarantool начал переводить свои сервисы мобильный оператор «Билайн». В декабре 2016 г. Mail.ru сообщила, что намерена внедрить в СУБД полноценную поддержку SQL и тем самым потеснить на рынке Oracle, причем не только в России. В июне 2017 г. Mail.Ru Group в сотрудничестве с DIS Group, дистрибьютором американского разработчика СУБД Informatica, провели нативную интеграцию Informatica с Tarantool. В мае 2018 г. Mail.Ru выпустила распределенную версию Tarantool для коммерческих клиентов.

tarantoll910.jpg

Пост, в котором Осипов сообщает о «распаде» команды поддержки СУБД Tarantool

В июле 2018 г. стало известно о внедрении Tarantool для работы с большими данными в «Аэрофлоте». В августе 2018 г. Альфа-банк внедрил транзакционное ядро, созданное на базе Tarantool. Также среди заказчиков технологии числятся мобильные операторы Yota и «Мегафон». По оценкам пользователей интернета, Tarantool является самым удачным программным продуктом Mail.ru.

Дополнение

Через сутки после публикации данного материала Mail.ru выпустила пресс-релиз, в котором уточнила, что Осипов ушел из компании весной 2019 г., но продолжал выступать в качестве ревьюера Tarantool на GitHub. В начале сентября он отказался принимать участие в разработке ядра и делать ревью кода.

Проблемы российского телекома: не хватает свободных частот и спутников связи

Mail.ru сообщает, что над СУБД работает команда, которая насчитывает более 70 человек. Развитие идет как в направлении enterprise, так и в направлении open source. «Для Tarantool версия open-source является стратегической. Мы никогда не обсуждали, не думали и не планировали закрытие open-source версии. Публичные предположения Константина Осипова на эту тему не являются достоверными, это может ввести сообщество в заблуждение», — сообщается в релизе.

Mail.ru подчеркивает, что у Tarantool все хорошо — уже без Осипова вышло три больших релиза. Компания отмечает, что направлением open source продолжает руководить Кирилл Юхин, enterprise курирует Константин Назаров.

Константин Осипов сообщил в беседе с CNews, что компания отказалась от переговоров о совместном развитии Tarantool, которые вела с ним до этого.

Tarantool — СУБД и сервер приложений

Tarantool — нереляционная СУБД и Lua-сервер приложений в одном. При этом весь код открыт под лицензией BSD.

В Метод Лаб Tarantool используется прежде всего как быстрая СУБД с данными в оперативной памяти. Эта система наилучшим образом подходит для таких данных как сессии, данные о просмотрах объектов, рейтинги и счетчики.

Появился Tarantool в компании Mail.ru как средство хранения самых горячих данных систем. Для решения этой задачи все данных хранились в оперативной памяти (RAM) и все накладные расходы по обработке данных (проверка прав, блокировки доступа, конкурентный доступ и т.д.) были минимизированы. Однако, Tarantool изначально проектировался как надежный источник данных с поддержкой персистентности (восстановления данных после рестарта), репликации и шардинга. В этом его основное отличие от систем Memcached и Redis.

Одним из главных приоритетов разработчики проекта указывают высочайший уровень производительности при различных сценариях использования (в большинстве бенчмарков около 100k rps на одном ядре CPU). В отличие от многих реляционных СУБД, Tarantool спокойно выдерживает большой процент запросов на запись с одновременным чтением данных.

Помимо функций shemaless-СУБД, Тарантул является Lua-сервером приложений. Это даёт возможность перенести вычисления (манипуляции с данными) ближе к месту хранения. При этом скорость выполнения Lua-кода остаётся высокой за счет использования LuaJIT (в некоторых случаях близка к языку C). Таким образом, на Tarantool можно разработать HTTP-сервер или сервер очередей, использовать сложные хранимые процедуры и так далее.

Список основных возможностей Tarantool:

  • Встроенный язык Lua и LuaJIT.
  • Системы хранения: Memtx (в оперативной памяти), Sophia (на диске).
  • Поддержка индексов HASH, TREE, RTREE, BITSET.
  • Поддержка составных и вторичных индексов.
  • Необязательное описание схемы данных (обязателен лишь primary индекс).
  • Поддержка атомарности выполения операций.
  • Отсутствие блокировок (lock-free).
  • Модель кооперативной многозадачности.
  • Гарантия последовательного выполнения транзакций.
  • Поддержка расширений через LuaRocks. Готовые модули: сервер очередей, HTTP-сервер, удаление устаревших данных, шардинг и другие.
  • Возможность связи с реляционными СУБД через коннекторы: MySQL, PostgreSQL.

За профессиональной разработкой на Tarantool обращайтесь к нам!

Ускорение сайтов

Экспертное ускорение сайтов

Ускорение сайтов
Цена от 69 900 Р

Tarantool

Tarantool — это платформа in-memory вычислений, включающая в себя СУБД NoSQL-типа и встроенный Lua-сервер приложений.

Основные преимущества Tarantool:

  • толерантность к нагрузке на запись;
  • предсказуемая задержка запроса;
  • кеширование с отложенной записью.

Tarantool хорошо подходит для задач создания:

  • высоконагруженных систем и OLTP-систем;
  • кеширующего прокси для данных;
  • быстрого брокера очередей.

Доступны следующие конфигурации:

  • Single.
  • Кластер.
  • Enterprise (по запросу): кластер с дополнительными проприетарными модулями и официальной поддержкой.
  • Data Grid (по запросу): кластер, предназначенный для построения систем хранения и аналитики сложных бизнес-объектов.

Для конфигураций Single и Кластер используется редакция Tarantool с открытым исходным кодом — Community Edition.

Для конфигурации Enterprise используется Tarantool Enterprise Edition, для конфигурации Data Grid — система интеграции данных Tarantool Data Grid.

Что дальше

  • Создайте инстанс СУБД.
  • Подключитесь к СУБД.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *