В моем проекте я хочу хранить некоторые данные в быстром хранилище, но некоторые данные слишком велики для хранения в оперативной памяти. Могу ли я хранить некоторые данные в memtx, а некоторые в виниле?
Можно ли одновременно сохранять данные и в винил, и в memtx?
Ответы (1)
Tarantool прекрасно работает с пространствами memtx
и vinyl
в рамках одного процесса. Итак, вы просто создаете пространство, указываете тип двигателя (memtx|vinyl
) и все готово. См. документацию. больше информации.
box.cfg{}
box.schema.create_space('memtx_test', {engine = 'memtx'})
box.schema.create_space('vinyl_test', {engine = 'vinyl'})
Однако могут быть сложные сценарии. Например, вы можете захотеть перевести ваши memtx
(горячие/быстрые) данные в vinyl
(холодное/медленное) хранилище и сделать это атомарно. Tarantool пока не поддерживает межсерверные транзакции, поэтому вы не сможете удалить кортеж из memtx
пространства и вставить его в vinyl
пространство за одну транзакцию. Для такого варианта использования вам может потребоваться создать обходной путь, например, сохранить третье пространство (memtx
) для временных данных.
person
RunFor
schedule
23.06.2020