首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fsync MongoDB行为

fsync MongoDB行为
EN

Stack Overflow用户
提问于 2021-12-02 10:06:52
回答 1查看 22关注 0票数 0

根据文档,使用lock=true的fsync应该会阻止写入。但值得注意的是,尽管它阻止了写操作,但它仍然在写。这是预期的行为吗?

我在本地机器上安装了MongoDB,并将其作为单节点副本集运行。正在使用的MongoDB版本为4.2.11

我执行fsync,如下所示。

然后尝试写入,它就会被阻塞。我会取消的。

然后执行fsync解锁。

预计写操作不会起作用,但无论如何它都是持久的。fsync中有bug吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-02 18:24:04

当你关闭被阻止的插入(例如,通过control+ C或任何其他机制),但不知何故进程没有停止,并且在你运行unblock fsync之后,命令仍然在后台进行并被插入,或者当插入命令被阻止之后,你运行unblock fsync,使块插入自动解锁,这可能是可能的。我在v4.4.10(比你的版本更高的版本)上测试了这一点,根据文档,它工作得很好。

首先插入一条记录

然后使用fsync

然后尝试再插入一条记录,该记录将被阻塞,并随后使用Ctrl +C组合键终止

然后取消阻止fsync

确认第二次插入没有成功(这就是预期的行为)

您还可以检查插入之前和之后的db.serverStatus(),以查看服务器接受的"insert“命令的差异。这可以为您提供有关命令是否以某种方式到达的提示。信息如下所示

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

https://stackoverflow.com/questions/70197494

复制
相关文章

相似问题

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