摘要: 对于某些应用程序来说,写关注是重要的。它能判断哪些写操作成功写入了,哪些失败了,对于失败的操作,驱动程序能返回错误,由应用程序决定怎么处理。如果没有写关注,应用程序发送一个写操作到socket后,就不会管后面发送了什么情况,不知道是否成功写入数据库,这种情形对于日志类型的应用程序还是可以接受的,因为偶尔的写失败不会影响整个日志的监控情况;带有写关注的操作会等到数据库确认成功写入后才能返回,因此写关注会带来一点性能的损失。下面先分析复制集上写关注配置。默认情况下复制集的写关注只针对primary节点,当应用程序发送一个写操作请求时,驱动程序会调用getLastError命令返回写操作的执行情况( 阅读全文
posted @ 2014-01-27 22:16 郭远威 阅读(1192) 评论(0) 推荐(1) 编辑
摘要: 上面的介绍的数据同步(http://www.cnblogs.com/guoyuanwei/p/3293668.html)相当于传统数据库中的备份策略,mongoDB在此基础还有自动故障转移的功能。在复制集概述那一节提到过心跳"lastHeartbeat"字段,mongoDB就是靠它来实现自动故障转移的。 mongod实例每隔2秒就向其它成员发送一个心跳包以及通过rs.staus()中返回的成员的”health”值来判断成员的状态。如果出现复制集中primary节点不可用了,那么复制集中所有secondary的节点就会触发一次选举操作,选出一个新的primary节点。如上所配 阅读全文
posted @ 2014-01-27 22:13 郭远威 阅读(3152) 评论(0) 推荐(0) 编辑