Основные принципы работы Tarantool

Как работает Tarantool

Tarantool хранит данные в оперативной памяти — in-memory. Решения этого класса быстрые, но им часто не хватает гарантий целостности данных. Tarantool преодолевает эти проблемы. Скачайте и убедитесь в его скорости, гибкости и надежности.

Скачать

Когда стоит выбрать in-memory?

Решения in-memory работают в оперативной памяти, поэтому они такие быстрые. Вы избегаете накладных расходов на кэширование и чтение с диска. Плюс резидентный подход снижает TCO, так как процессор используется эффективнее, и вам нужно меньше серверов. Есть четыре основных случая, когда при разработке приложения хорошо подходит in-memory.

OLTP, нужна максимальная пропускная способность для множества несложных запросов

Нужно ускорить медленное приложение или базу при помощи кэширующего прокси

Существующие дисковые брокеры очередей не справляются

Нужно предсказуемое время отклика от системы

Почему Tarantool?

Совмещает роли базы данных и сервера приложений

Задавайте логику обработки данных с помощью языка программирования Lua внутри Tarantool. Поскольку код и база данных находятся в одном адресном пространстве, то приложениям не нужно ходить по сети, а значит, вы избегаете latency — задержки в исполнении операций. Tarantool использует не просто интерпретатор, а JIT-компилятор — LuaJIT. Последний преобразует программу в машинный код при исполнении.

Два движка Tarantool: in-memory и дисковый

По умолчанию Tarantool использует in-memory движок — memtx. Когда данных становится больше доступного объема RAM, мы рекомендуем перенести исторические данные, к которым нет активных обращений, на дисковый движок — vinyl. Такой подход оптимизирует ресурсы: вместо in-memory + классическая база достаточно Tarantool.

Вторичные индексы

Ко всем данным в Tarantool можно построить индексы. Они позволяют делать поиск по индексированным полям быстрым и предсказуемым. Когда нужно выбирать одни и те же данные по нескольким критериям, то вы можете построить несколько индексов в одной таблице. Tarantool поддерживает обычные индексы и индексы по содержанию объектов JSON-полей.

Гибридная модель хранения данных

В Tarantool вы можете выбрать модель хранения данных. Используйте табличный формат, а когда количество и имена полей заранее неизвестны — JSON или кортежи. Для таблицы можно задать формат, который фиксирует типы данных в колонках: для всей таблицы или только для ее части. Если вы задали формат данных, то к таблице можно обращаться при помощи SQL-запросов.

scroll-схема
community-reasons scheme

Попробуйте Tarantool в работе или закажите демонстрацию у наших экспертов

Гарантии сохранности в Tarantool

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

Упреждающая запись

Оба движка — in-memory и дисковый — используют упреждающую запись на диск. Результат транзакции возвращается только после того, как он будет сохранен на диск. Это значит, что даже внезапная перезагрузка сервера не приводит к потере данных.

Синхронная репликация

При выходе из строя диска или сервера избежать потери данных помогает репликация. Типовой лаг асинхронной репликации в Tarantool 100-200мкс, что снижает вероятность потерь фактически до нуля. Когда нужны полные гарантии сохранности, в Tarantool можно использовать синхронную репликацию и настраивать ее только для критически важных данных в отдельных таблицах.

Tarantool соответствует ACID

В составляющих стандарта надежности и предсказуемости ACID — атомарности, согласованности, изолированности и надежности — in-memory решения часто жертвуют последней. Это связано с самим принципом хранения в оперативной памяти, который несет риск потерять часть информации при сбоях и рестарте. Чтобы преодолеть этот риск, Tarantool использует ряд методов:

Записывает логи транзакций — wal-файлы

Делает снэпшоты — снимки состояния данных

Записывает данные на несколько реплик синхронно

Бесконечно
расширяться

Сделать несколько копий на разных серверах или разделить данные по нескольким узлам Тarantool поможет Cartridge — фреймворк для масштабирования. Он позволяет создавать и настраивать кластеры из нескольких экземпляров Tarantool.

Скачайте Tarantool и убедитесь в его скорости и надежности

Скачать

Получить консультацию

Заказать
демонстрацию

Спасибо за обращение

Специалисты Tarantool свяжутся с вами по оставленным контактам

Thanks
Thanks