作者回复: MongoDB复制集在从节点故障时候是不会影响到可用性。
在主节点故障,进行选举的时候需要数秒到十几秒,这期间会影响写入。一年有365天x86640秒 ~= 3000多万秒。假设你每个月发生一次主节点故障或者其他问题导致选举,每次影响15秒,那么可用率就是:就是(3000w-12x15) / 3000w ~= 99.9994%
作者回复: 在多中心部署的时候要考虑网络延迟,所以一般多活中心只是建议能够接受一定数据延迟的情况下才建议。
分片有3个触发条件:数据量,并发量,以及热数据大小(内存需求)。理论上,任意一个都会触发分片需求。如果只看数据量,单分片一般可以到1-2TB。
作者回复: 恩恩MySQL是支持,虽然真正线上使用的不算多。 另外大部分关系型数据库还是不支持。
机械硬盘在服务器市场还是占据大多数,特别是数据中心。可能还需要相当一段时间才会慢慢淘汰。
作者回复: wiredtiger可以充分利用多核做并行处理。
作者回复: BSON 是一个物理层的概念:在存储到硬盘,和传输到网络上的时候所用。通常仅仅存储引擎或者mongodb驱动的开发者才需要关注。大部分MongoDB使用者还是基于JSON。
作者回复: 你是一次性查询多条记录做分析汇总吗?那必须是去多个地方找。一条记录的话肯定是在一个地方。
作者回复: 在一个复制集群里没有multi-master,但是一个分片集群可以有多个master (primary), 每个分片一个primary这种方式。
作者回复: 如果不说单节点性能比较,MongoDB最少是分布式架构,可以通过横向扩容来克服性能瓶颈。这个和同样是用来作为应用程序数据库的RDBMS来比还是有很明显的优势的。