1. 支援版本:
- 從
版本開始支援該選項(3.2
特性也是從該版本開始支援) ( https://docs.mongodb.com/v3.2/reference/configuration-options/#replication.enableMajorityReadConcern )。Read Concern
-
和3.2
中 預設值為3.4
,即預設不支援false
級别的majority
(或稱之為read concern
,通過committed reads
輸出中的serverStatus
可判斷該能力是否開啟)。storageEngine.supportsCommittedReads
-
及以後版本預設值為3.6
true
- 修改該參數需要更改配置檔案并重新開機mongod
2. 關閉後的影響
2.1 Change Streams 能力
4.0 及之前版本會失去該能力,4.2版本不受影響
2.2 事務能力
2.2.1 副本集:
- 事務能力不受影響(無論是哪個版本)
2.2.2 分片叢集
- 這個個人了解隻有4.2受影響,因為4.0及之前版本并不支援shared cluster上的事務,見: https://docs.mongodb.com/manual/core/transactions/#transactions-and-atomicity
- 如果事務涉及的shard關閉了
read concern 能力支援,majority
- 該事務不可以使用
級别(及更高)的read concern。snapshot
- 事務如果需要寫多個shard,會寫失敗
- 該事務不可以使用
3. 開啟後的影響
read concern 實作原理見@林青(linqing.zyd) 這篇文章:
https://yq.aliyun.com/articles/60553.
通過引擎層的snapshot來實作,snapshot在記憶體中,增加了cache維護的壓力,對性能有影響,目前看關閉之後,點查場景,性能有 30%左右的提升,如下 ,
