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

Tarantool хранит данные в оперативной памяти — in‑memory. Решения этого класса быстрые, но им часто не хватает гарантий целостности данных. В Tarantool эта проблема решена. Оставьте заявку, и мы расскажем вам о преимуществах Tarantool
developers-hero-img.png

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

Решения in-memory работают в оперативной памяти, поэтому они такие быстрые.

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

OLTP, нужна максимальная производительность
Нужно ускорить медленное приложение или базу
Нужно предсказуемое время отклика от системы
Вы строите систему, работающую в режиме реального времени

Почему Tarantool?

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

Задавайте логику обработки данных с помощью языков программирования Lua (внутри Tarantool) и Rust и C (для дополнительных модулей). В Tarantool код и база данных находятся в одном адресном пространстве. Обработка данных в месте их хранения позволяет снизить задержки в исполнении операций.
developers-why-img-1.png

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

Tarantool позволяет выбрать режим синхронной или асинхронной репликации в зависимости от задачи и характера данных. Асинхронная репликация гарантирует максимальную скорость работы кластера и минимальные задержки. А синхронная репликация, линеаризуемые чтения и движок MVCC (multi-version concurrency control) вместе обеспечивают наивысший уровень консистентности из возможных — strict serializable.
developers-why-img-2.png

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

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

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

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

Экосистема Tarantool

developers-scheme.png

Закажите демо

Закажите демонстрацию у наших экспертов
Img.png

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

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

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


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

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


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

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

В составляющих стандартах надежности и предсказуемости ACID — атомарности, согласованности, изолированности и надежности — in-memory решения часто жертвуют последней.

Это связано с самим принципом хранения в оперативной памяти, который несет риск потерять часть информации при сбоях и рестарте. Чтобы преодолеть этот риск, Tarantool использует ряд методов:

Записывает логи операций — WAL-файлы
Делает снэпшоты — снимки состояния данных
Записывает данные на несколько реплик синхронно

Бесконечное расширение

Встроенная кластеризация помогает сделать несколько копий на разных серверах или разделить данные по нескольким узлам. За три клика в web-интерфейсе вы можете сделать новую реплику или подключить дополнительный сервер. Распределение данных, балансировка нагрузки и обработка отказов происходят автоматически. Если один из узлов выходит из строя, нагрузка автоматически переводится на реплику.
developers-card-img.png

Остались вопросы?

Задайте свой вопрос или расскажите о нужном решении — мы ответим
fos-img.png