女娲(Nuwa),阿里云飞天系统底层核心模块,从2009年飞天建立之初开始自主研发,对基于飞天的系统提供一致性服务,分布式锁,和消息通知功能。与有类似功能的开源软件相比,女娲在性能,可扩展性,和可运维性上有明显优势。目前,女娲在阿里云支撑着大数据计算(MaxCompute),弹性计算(ECS),表格存储(TableStore),对象存储(OSS)等众多重量级的云产品。
作为一致性维护服务,女娲是应用系统里面最底层的服务,其本身不依赖其它任何服务。女娲是两层服务架构。后端是一致性维护的功能模块,由多个Paxos group组成一致性协议核心。每个资源(文件,锁等)在后端都有一个归属的quorum。Quorum的内容在quorum内利用分布式一致性协议进行同步,保证资源的一致性和持久化。Replication的逻辑完全被封装在女娲服务的后端,客户端不可见。多个quorum group提供了后端水平扩展的能力。前端Proxy层切断客户端和后端quorum的连接,代理客户端和quorum通信。Proxy一方面负责和众多客户的通信/长连接的维护,从而客户端的增长不会对后端quorum造成线性增长的压力;另一方面可以向客户隐藏后端quorum master切换的过程;master切换从而不会对用户有感知。Proxy Layer同时提供了高效的消息通知功能。