3

在研究如何检查 MongoDB 的大小时,我发现了这条评论

请注意,dbstats 在运行时会阻塞您的数据库,因此它不适合在生产环境中使用。https://jira.mongodb.org/browse/SERVER-5714

查看链接的错误报告(仍处于打开状态),它引用Mongo 文档的话说

命令需要一些时间来运行,通常是几秒钟,除非 .ns 文件非常大(通过使用 --nssize)。在运行其他操作时可能会被阻止。

但是,当我检查当前的 Mongo 文档时,我没有找到该文本。相反,他们说

运行命令所需的时间取决于数据库的总大小。由于该命令必须触及所有数据文件,因此该命令可能需要几秒钟才能运行。

对于使用 WiredTiger 存储引擎的 MongoDB 实例,在不正常关闭后,collStats、dbStats、count 报告的大小和计数统计信息可能会减少多达 1000 个文档。要恢复集合的正确统计信息,请对集合运行验证。

这是否意味着WiredTiger存储引擎通过保持持续的统计信息将其更改为非阻塞调用?

4

1 回答 1

0

游戏有点晚了,但我在寻找答案时发现了这个问题,答案是:是的,直到 3.6.12 / 4.0.5它正在获取一个“共享”锁(“R”),它在执行。之后,它现在是一个“意图共享”锁(“r”),它不会阻止写入请求。读取请求不受影响。

来源:https ://jira.mongodb.org/browse/SERVER-36437

于 2020-02-24T16:54:31.873 回答