首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RocksDb 7.9.0库不能打开RocksDb 6.2.2文件?

RocksDb 7.9.0库不能打开RocksDb 6.2.2文件?
EN

Stack Overflow用户
提问于 2022-11-20 10:07:20
回答 2查看 23关注 0票数 0

我们已经使用RocksDb多年了。有一个(.NET)进程使用RocksDbSharp生成RocskDb数据。有一个C++库来读取它们。都是2018年左右的事。两者都使用Snappy压缩。C++库是在C++ 11下编译的。

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

这是源代码,没有什么特别之处:

代码语言:javascript
复制
    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);

请参见下面的调用堆栈。

rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*,int,bool,bool,std::shared_ptr const&,未签名长) 0x00000000009747d8 rocksdb::VersionBuilder::LoadTableHandlers(rocksdb::InternalStats*,int,bool,bool,0x000000007e86fb rocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*,bool,bool) 0x00000000007e86fb rocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*,bool,bool)0x0000000000007e86fb rocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*,bool,bool)0x00000000007e86e86fb rocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*,bool,bool)0x0000000000007ea 471 rocksdb::VersionEditHandler::CheckIterationResult(rocksdb::log::Reader const&,rocksdb::VersionEditHandler::CheckIterationResult(rocksdb::log::Reader const&,rocksdb::VersionEditHandler::CheckIterationResult(rocksdb::log::Reader const&,0x0000000000007e86fb rocksdb::VersionEditHandler::LoadTables(rocksdb::ColumnFamilyData*,bool,bool)rocksdb::VersionEditHandlerBase::Iterate(rocksdb::log::Reader&,rocksdb::Status*) 0x000000007ec8c8 rocksdb::VersionSet::Recover(std::vector const&,bool,std::__cxx11::basic_string,bool) 0x0000000000005bc135 rocksdb::DBImpl::Recover(std::vector const&,std::vector const&,std::vector* *,rocksdb:DB**,bool,bool)std::char_traits,std::allocator > const&,rocksdb::DB**) 0x000000000056b88f主TestMain.cpp:131 __tmainCRTStartup 0x00000000004013c7 mainCRTStartup 0x00000000004014fb BaseThreadInitThunk 0x00007ff8a174b4 RtlUserThreadStart 0x0000000056b88f__tmainCRTStartup 0x00000000000000000000 000

我们需要在选项中做些调整吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-24 03:16:52

找到了解决办法。呼叫:

options.OptimizeForSmallDb();

在打开之前消除崩溃。

RocksDb的人有什么解释或分析吗?

票数 0
EN

Stack Overflow用户

发布于 2022-11-23 08:19:45

在Speedb不和中分享你的问题,并被问到以下问题:

"1.你试过用最新的正式版本之一(如7.7.3或7.7.2)这样做吗?

  1. 你看过6.2.2到今天的发行说明了吗?也许有个提示可以帮助解释这个错误。“

您可以使用此链接加入不和谐频道。

按照这个链接找到关于你的问题的线索

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74507180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档