Можем ли мы загрузить файлы sst из одной RocksDB в другую RocksDB?

Я нашел ingestExternalFile() в RocksDB API. Но когда я пытаюсь загрузить файлы sst из одной RocksDB в другую RocksDB, это дает мне исключение:

Exception in thread "main" org.rocksdb.RocksDBException: External file version not found
    at org.rocksdb.RocksDB.ingestExternalFile(Native Method)
    at org.rocksdb.RocksDB.ingestExternalFile(RocksDB.java:2142)

Кто-нибудь может мне помочь?


person zsh_comeon    schedule 24.02.2018    source источник


Ответы (1)


Нет, ты не можешь.

При попытке сделать это будет несоответствие версий файлов, идентификаторов CF и порядковых номеров. Обычно SST для приема создаются с помощью SSTFileWriter. Этот модуль записи устанавливает идентификаторы ПОСЛЕДОВАТЕЛЬНОСТИ всех строк в SST и global sequence number равными 0. Когда этот файл SST загружается, база данных присваивает этому файлу подходящий глобальный порядковый номер после приема. При приеме SST из базы данных в базу данных это вызовет проблемы. Загрузка сжатого файла SST из одного экземпляра Rock в другой может появиться в будущих версиях.

person krithikaGopalakrisnan    schedule 01.08.2018