写入LMDB失败

4

我尝试将数据写入lmdb数据库(参考了caffe/tools/convert_imageset.cpp)。控制台没有任何错误,但是.mdb文件的文件大小仍然为零,即没有数据写入文件,但是数据和锁定文件已创建。 我尝试的代码部分是:

scoped_ptr<db::DB> db(db::GetDB("lmdb"));
db->Open(argv[3], db::NEW);
scoped_ptr<db::Transaction> txn(db->NewTransaction());

datum.SerializeToString(&out);
txn->Put(key1, out);
txn->Commit();

我无法确定是否有遗漏。如果有LMBD工作原理的参考资料会很有帮助。


“size of .lmdb”是什么意思?据我所知,caffe中的lmdb数据库是一个包含data.mdblock.mdb两个文件的文件夹。如果你看到这两个文件的大小不为零,那么一切都正常。 - avtomaton
抱歉让您感到困惑,我的意思是数据.mdb文件的大小为零。 - Ravi
1个回答

1

在调用Put之前,请确保密钥不为空。
您可以使用mdb_dump并打印数据库的内容。


请问您能否提供一个更详细的示例,说明如何使用 mdb_dump 命令? - Shai
mdb_dump -pa <dbpathname> 将打印环境中所有数据库的内容。键和值将以 ASCII 形式打印。 - Kanti Varanasi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接