使用writeconcern回调后,节点MongoDB记录不可用

时间:2018-04-11 15:50:31

标签: node.js mongodb node-mongodb-native

我们在生产服务器上看到这个令人费解的问题,其中MongoDB偶尔无法查询 writeConcern 刚刚告诉我们记录已写入数据库的记录。

服务器上安装了以下版本:

  • Node.js 4.x LTS
  • MongoDB 3.2
  • node-mongodb-native 2.2

在使用 writeConcern 1 启动struct Animal { Animal(int legs = 4) : legs{legs} {} int legs; }; struct Ant : Animal { Ant(int size = 0) : Animal{6}, size(size) {} Ant(std::string s) : Ant(0) {} int size; }; struct Spider : Animal { Spider(int size = 0) : Animal{8}, size{size} {} Spider(std::string s) : Spider(0) {} int size; }; 操作后,原因会立即在回调中查询记录。

在我们的开发服务器上,100%的时间可以正常运行。但是,在我们的生产服务器上,每天大约有10,000个查询,我们观察到第二个查询在大约0.01%的情况下返回零文档。

有趣的是,实际上有文件应该返回,并且在500毫秒之后触发完全相同的查询时会返回文件 do 。显然,我们不希望为所有响应添加500毫秒的延迟

以下是我上面解释的简化说明:

bulk

考虑到writeConcern是专门针对这样的情况而设的,是什么导致在少数情况下失败?

请注意,有一个mongodb实例正在运行。没有集群或分片。

0 个答案:

没有答案