RocksDb 7.9.0 库无法打开 RocksDb 6.2.2 文件?

  • 本文关键字:RocksDb 文件 rocksdb
  • 更新时间 :
  • 英文 :


我们已经使用RocksDb很多年了。有一个(. net)进程使用RocksDbSharp生成RocskDb数据。有一个c++库可以读取它们。都是从2018年左右开始的。两者都使用Snappy压缩。c++库是在c++ 11下编译的。

我们正在尝试升级到更新的RocksDb。在单元测试中,新的c++库可以很好地创建和读取新文件。但是,在访问现有数据时,它在第一次rocksdb::DB::Open调用时崩溃(分段错误)。更具体地说,调用堆栈转到LoadTableHandlers

下面是源代码,没什么特别的:

rocksdb::DB* db;
rocksdb::Options options;
options.compression = rocksdb::CompressionType::kSnappyCompression;
options.create_if_missing = false;
rocksdb::Status status = rocksdb::DB::Open(options, myValidPath, &db);

参见下面的调用堆栈。

0 x00007ffff97ad144 ZwWaitForSingleObjectWaitForSingleObjectEx 0 x00007ffff6ef306epthread_join 0 x0000000064945edc_ZNSt6thread4joinEv 0 x000000006fce0577rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, std::shared_ptrConst&, unsigned long long) 0x00000000009747d8rocksdb::VersionBuilder::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, std::shared_ptr0x00000000007e86fbrocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*, bool, bool) 0x00000000007ea471rocksdb::VersionEditHandler::CheckIterationResult(rocksdb::log::Reader const& rocksdb::Status*) 0x00000000007ec8c8 .日志含义rocksdb::VersionEditHandlerBase::Iterate(rocksdb::log::Reader&, rocksdb::Status*) 0x00000000007ebe4crocksdb::VersionSet::Recover(std::vector, bool, std::__cxx11::basic_string, bool) 0x00000000005bc135rocksdb::DBImpl::Recover(std::vectorconst&, bool, bool, bool, unsigned long long, rocksdb::DBImpl::RecoveryContext*) 0x0000000000570cafrocksdb::DBImpl::Open(rocksdb::DBOptions consts&, std::__cxx11::basic_string, std::vector, std::vector*, rocksdb::DB**, bool, bool) 0x00000000005698bbrocksdb::DB::Open(rocksdb::Options const&, std::__cxx11::basic_string, rocksdb::DB**) 0x000000000056b88f主要TestMain.cpp: 131__tmainCRTStartup 0 x00000000004013c7mainCRTStartup 0 x00000000004014fbBaseThreadInitThunk 0 x00007ffff8a174b4RtlUserThreadStart 0 x00007ffff97626a10 x0000000000000000

我们需要调整选项吗?

在Speedb Discord中分享了您的问题,并被问到以下问题:

"1。你是否尝试过使用最新的正式版本(例如7.7.3或7.7.2)?

  1. 从6.2.2到今天你有复习发行说明吗?也许这里有一个提示可以帮助解释这个错误。"

您可以通过此链接加入不和谐频道

点击这个链接找到关于你的问题的帖子

找到解决方法。要求:

options.OptimizeForSmallDb();

打开前消除崩溃。

RocksDb有什么解释或分析吗?

最新更新