MongoDBTailableCursors


MongoDB Tailable Cursors

MongoDB 有一个叫 Tailable Cursors的特性,它类似于tail -f 命令,你在一个Capped Collection上面执行查询操作,当操作完成后,你可以不关闭返回的数据Cursor,并持续地从中读出新加入的数据。

在高写入的Capped Collection上,索引不可用时,可使用Tailable Cursors。例如,MongoDB复制使用了Tailable Cursors来获取Primary的尾oplog日志。

考虑以下与Tailable Cursors相关的行为:

从事中国电信成都枢纽中心,服务器租用,云主机,网页空间,国际域名空间,CDN,网络代维等服务。

  • Tailable Cursors不使用索引,并以自然排序返回文档。

  • 因为Tailable Cursors不使用索引,查询的初始扫描非常耗性能;但是,游标初始化完后,随后获取到的新增加的文档是很快速的。

  • Tailable Cursors如果遇到以下情况之一将会僵死或无效:

    • 查询无匹配结果。

    • 游标在集合尾部返回文档,随后应用程序删除了该文档。

僵死的游标id为0。

DBQuery.Option.awaitData

在使用TailableCursor时,此参数会在数据读尽时先阻塞一小段时间后再读取一次并进行返回。

跟踪oplog的示例

use local
var cursor = db.oplog.rs.find({"op" : "u", "ns" : "MyDB.Product"},{"ts": 1, "o2._id": 1}).addOption(DBQuery.Option.tailable).addOption(DBQuery.Option.awaitData);
while(cursor.hasNext()){
    var doc = cursor.next();
    printjson(doc);
};


2.6版的游标方法:
cursor.addOption()
https://docs.mongodb.com/v2.6/reference/method/cursor.addOption/

3.2版的游标方法:
cursor.tailable()
https://docs.mongodb.com/manual/reference/method/cursor.tailable/


网站名称:MongoDBTailableCursors
链接地址:http://bzwzjz.com/article/gpjhge.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: app网站建设 成都网站设计 攀枝花网站设计 成都网站设计 成都响应式网站建设公司 重庆网站建设 重庆企业网站建设 手机网站制作 专业网站建设 H5网站制作 定制网站建设 网站设计公司 成都定制网站建设 上市集团网站建设 高端网站设计 成都网站建设 成都企业网站建设 成都网站制作 手机网站建设 梓潼网站设计 成都定制网站建设 成都企业网站制作