我们的mongo日志显示:我们有4套副本集
Thu Jul 31 03:31:33.940 [conn2117994] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285460755727107211 ntoreturn:0 keyUpdates:0 locks(micros) r:111 nreturned:0 reslen:20 5011ms
Thu Jul 31 03:31:33.976 [conn2117999] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285462893114917907 ntoreturn:0 keyUpdates:0 locks(micros) r:111 nreturned:0 reslen:20 5011ms
Thu Jul 31 03:31:38.952 [conn2117994] getmore local.oplog.rs query: { ts: { $gte: Timestamp 1406791765000|9 } } cursorid:6285460755727107211 ntoreturn:0 keyUpdates:0 locks(micros) r:95 nreturned:0 reslen:20 5011ms
ecset01:PRIMARY> db.printReplicationInfo()
configured oplog size: 83927.3283203125MB
log length start to end: 2399486secs (666.52hrs)
oplog first event time: Tue Jun 24 2014 22:58:20 GMT-0400 (EDT)
oplog last event time: Tue Jul 22 2014 17:29:46 GMT-0400 (EDT)
now: Tue Jul 22 2014 17:29:46 GMT-0400 (EDT)
ecset01:PRIMARY>
如果这是一个问题或者我们需要减少oplogsize,请告诉我。
答案 0 :(得分:1)
这是正常行为。复制使用tailable游标从oplog读取,使用awaitdata选项。这意味着如果没有满足查询的数据(例如,没有大于传入时间戳的ts的文档),它将等待几秒钟 - 大约5秒,这就是为什么您看到查询时间为5011毫秒的原因。这不是一个令人担忧的原因 - 这意味着您没有最近的更新。如果您要添加/修改/删除文档,您会看到getmore条目返回的速度要快得多。
有关线协议层的tailable游标和awaitdata选项的详细信息:
http://docs.mongodb.org/meta-driver/latest/legacy/mongodb-wire-protocol/?pageVersion=106#op-query
您可能会发现此讨论很有趣:
https://groups.google.com/forum/#!topic/mongodb-user/E7BSv624nBg