AnalyticDB的技术架构是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对于AnalyticDB的技术架构而言,从上到下可以分为三种角色。最上层是Frontnode,内部也称为Coordinator协调器,其支持多Master线性扩展,当写入和查询并发过来的时候可以实现线性扩展,最多可以支持扩展到几百个Frontnode。Frontnode会在写入流程下进行数据分发,将数据写入到底下不同的存储节点。中间层的Worker是计算节点,其可以进行弹性伸缩,也是计算存储分离的核心所在。当负载到来的时候,会对于上层解析器所做的物理执行计划进行计算。源头节点读取的就是底层存储。存储部分有一个很重要的概念就是Group,这里解释一下,比如MySQL的主备或者三副本就是一个Group。对于AnalyticDB而言,因为是分布式的,因此有多个Group。可以认为数据水平分区到每个Group上面,Group之间通过Raft协议保证数据的强一致和实时性。在超大规模集群下,成本也是一个非常重要的考虑因素,因此AnalyticDB在底层实现了分层存储,也就是当数据需要进行冷热分离的时候,可以将热数据放在SSD上,而将冷数据实时地通过分层存储系统换入或者换出到OSS上面去。