Можно ли одновременно сохранять данные и в винил, и в memtx?

В моем проекте я хочу хранить некоторые данные в быстром хранилище, но некоторые данные слишком велики для хранения в оперативной памяти. Могу ли я хранить некоторые данные в memtx, а некоторые в виниле?


person vvzvlad    schedule 23.06.2020    source источник


Ответы (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