
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高可用性是程序员在开发软件的时候需要重点满足的一个编程开发需求,而本文我们就通过案例分析来简单了解一下,分布式数据库高可用性实践方法。
1、数据高可用
传统架构的MPP数据库,计算和存储是紧耦合的,用户数据和元数据都存储在本地磁盘。当系统出现故障时,传统架构的MPP数据库主要采用多个副本的方式,来保证系统的可用性。为确保数据库在异常运行过程中能及时从主节点切换到备节点,传统架构的MPP数据库会通过WALreplication的方式,将xlog从主节点复制到备用节点。
HashData云原生数据库采用“存算分离”的架构,架构上分为三个层次,依次是元数据服务层、计算层以及数据存储层,每层之间完全解耦。持久化数据由数据存储层提供,中间的计算层则实现了完全无状态化,并且能够独立地扩容,很大程度上解决了传统MPP架构的许多局限。
为提高访问性能,HashData在共享存储上,数据分片保存在不同的文件,供计算集群各节点并行访问。分片数量在元数据集群创建时设定,一般按照计算集群大规模设定数据分片数量(2的幂次方),将每张表的数据按照Hash或random算法均匀分布到不同数据分片存储。
得益于存算分离的架构,HashData通过一致性哈希算法,将每个计算节点对应一个或多个数据分片,计算节点均匀存储(缓存)、计算对应数据分片,避免了数据重新逻辑分组和重新物理分布,可以实现集群的秒级自动扩缩容。
2、应用高可用
数据高可用并不意味着应用高可用,因为数据高可用只是确保数据不会丢失,但是能否对外提供数据库服务则是另一个问题。
传统架构的MPP数据库在运行时,通常会引入监控机制或者故障检测机制。当发现系统发生故障时,需要立即进行主从切换。
切换的方式一般有两种:一种是手动切换,需要DBA的参与,反应时间上无法得到保障。
另一个方案是自动切换,由程序去监控数据库的健康状态,在检测到故障之后,程序自动执行切换。
另外,如果一个数据节点只有一个从/备节点,当发生主从/备切换后,该节点处于单点状态,不再具备高可用性。如若在发生故障后仍然要求系统保持高可用,还必须引入新的从/备节点。
与传统架构的MPP数据库相比,HashData云数仓可以物理主机部署或者云环境部署,无论是哪种部署方式,都可以实现故障自愈的高可用。
面对企业与日俱增的数据应用和管理需求,HashData提供了管理组件Cloudmanager,通过对各类云平台资源的统一管理,整合数据库集群的监控、运维、管理等功能,建立统一的数字化管理运维平台,实现图形化、自动化操作,达到“所见即所得”的效果,极大地降低了数据仓库集群的运维管理成本。
不同于开源数据库监控管理工具,Cloudmanager既可以提供数据库的基础管理监控,同时又能实现对数据库集群节点的弹性扩容、缩容,增强集群的计算能力与可用性。
3、元数据高可用
传统MPP架构数据库用户数据和元数据是紧耦合的,在增加数据节点进行扩容的同时,也复制一份了元数据。此时数据库系统有多份元数据需要同步,同步元数据也会增加系统开销和复杂性。
在使用过程中,随着数据量的增长,传统MPP架构数据库每个集群的数据都保存在计算节点本地磁盘,集群之间的数据无法做到有效共享,形成“数据孤岛”现象。同时,大量数据拷贝操作,造成数据严重冗余。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。