原始网页:https://www.cockroachlabs.com/docs/stable/automated-scaling-and-repair.html


CockroachDB支持最小操作开销的水平拓展。该功能可以适用于本地机器、单个服务器、专用的部署集群、专有或公有云环境。通过添加一个新的节点到运行中的集群,用户可以很容易地扩容集群。

在KV层面,CockroachDB内部开始于一个单独的、空的Range。随着数据插入到Range中,这个Range最终会达到阈值大小(默认64MB)。此时数据会切分到两个Range,每个Range存储整个KV空间下的一个连续的片段。这个过程会不断进行下去,随着新数据的到来,已有的Ranges会不断地切分成新的Ranges,这样做的目的是保持一个相对小且大小一致的Range。

当你的集群跨越多个节点(物理机器、虚拟机器或是容器),新的切分出来的Ranges会自动重新平衡到拥有更多空间的节点。CockroachDB使用端对端的Gossip协议,通过交换网络地址、存储空间大小和其他信息去协调数据的重平衡。