我们有一个分片集群,有4个mongos,3个配置和两个分片(每个分片有3个成员副本集)。所有mongo实例都在3.2版本上。
我们有一个及时的工作,每5分钟运行一次(如果不存在则插入;如果存在则更新)大约16K记录在一个目前有1.5亿条记录的集合中。这个系列从过去几年开始维护,每天新插入约20k。
直到最后一天(昨天),这个更新过程只用了30-35秒。但现在观察到这个更新时间突然增加到大约110秒。
我们使用以下方法来跟踪原因但无法找到根本原因 -
我们陷入困境,无法找到脚本时间突然发生的原因。非常感谢任何帮助。
插入和更新代码 -
//dataMap is a hashMap containing all parameters.
UpdateOptions updateOptions = new UpdateOptions().upsert(true);
Document updateObject = new Document("$setOnInsert",new Document("cat", dataMap.get("cat"))
.append("$set", new Document("timeStamp",dataMap.get("timeStamp"))));
Document query = new Document("host",dataMap.get("host"));
query.append("timeStamp",dataMap.get(timeStamp));
// collectionObject below is object of MongoCollection<Document>
collectionObject.updateOne(query, updateObject, updateOptions);
谢谢和问候,
Vibhav
PS - 如果有人选择对此问题进行投票,请在评论中提及原因。