不断增长的NoSQL集群中的恒定复制因素



我有一个RF=3的NoSQL集群。这意味着,当2或3个节点同时关闭时,某些数据(其所有副本都属于故障节点(将变得不可用。

虽然集群大小约为10个节点,但2个节点同时宕机的可能性是可接受的低。但有了1000个节点,这是不可能的。我们拥有的节点越多,任何恒定数量(等于RF(的节点下降的可能性就越大。

问题是:在集群中实例数量不断增加的情况下,丢失任何数据的几率始终较低的一般方法是什么?

附言:当然不存在绝对同时发生的事件;同时";我的意思是";在短时间内不能将该数据流式传输到新节点";。

大多数NoSQL系统都是基于以下概念开发的:

  • 布隆过滤器
  • 文件系统
  • 备份策略
  • 复制因子

由于您担心同时丢失节点,因此始终存在从快照/文件系统或Bloom Filters等定义的数据重建策略

上述概念适用于Cassandra/MongoDB/elasticSearch等

启动的领导和监控工具将处理角落场景。您可能无法重建丢失的完整数据。但是,它可以在节点关闭前5分钟捕获任何数据[默认AWS快照到S3捕获每5分钟运行一次]

最新更新