在互联网与物联网迅速发展的影响下,越是大规模的信息系统,数据库软件在其中的作用,越局限于简单的数据存取:无论是超高并发的事务处理类业务场景,还是PB级海量数据分析业务场景,现有的新技术趋势更倾向于将数据处理和计算逻辑在应用层或中间层进行处理,数据库只需专注于存取,保证可靠与横向扩展能力。
这一技术思路在解决问题的同时,也带来了更多的成本:新的技术思路提出了过于严苛的编程开发规则,系统复杂度的增加为运维和可靠性带来了隐患。最终,丧失通用性和简洁性导致产品实用性的缺失。
在DM8上,对于用户及合作伙伴多年来的持续反馈和期待,达梦给出了深思熟虑后的新架构,并将持续演进。
关键业务解决方案—达梦数据共享集群(DM DSC)
在关键业务系统中,高可用与性能是用户、运维人员和开发人员最关注的两个核心问题。而截至目前为止,在传统企业级信息系统架构中,数据共享架构的数据库集群仍然是不可替代的技术方案。并且达梦相信,在未来的数据库技术发展趋势中,数据共享的架构仍然将起到不可替代的关键作用。
在DM8中,达梦为数据共享集群添加了新的关键性改进:
DM8数据共享集群实现了更大规模的集群支持,用户和运维人员可以将原有的2节点DM DSC升级为更多节点,以取得更高的系统可靠性,同时通过合理的应用架构设计,还能带来系统响应时间和吞吐量的改善。
达梦还为DM8添加了用于异地容灾的数据守护支持,用户可以为本地DM DSC集群添加异地数据守护系统以提升容灾能力。异地数据守护的备用系统既可以是单机,也可以是级联部署的达梦DSC集群。基于DSC+数据守护可为用户提供故障自动切换、实时归档、读写分离、DMDSC主库或备库的重加入等特性。
DM8还增加了DSC Plus(DSCP)特性,DM8 DSCP支持远程高可用镜像部署方式。用户可以基于经达梦认证的存储系统,实现一套DSC的计算和存储节点,分别部署在多个同城数据中心机房,实现存储、数据库服务的双活高可用。根据达梦测试,该DSCP方案在60KM距离上实现了数据库服务、存储设备的高可用,同时相对于本地DSC方案,该方案的性能衰减不到5%,能同时提供高可用和高性能保证。
达梦分布式事务处理架构—透明分布式数据库
事务处理领域正在面临极大的并发访问规模、急剧扩张的数据规模,以及区域性灾害的关键业务连续性保证的挑战。传统的基于关键业务主机和数据库集群软件解决方案,虽然能够一定程度满足区域性灾害的业务连续性需求,但在不断增长的并发规模和数据规模趋势下,用户成本急剧上升,且力有不逮。
业界先后探索了数据和业务的垂直+水平拆分、读写分离等技术思路,并形成了分库分表中间件、分布式数据库管理系统等解决方案或产品,但上述方案和产品相对传统数据库而言,在通用性和简洁性方面无法做到平滑过渡。
达梦对业界主流架构进行了深入分析和研究之后,提出了透明分布式数据库(TDD,Transparent Distributed Database)技术,这是一个既具有分布式数据库的高可扩展、高可用、高并发处理能力,且对用户透明;同时又具备传统数据库的所有高级特性,支持传统数据库所有开发接口和业务开发框架的技术架构,用户只需将传统应用直接部署在DM8 TDD集群上,即可简单完成数据架构划时代的进化。
DM8 TDD采用计算存储分离的系统架构,实现计算、日志、存储三层分离,可实现各层独立扩展、按需配置设备的特点。
计算层依托达梦DSC技术提供并发的事务处理服务,计算层实现了对等计算节点间高速低延迟的缓存交换能力,以此为基础支持并发的多点读写,同时还可根据需要增加只读节点,以实现更快速的扩展能力;日志层专用于提供可靠、高性能的日志服务,避免日志处理对计算层的事务延迟产生影响;存储层通过多机分布式存储,实现数据多副本、高可扩展和高可用。
相对于其他分布式数据库架构,DM8 TDD架构具有完整SQL支持、完整事务支持、支持(N-1)存储副本故障、与DM单机架构兼容,对应用透明等优势。
基于TDD方案,可允许用户根据需求灵活搭建不同级别的异地多副本解决方案,下面是一个两地三中心方案的参考范例。
数据层节点支持异地部署,通过将数据副本存储在不同的容灾域,实现数据的异地容灾。
日志服务本身具备副本与容灾能力,可在每个数据中心分别部署日志服务节点。
数据库服务在主机房按需部署,在本地和异地备用机房日常无需部署,只需在检测到灾害时,即时启动。
达梦分布式动态分析架构—数据库弹性计算
大数据分析及数据仓库、决策支持等业务相对事务处理业务,需要处理更大规模的数据集,并提出更复杂的查询和分析条件,这在过去主要通过专用设备(如数据仓库一体机)、分布式并行计算集群(如MPP)等方案解决。
但随着数据规模的进一步扩张,典型的基于SQL的分析型解决方案遇到了瓶颈:一方面是不断攀升的设备投入成本,另一方面则是传统软件架构无法支撑的更大规模的横向扩展要求。
非结构化的数据管理和分析技术,如Hadoop、Spark等在成本和扩展性方面有非常好的表现,但与关系数据库相比在SQL能力上仍然偏弱。
在DM8中,达梦引入了基于计算-存储分离架构基础上的数据库弹性计算技术,可以在保证包括SQL支持能力在内的所有数据库功能完备性的同时,显著提升关系数据库集群的横向扩展能力,释放用户设备算力;同时对于数据中心和云计算中心而言,更低成本、更灵活的计算扩展方式,也可促进数据中心整体能效的提升。
DM8对SQL执行器进行了扩展,实现“动态协同子计划机制”,可以在SQL操作符级进行多机动态计算任务调度,对于CPU和内存密集型操作符,如大数据集的排序、Hash连接等操作,可由SQL执行器智能化判断负载和可用资源,实现数据中心范围内的计算资源动态利用,以加速关键操作的执行速度。特别的,DM8还将持续丰富弹性计算操作符支持范围,提供多种统计分析、科学计算等算法的弹性化机制,为统计分析科学、机器学习与人工智能等用户提供近数据的并行化、弹性化计算能力。
在此基础上,用户可以将容器技术与DM8数据库弹性计算技术相结合,为不同的分析请求动态分配计算资源,实现任务执行时间与资源利用的平衡。
达梦混合事务分析处理技术—行列融合 2.0
在DM8中,行列融合技术进入2.0阶段,并迈出了DM8向智能化方向发展的第一步。
行列融合特性于DM7中正式成为达梦数据库的重要特性之一,使DM数据库具备了在一套系统上同时支撑OLTP和OLAP两类业务的能力。在此基础上,行列融合2.0令DM8具备了事务-分析混合型业务处理的能力。
行列融合2.0技术包含两个关键特性,用以弥合行存储与列存储的鸿沟:变更缓存、高级日志。
通过变更缓存,用户能够有效提升在列式存储引擎上的高频数据操作性能,使得用于OLAP场景的数据库对象,也可实现高性能并发短事务服务,根据内部测试,基于变更缓存在列存储引擎上的高频插入操作性能,相对于传统的列式存储引擎提升了10倍~20倍。
高级日志是介于行存储的业务表与列存储的分析表之间的自动化同步机制。得益于列式存储的强大数据压缩能力,DM数据库用户能够以相对较低的存储空间成本,换取业务数据的完整列存副本,并基于列存副本数据执行分析型查询请求。在高级日志特性之前,用户不得不通过ETL等手段,在业务数据库和分析数据库之间进行数据同步。高级日志的引入使得用户不再需要为业务数据库和分析数据库分别准备两套数据实例,通过达梦分布式计算架构,在一个数据库集群实例上,即可为事务和分析业务同时提供数据服务,且该过程是自动执行,无需ETL过程。
在达梦的高级日志特性基础上,达梦优化器能够通过Hint辅助的方式,对常规查询和分析型查询所使用的存储引擎实现自由切换,使用户能够在一套业务系统中以更通用的方式应对混合负载请求。
通过透明分布式数据库、数据库弹性计算、行列融合2.0等技术架构的融合,达梦希望向用户提供一个更从容应对大数据与云计算挑战的全新方法——不再因规模而不断妥协,而是化繁为简,合而为“一”。