我在RocksDB API中找到ingestExternalFile()
。但是当我尝试将一个RocksDB中的sst文件摄取到另一个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)
有人能帮助我吗?
答案 0 :(得分:1)
不,你不能。
当您尝试这样做时,文件版本,CF ID和序列号将不匹配。通常,要摄取的SST是使用SSTFileWriter创建的。编写器将SST和global sequence number
中所有行的SEQUENCE ID设置为0。摄取此SST文件时,db在摄取后为该文件分配合适的全局序列号。
将SST从数据库吸收到数据库时,这将引起问题。
在将来的版本中,可能会将压缩的SST文件从一个岩石实例导入另一个岩石实例。