1

我在 MongoDB 中执行 fsync() 操作,但它只是立即返回。它似乎没有做任何事情。如何验证数据是否确实已刷新到磁盘?

注意:我将 syncdelay 设置为 0,这意味着写入不会每 60 秒自动 fsync 一次。

我的实际命令是使用 perl 驱动程序:

$connection->fsync({async=>1});

谢谢。

4

1 回答 1

3

如果您不想fsync立即返回,则可以删除该async选项,它将成为阻塞操作。

但是如果你不希望它被阻塞,你可以使用shell 中的db.currentOp来查询 fsync 的当前状态。

如果您想从 Perl 获取该信息,可以使用我在此答案中概述的技术。不幸的是,没有方便的方法可以直接通过run_command.

于 2013-07-11T17:25:30.897 回答