新品发布会来袭!RDS 5.7三节点企业版在阿里巴巴的应用解析

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 一.RDS 5.7三节点企业版的核心优势  上篇我们介绍了RDS 5.7三节点企业版数据一致性解决方案,这个章节我先对RDS 5.7三节点企业版的核心优势做下简单汇总。1.数据强一致能力  RDS 5.7三节点企业版在AliSQL的基础上集成了X-Paxos。

一.RDS 5.7三节点企业版的核心优势
  上篇我们介绍了RDS 5.7三节点企业版数据一致性解决方案,这个章节我先对RDS 5.7三节点企业版的核心优势做下简单汇总。

1.数据强一致能力
  RDS 5.7三节点企业版在AliSQL的基础上集成了X-Paxos。借助X-Paxos的分布式一致性算法,RDS 5.7三节点企业版从功能层面可以彻底解决数据质量问题,让RDS 5.7三节点企业版从AliSQL时代的数据一致性问题中彻底走了出来,从借助生态解决一致性问题,升级到产品内部一体化方式来彻底解决。

2.RDS 5.7三节点企业版的性能优化
我们都知道强一致一定带来性能的下降,我们来看在RDS 5.7三节点企业版上我们做了哪些优化,来提升吞吐和性能。

1).一体化的日志设计

  RDS 5.7三节点企业版的Consensus日志是合并了原有的binlog和relay_log, 但是保留了原有的MySQL binlog的事务日志格式。一体化日志带来的好处首先是减少一份日志的写入;其次扫描日志可以做到顺序IO,这个点尤其对Paxos算法下日志的检索和获取效率是一个提升。

2).异步事务提交

  首先X-Paxos完全基于多线程实现,可以在单个分区Paxos中完全的使用多线程的能力,所有的任务都有通用的worker来运行,消除了CPU的瓶颈。在这个基础上,我们在服务层对事务流程进行拆分(处理请求→等待同步→事务提交),不同阶段由线程池的不同线程完成。借助X-Paxos的多线程模式以及服务层的异步化改造,系统吞吐有很大的提升。尤其在跨域或者跨国场景下,巨大的网络延迟使得线程池成为一种瓶颈:实际运行中会发现线程池绝大部分线程在等待日志跨单元同步回包,服务端就没有足够的线程去处理客户请求。

3).Batching &Pipelining

  X-Paxos针对高延迟网络做了大量的协议优化尝试和测试,并结合学术界现有的理论成果通过合理的Batching和Pipelining,设计并实现了一整套自适应的针对高延迟高吞吐和低延迟高吞吐网络的通信模式,极大的提升了X-Paxos的性能。Pipeling的引入,需要解决日志的乱序问题,特别是在异地场景下,window加大,加大了乱序的概率。X-Paxos实现了一个高效的乱序处理模块,可以对底层日志实现屏蔽乱序问题,实现高效的乱序日志存储。

如上几个点的优化,保证了RDS 5.7三节点企业版在同城多机房部署或者跨域多单元部署时,写入性能和单节点模式(非强一致)无大幅度劣化。如上功能的提供以及性能优化让RDS 5.7三节点企业版真正能解决一致性问题,同时通过近两年在集团的推广使用也验证了RDS 5.7三节点企业版的可靠性和完备性。

3.多种角色及动态变更
  除了一致性的解决外,RDS 5.7三节点企业版还借助了X-Paxos强大的生态功能,增加了RDS 5.7三节点企业版的灵活性,体现在如下几个点上:
1).友好的管控操作:支持在线添加&删除节点,支持在线转让leader;
2).策略化多数派和权重化选主:可以让业务根据自己的部署特点自行配置;
3).节点角色定制化:经典的multi-paxos实现中,一般每个节点都包含了Proposer/Accepter/Learner三种功能,每一个节点都是全功能节点。RDS 5.7三节点企业版支持三种功能的独立配置,将Paxos算法中节点的三个功能进行了剥离和重组,形成了多种不同角色的节点。

目录
相关文章
|
4天前
|
Java
并发编程之线程池的应用以及一些小细节的详细解析
并发编程之线程池的应用以及一些小细节的详细解析
17 0
|
23天前
|
存储 缓存 安全
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
|
26天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
1天前
|
C++
C++:深度解析与实战应用
C++:深度解析与实战应用
7 1
|
1天前
|
大数据 图形学 云计算
EDA设计:技术深度解析与实战代码应用
EDA设计:技术深度解析与实战代码应用
|
1天前
|
分布式计算 网络协议 Hadoop
|
9天前
|
Java API 数据库
深入解析:使用JPA进行Java对象关系映射的实践与应用
【4月更文挑战第17天】Java Persistence API (JPA) 是Java EE中的ORM规范,简化数据库操作,让开发者以面向对象方式处理数据,提高效率和代码可读性。它定义了Java对象与数据库表的映射,通过@Entity等注解标记实体类,如User类映射到users表。JPA提供持久化上下文和EntityManager,管理对象生命周期,支持Criteria API和JPQL进行数据库查询。同时,JPA包含事务管理功能,保证数据一致性。使用JPA能降低开发复杂性,但需根据项目需求灵活应用,结合框架如Spring Data JPA,进一步提升开发便捷性。
|
13天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。
|
14天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
37 0
|
22天前
|
测试技术 API 智能硬件
语言模型在提升智能助手引用解析能力中的创新应用
【4月更文挑战第4天】苹果研究团队推出了ReALM,一种利用大型语言模型解决引用解析的新方法,提升智能助手理解用户意图和上下文的能力。ReALM将引用解析转化为语言建模问题,尤其擅长处理屏幕上的实体,比现有系统提升超5%,性能接近GPT-4但参数更少。其模块化设计易于集成,可在不同场景下扩展。然而,复杂查询处理和依赖上游数据检测器可能影响其准确性和稳定性。
63 6
语言模型在提升智能助手引用解析能力中的创新应用

热门文章

最新文章

推荐镜像

更多