水平扩展(Scale Out)对于数据库系统是一个重要的能力。采用支持 Scale Out 架构的存储系统在扩展之后,从用户的视角看起来它仍然是一个单一的系统,对应用完全透明,因此,它可以使数据库系统能有效地应对不同的负载场景,对用户非常用价值。
但是,数据库本身是一个有状态的系统,所以,它的水平扩展是一件比较困难的事情。数据库通常需要管理着庞大的数据,系统在扩展期间,如何保证数据一致性、高可用以及系统整体的负载均衡,更是整个水平扩展的难点。
水平扩展按不同资源类型分类,可以细分为计算节点的水平扩展与数据节点的水平扩展,后文若无特别说明,水平扩展特指数据节点的水平扩展。而数据节点的水平扩展