我在MongoDB中执行fsync()操作,但它只是立即返回。它似乎没有做任何事情。如何验证数据是否确实已刷新到磁盘?
注意:我将syncdelay设置为0,这意味着写入不会每60秒自动fsync。
我的实际命令是使用perl驱动程序:
$connection->fsync({async=>1});
感谢。
答案 0 :(得分:3)
如果您不希望fsync
立即返回,则可以删除async
选项,它将成为阻止操作。
但如果您不希望它被阻止,可以使用shell中的db.currentOp来查询fsync的当前状态。
如果您想从Perl获取该信息,您可以使用我在this answer中概述的技术。不幸的是,没有方便的方法直接通过run_command
获取它。