Работа с движками базы данных
Движок базы данных — это набор низкоуровневых процессов, которые фактически хранят и получают значения кортежей. Tarantool DB поддерживает два движка базы данных:
- memtx — in-memory движок базы данных, используется по умолчанию.
- vinyl — дисковый движок базы данных. Поддерживается с версии Tarantool DB 3.0.0. Движок vinyl предназначен для работы с большими объёмами данных, которые превышают доступный объём оперативной памяти. В отличие от memtx, который хранит данные в оперативной памяти, vinyl хранит данные на диске, используя LSM-деревья (Log-Structured Merge Tree).
Задать тип движка можно при создании спейса,
используя опцию engine:
box.schema.space.create('messages', { engine = 'vinyl', if_not_exists = true })
Подробную информацию о принципах работы движков memtx и vinyl, а также их сравнение между собой можно найти в главе Движки базы данных документации Tarantool.
Tarantool DB поддерживает два подхода к работе с данными, которые не требуют постоянного хранения в оперативной памяти:
-
архивация данных через модуль
cooler— автоматический перенос (охлаждение) устаревших кортежей из спейсов memtx в спейсы на vinyl на основе времени жизни кортежей. Доступно с версии 3.0.0. Этот сценарий не предполагает нагрева — после архивации кортежи остаются в движке vinyl для долгосрочного хранения. Узнать больше можно в разделе Архивация данных по их времени жизни; -
прямое хранение в vinyl — данные пишутся напрямую в спейсы на движке vinyl, который выступает в роли холодного слоя. Доступно с версии 3.0.0. Движок vinyl используется в качестве основного движка хранения, а memtx может применяться в качестве кэша для горячих данных. В этом сценарии возможен как нагрев, так и гибридное хранение. Узнать больше можно в разделе Охлаждение и нагрев данных в vinyl.