《Serverless数据库技术研究报告》——二、 Serverless数据库关键技术及应用场景——(一)Serverless数据库关键技术(2)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 《Serverless数据库技术研究报告》——二、 Serverless数据库关键技术及应用场景——(一)Serverless数据库关键技术(2)

《Serverless数据库技术研究报告》——二、 Serverless数据库关键技术及应用场景——(一)Serverless数据库关键技术(1) https://developer.aliyun.com/article/1223727?groupCode=polardbforpg


2、高可用


云上环境中,多个用户的数据库实例部署在一台物理机上,并通过资源隔离保证其相互间不受影响。在Serverless场景下,统一物理机上运行的数据库实例可能都需要资源扩容,此时有可能遇到物理机资源无法满足所有扩容请求的场景。如果选择预留足够多的资源以应对每一个数据库实例可能的扩容请求,这与Serverless的成本初衷背道而驰。因此,当本地资源不足时,我们需要将计算节点实例迁移到资源充足的物理机上部署。当实例发生跨设备迁移时,将产生两个连带问题,即迁移时间长和用户业务中断受损。为解决上述问题,云原生Serverless数据库需要具备高效的高可用能力。高可用能力可以总结为以下四部分:云原生数据库系统自动切换能力、RO节点预热状态的快速切换能力、用户链接保持与事务保持能力。


(1)自动切换能力

当前业界的云原生数据库一写多读架构中,主节点的切换、旧RO(Read Only,只读)节点链接到新主节点一般都需要外部模块进行决策与下发任务。该模块可能需要下发主节点停止任务、更新该模块必要拓扑信息、升级选定RO节点。这是一个耗时的任务流,并且有外部模块元信息和数据库集群不一致的风险。因此云原生数据库内核需要在数据库集群发生切主或者RW(读写)节点崩溃时,某个RO节点自动竞争成为新主,其余RO快速自动链接到新主节点。当前

业界主要有两种解决方案,一是集群各个节点通过一致性协议,如Paxos、Raft选出一个新主的去中心化解决方案;二是利用云原生数据库中心化共享存储的分布式锁解决方案,如PolarDB Voting Disk Service解决方案。两种方案的核心都是集群节点通过某种协商机制,实现集群主节点的自我维护。

1684820911335.png


(2)热备节点:全局预热系统

在拥有集群主节点自我维护能力以后,进一步地,用户希望备RO节点选主成为新主以后,能快速完成RO至RW角色切换。云原生数据库引入了热备节点的角色。热备节点是一个资源弱化版的RO节点,同时也是一个更接近主节点、随时准备接班的灾备节点。相比普通的只读节点,它保留有限的读服务,预留更多的CPU、内存资源去优化切换速度。有了热备节点的全局预热系统加持,云原生数据库Serverless可以更快地完成切换,进一步降低用户业务的受损时间。

1684820969385.png


(3)链接保持

在缩短了切主时间以后,数据库系统快速恢复了服务能力,可以开始执行新的事务。但在切换过程中需要保持用户会话不中断,否则用户将明显感知到实例迁移而发生应用连接闪断、新建连接短暂失败、存量事务回滚等问题。因此,Serverless还需要解决在跨机迁移过程中的链接中断问题。

对于迁移时的空闲链接,可以引入中间件Proxy,利用Proxy的链接技术保证用户链接不中断。Proxy作为流量入口,是当前云原生数据库的基础组件,负责云原生数据库一写多读的负载均衡,接管理、高可用、安全防护。对于预期内的跨机迁移场景,首先管控组件会通知云原生数据库Proxy节点。Proxy节点收到通知后, 开始进入高可用模式, 在此模式下,新的建立链接请求被接受后, 会开始被阻塞并等待后续释放通知;已经建立的链接, 代理会阻塞新请求的发送。当代理探测到新的节点已经恢复并且加入到代理之中后,代理会和新节点建立链接, 并同步环境变量 (如字符集、用户变量、模式等信息)。随后, 所有被阻塞的前端链接会被放行, 请求会继而发送到后端数据库。

1684821074702.png


(4)无损事务续传

Proxy的链接保持技术只能处理切换时没有事务执行的空闲链接。对于切换瞬间正在执行的事务,一方面Proxy无法从数据库内核中找回原有事务的上下文,另一方面新主会将未提交的悬挂事务回滚,释放这些事务持有的锁。因此在这种场景下,链接保持就会失效。数据库内核还需要提供无损事务续传能力以解决这一缺陷,例如阿里云PolarProxy+PolarDB内核事务续传解决方案。在Proxy连接保持的基础上,对于切换时正在执行的事务,内核在切换以后会维护事务一段时间。在此段时间内,Proxy利用保存的用户连接信息与内核沟通,将事务恢复到切换时SQL语句的执行状态。如下图所示,用户如果在执行事务1的更新语句时,发生了RW节点切换,Proxy会在内核切换完成后,在内核找到事务1的信息并重新执行更新语句。在用户视角,整个主备切换过程中,应用程序只感知到一条更新语句变成了慢SQL,但不会接收到连接报错或事务报错,后续应用层就不需要显式执行连接重连和事务重试,事务续传技术彻底解决了用户的感知问题。

1684821208833.png

集群自动切换+热备+无损事务续传的跨机迁移解决方案为用户

管控侧提供了更高的自由度,使更高效的资源管理方案成为可能。


《Serverless数据库技术研究报告》——二、 Serverless数据库关键技术及应用场景——(一)Serverless数据库关键技术(3) https://developer.aliyun.com/article/1223658?groupCode=polardbforpg

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
14天前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
|
30天前
|
消息中间件 存储 监控
函数计算产品使用问题之“低频介质型”适用哪些场景
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
30天前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
30天前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
14天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
8天前
|
Kubernetes Java Maven
揭秘无服务器革命:Quarkus如何让Java应用在云端“零”负担起飞?
本文介绍如何使用Quarkus从零开始开发无服务器应用,通过示例代码和详细步骤引导读者掌握这一技术。无服务器架构让开发者无需管理服务器,具有自动扩展和成本效益等优势。Quarkus作为Kubernetes Native Java框架,优化了Java应用的启动速度和内存使用,适合无服务器环境。文章涵盖环境搭建、项目创建及部署全流程,并介绍了Quarkus的扩展性和监控工具,助力高效开发与应用性能提升。
22 9
|
5天前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单,加速应用智能化
2024 云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台 CAP。CAP 拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平台,让应用开发更简单。
|
16天前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
18 7
|
26天前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
162 12
|
30天前
|
存储 缓存 监控
函数计算产品使用问题之调用sd生图时,怎么保证高并发场景正常运行
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章