《云原生一站式数据库技术与实践》——二、云原生数据仓库AnalyticDB MySQL高性能存储引擎(2)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 《云原生一站式数据库技术与实践》——二、云原生数据仓库AnalyticDB MySQL高性能存储引擎(2)

《云原生一站式数据库技术与实践》——二、云原生数据仓库AnalyticDB MySQL高性能存储引擎(1) https://developer.aliyun.com/article/1231659?groupCode=aliyundb




最上层为JDBC 协议的接入层。一个insert into 语句由JDBC 接入后向下发送,首先会转为Raft command,通过Raft层发送给存储节点。计算层的主要功能是外表的高并发读,读取到的数据会被批量写入到存储节点。



存储节点类似于分库分表的架构,任意表会被均匀地拆到下面的若干个Shard之上。每个Shard 包含两个数据副本和一个日志副本,它并不是完全标准的Raft,而是2+1 的模式。两个数据副本负责承接写入和查询,日志副本仅参与投票,保证整体高可用的同时也节省了一份数据存储的开销以及一份用户写入的开销。



Shard 内部最上层为query merger,相当于存储层的查询接入,负责接入下推到存储的计算算子。存储引擎内部的数据分为实时数据和历史数据。



实时数据面向写进行优化,具备相对良好的写入能力,它只有数据文件和粗糙索引,不具备复杂精确索引。除此之外,还有版本管理器和delete bit-set,便于修改。实时数据通过build 转化为历史数据。历史数据可以认为是经过读优化的数据,具备良好的读性能。



在历史数据中,除了数据文件以外,还有多种类型的索引,包括倒排、BKD、位图等多种类型的索引。构建过程中还进行了数据的冷热分层。



准实时数仓的写入需求一般为高吞吐(日志数据)、低延迟(业务数据),还需要兼顾写入性能以及查询性能。



前端节点为无状态,具备良好的可拓展性,可以任意横向扩展,进行高并发的写入。Raft 在相对成规模的生产集群中,通常有数千个Raft group,互相之间完全独立,相当于数千个Raft Group 可同时进行并发写入。



一条insert 语句从前端节点转成Raft command,进入Raft 状态机进行消费之后,会转发给同步层的Dispatch queue。每个Raft group对应一个shard 或分库。若用户创建了N 个表,每个分库中有N 个分表。即使Raft 的并发度足够高,用户分表数也可能更多,因此需要在Dispatch queue 中进行进一步拆分,使得写并发更高。除此之外,Dispatch queue 还负责内存管理和反压工作,写入之后会进行内存控制和反压,保证不会被写挂,防止影响线上查询。



消费到存储层之后会进行group commit 操作,在table engine 前进行攒批。Append only的写模式能够保证非常良好的写入性能。



ADB 内部实现了Snapshot 功能,每隔一段时间会打快照,使产品具备time travel查询能力的基础,但time travel 的功能并目前没未对用户放开。同时,我们会定期将snapshot 进行刷盘,落盘之后做checkpoint。checkpoint 可以与raft log 进行配合,重启之后可从某个checkpoint 位点恢复,再消费少量的增量log,做到快速恢复。Snapshot 还会作为build 只读数据源进行异步构建,构建索引和分区。


image.png


上图左侧为Replace的原子性实现



《云原生一站式数据库技术与实践》——二、云原生数据仓库AnalyticDB MySQL高性能存储引擎(3) https://developer.aliyun.com/article/1231657?groupCode=aliyundb

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
2天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
4天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
58 11
|
4天前
|
运维 Cloud Native 云计算
云端新篇章:云原生技术的崛起与影响
本文旨在深入探讨云原生技术的概念、特点及其在现代信息技术领域中的应用和影响。通过对云原生技术的详细解析,本文将揭示这一新兴技术如何推动企业数字化转型,以及它对未来软件开发、部署和运维模式的潜在变革。不同于传统的云计算模式,云原生技术以其独特的优势,正在重塑IT行业的格局。
25 7
|
3天前
|
Cloud Native 持续交付 云计算
云原生技术:重塑软件开发与架构的未来
在云计算的推动下,云原生技术正逐渐成为软件开发的新标准,强调利用容器、服务网格、微服务等技术实现敏捷开发与高效运维。本文探讨了云原生技术如何重塑软件开发与架构的未来,介绍了其核心概念(如容器化、微服务架构、CI/CD)及优势(如敏捷性、可扩展性、成本效益),并讨论了其在金融服务、电子商务和物联网等领域的实际应用及面临的挑战。尽管存在技术复杂性和人才短缺等问题,云原生技术仍将成为软件开发的主流趋势。
|
5天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
3天前
|
Cloud Native 持续交付 云计算
云原生技术:企业数字化转型的新引擎
在当今数字化浪潮中,云原生技术作为推动企业创新与转型的关键力量,正引领着一场技术革命。本文深入探讨了云原生的核心概念、技术特点及其对企业IT架构和运营模式的深远影响。通过分析云原生在实际案例中的应用,揭示了其如何助力企业实现敏捷开发、弹性扩展和成本优化等目标。同时,本文也展望了云原生技术的未来发展趋势,强调了掌握这一技术对于企业保持竞争力的重要性。
18 10
|
4天前
|
Cloud Native 安全 持续交付
云原生技术在现代企业中的应用与挑战
本文探讨了云原生技术的基本概念、主要特点以及其在现代企业中的应用和面临的挑战。通过分析云原生技术如何提高应用的灵活性、可扩展性和开发效率,揭示了其对企业数字化转型的重要性。同时,文章也讨论了企业在采用云原生技术时需要克服的技术难点和文化转变问题。
|
1天前
|
运维 Cloud Native Devops
云原生技术:重塑现代IT架构的新引擎
在当今数字化转型的浪潮中,云原生技术以其敏捷、高效和可扩展的特性,正引领着一场IT架构的革命。本文旨在深入探讨云原生的概念、核心组件及其在现代企业中的应用价值,揭示其如何助力企业实现更快的创新速度、更高的资源利用率以及更优的用户体验。不同于传统的云计算模式,云原生从一开始就为云环境量身打造,通过容器化、微服务、DevOps等关键技术,解锁了软件开发和运维的新范式。
|
1天前
|
运维 Cloud Native Devops
探索云原生技术:构建现代应用的全新方式
本文将深入探讨云原生技术的核心理念和实际应用,揭示其在现代应用开发和部署中的重要性。我们将从云原生的定义开始,逐步解析其关键技术如容器化、微服务、DevOps等,并通过具体案例展示这些技术如何帮助企业实现高效、灵活和可扩展的应用架构。无论是开发者、运维人员还是企业决策者,本文都将为您提供有价值的见解和实用的建议。
|
1天前
|
Kubernetes 负载均衡 监控
深入云原生技术:Kubernetes集群部署与管理
【9月更文挑战第17天】在数字化转型的浪潮中,云原生技术以其灵活性和可扩展性成为企业新宠。本文将引导读者探索云原生的核心组件——Kubernetes,通过实际案例分析其部署与管理流程,旨在帮助技术从业者和企业决策者理解如何利用Kubernetes提升应用的可用性和性能。从基础概念到操作实践,我们将一同见证云原生技术的变革力量。

相关产品

  • 云原生数据仓库AnalyticDB MySQL版