Read Preference in MongoDB

来源:互联网 发布:记账软件破解版 编辑:程序博客网 时间:2024/06/08 08:57

basic concepts

(1)read preference describes how MongoDB clients/drivers route read operations to members of a replica set. five modes are primary,secondary,primaryPreferred,secondaryPreferred,nearest
(2)tag sets that is mappings of arbitrary keys and values and can customize read preference and write concern, target read operations to specific members of a replica set, so as to allow configurable awareness.
as for members in replica set or sharding cluster, they could be tagged as {‘dc’: ‘dc_1’},{‘use’: ‘reporting’, ‘disk’: ‘ssd’} or {‘rack’: ‘a’, ‘use’: ‘production’}

core process

(a)assemble a list of suitable members, taking into account member type(i.e. secondary,primary.etc)
(b)excludes members not matching the tag sets, if specified
(c)determine which suitable members is the closest to client in absolute terms.
(d)…

practice

(1)how read preference interacts with tag sets?
   (a)in mongo shell, an example looks like
db.collection.find().readPref({mode:'nearest',tags:[{'dc': 'dc_1'}]})
in mongodb enterprise 3.2, the test failed: “mode have wrong type, Excepted String, Found object”. when changing to .readPref(‘nearest’,[{‘dc’: ‘dc_1’}])
that direct read operation/cursor to nearby member in data center called dc_1.
   (b)likewise, another example
db.collection.find().readPref('primary',[{'dc':'dc_1'}]), this statement outputs an error as shown below
这里写图片描述
the cause is as described errmsg field in document.

原创粉丝点击