《阿里云认证的解析与实战-关系型数据库ACP认证》——RDS关系型数据库的解析与实践(上)—— 二、 RDS的架构原理

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 《阿里云认证的解析与实战-关系型数据库ACP认证》——RDS关系型数据库的解析与实践(上)—— 二、 RDS的架构原理

1. RDS架构解析

 

1) RDS整体访问架构

 

image.png

 

正常情况下,业务部署在ECS上,通过URL访问会解析到负载均衡SLB上转发到主实例;如果主实例出现故障,可以切换到备实例

如果开通数据库代理,会到主实例中来。数据库代理有读写分离的地址,ECS换了URL,用此URL到负载均衡SLB,再到数据库代理,判断读写流量的去向

备份以及日志备份,存在OSS中。基于备份一键生成一个新的RDS实例时,数据恢复的过程就是备份,基于备份生成新实例。

 

2) RDS底层系统架构

 image.png

 

用户访问,解析DNS到防火墙,转发到客户端。

控制实例有:HA控制系统、备份系统、在线迁移系统、任务调度系统、监控系统等。

当创建/删除实例时,先到任务调度系统,触发是做迁移还是备份,最后发送到指定的cluster中,再进行下一步相关的操作。

 

3) RDS主从切换原理

 

RDS高可用版采用主备架构,具备高可用性。

 image.png

 

高可用控制系统主要负责所有数据库实例主备之间的健康检查,以及实时切换,以保证数据库高可用性达到99.95%;

3秒轮循一次,实例轮询并发进行,当发现有节点不健康时,需要完成秒级切换;

高可用控制系统是作为第三方身份去判断数据库实例是否在正常运行,不会出现脑裂现象;

可模拟应用去做更新,这样对故障点的判断更为准确;

高可用系统集群本身也是一个高可用的环境,集群内所有节点相互检查和任务接管。

 

2. RDS核心技术解析

 

1) RDS自研内核 - AliSQL简介

 

AliSQL是阿里云深度定制的独立MySQL分支,除了社区版的所有功能外,AliSQL提供了类似于MySQL企业版的诸多功能,如企业级备份恢复、线程池等;

RDSMySQL使用AliSQL内核,为用户提供了MySQL所有的功能,同时提供了企业级的安全、备份、恢复、监控、性能优化、只读实例等高级特性;

在通用基准测试场景下,AliSQL版本比MySQL官方版本有着70%的性能提升。在秒杀场景下,性能提升100倍。

 

image.png 

2) AliSQL增强Feature介绍

 

功能增强类

ThreadPool

StatementOutline

SequenceEngine

Returning

Lizard事务系统

 

性能增强类

FastQueryCache

BinloginRedo

StatementQueue

InventoryHint

 

稳定性增强类

FasterDDL

Statement(oncurrencyControl)

PerformanceAgent

Rurge,LargeFileAsynchronously

PerformanceInsight

 

安全增强类

RecycleBin

 

AliSQL详细信息请参考

https://help.aliyun.com/document.detail/129925.html

 

a) 示例:ThreadPool

 

Multi-queuethreadpool

限制线程数量,避免过多线程调度和大量缓存失效;

区分语句和事务的优先级,控制并发数量,从而减少资源竞争;

给予管理类SQL语句更高的优先级,保证这些语句优先执行;

给予复杂查询SQL语句较低的优先级,并且限制其最大并发数

 

参数配置

thread_poolenabled:是否开启线程池功能,默认开启,ON|OFF;

thread_pool_size:线程池内分组的数量,默认值4;

thread_pooloversubscribe:每个分组中允许的活跃线程数量,默认值32

 

image.png

 

b) 示例:StatementQueue

 

将冲突的SQL语句放在同一个队列(桶)中排队,减少冲突导致的开销;

支持两种Hint

/*+ccl_queue_value([int|string])*/

根据输入的值的hash进行分桶

/*+ccl_queue_field(column)*/

根据指定column值的hash进行分桶

 

参数设置

ccl_queue_bucket_count:桶的数量

ccl_queue_bucket_size:一个桶内允许的并发数

 

image.png

 

c) 示例:RecycleBin

 

回收机制

DROP/TRUNCATETABLE的表对象移到RecycleBin目录(新库"_recycle_bin_");

表相关的trigger以及foreignKey会被删除;

表的附属属性(ColumnStatistics)会进入RecycleBin

 

回收站清理

无法直接使用DROPTABLE清理回收站中的数据;

可通过DBMS_RECYCLE.purge_table()清理;

清理时需要用户具有原表和回收站表的DROP权限

 

Master-Slave独立回收

回收站功能的开启及保留周期都是实例级别,主备之间不会通过binlog进行同步

 

image.png

相关文章
|
4天前
|
存储 缓存 算法
HashMap深度解析:从原理到实战
HashMap,作为Java集合框架中的一个核心组件,以其高效的键值对存储和检索机制,在软件开发中扮演着举足轻重的角色。作为一名资深的AI工程师,深入理解HashMap的原理、历史、业务场景以及实战应用,对于提升数据处理和算法实现的效率至关重要。本文将通过手绘结构图、流程图,结合Java代码示例,全方位解析HashMap,帮助读者从理论到实践全面掌握这一关键技术。
32 13
|
23天前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
56 1
|
15天前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
139 36
微服务架构解析:跨越传统架构的技术革命
|
12天前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。
|
20天前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
22天前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
23天前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,涵盖技术架构、插件生态及应用价值。通过图形化界面和模块化设计,低代码平台降低开发门槛,提升效率,支持企业快速响应市场变化。重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,探讨其在数据处理、功能模块、插件生态等方面的技术特点,以及未来发展趋势。
|
21天前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,从技术架构到插件生态,探讨其在企业数字化转型中的作用。低代码平台通过图形化界面和模块化设计降低开发门槛,加速应用开发与部署,提高市场响应速度。文章重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,并详细介绍了核心技术架构、数据处理与功能模块、插件生态及数据可视化等方面,展示了低代码平台如何支持企业在数字化转型中实现更高灵活性和创新。
41 1
|
25天前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
23天前
|
存储 边缘计算 安全
深入解析边缘计算:架构、优势与挑战
深入解析边缘计算:架构、优势与挑战
38 0

推荐镜像

更多
下一篇
DataWorks