《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(2)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(2)

《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(1) https://developer.aliyun.com/article/1228548?groupCode=polardbforpg

 

image.png

 

上图为PolarDB-X读写分离架构图。其中橙色代表主库部分,灰色代表从库部分。

 

主库和从库之间采用基于Paxos协议和Binlog融合而成的ConsistLog提供一致性复制。ConsistLog会维护全局日志位点LogIndex,主库每次写入最新数据的同时,也会维护当前主库最新的日志位点。从库基于ConsistLog做一致性复制的过程中,也会不断更新自身的全局位点。读的过程中,路由到从库时会不断比较主库和从库的日志位点的差异,确保从库更新的日志位点与主库及时保持同步。

 

一条查询在读写分离架构的实现流程为:客户端将请求发送给CN,CN根据路由策略进行判断,路由至只读DN的查询,首先会从主DN节点获取最新的LogIndex,CN将LogIndex+TSO请求一起发送给只读DN。只读DN根据接收到的LogIndex判断当前位点的事务状态回放到相应位点,根据TSO判断数据可见性,向CN返回结果。

 

通过以上机制,可以保证路由至只读DN一定能读到与主库一致的数据。

 

image.png

 

在公用云的读写分离操作交互页面上,用户购买只读实例后,可以在主实例的配置管理页面配置读写分离的权重、是否开启数据强一致性读的能力、只读可用性。

 

image.png

 

对于开源用户,除了提供交互式页面,我们也提供了黑屏操作。比如通过show storage可以查看每个只读DN的负载和延迟情况。

 

image.png

 

我们对正确性进行了测试,构造了先写后读的场景,对强一致性读能力的开和关分别做了测试。在强一致性读关闭的情况下,在高并发场景下可能会出现少数读取到的数据不是最新数据的情况;在一致性读能力开启的情况下,没有发生数据不一致。

 

同时,我们对性能也进行了测试。对比了将读写分离权重全部路由至主库以及将所有请求路由至只读库,同等规格下,从库性能衰减约为主库的70%。

 



《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X读写分离和HTAP场景的实践(3) https://developer.aliyun.com/article/1228545?groupCode=polardbforpg

 


 

相关文章
|
29天前
|
数据库 SQL Cloud Native
DBA福利:云原生分布式数据库 PolarDB-X 操作指南
【6月更文挑战第2天】简述如何使用PXD工具一键安装PolarDB-X操作
71851 10
|
2月前
|
关系型数据库 分布式数据库 PolarDB
开源PolarDB-X 部署安装全过程
本文介绍了开源PolarDB-X的部署安装步骤:首先,下载并解压PXD工具,配置至系统路径;然后,使用PXD工具进行部署,选择模式,输入参数,并等待部署完成;最后,验证集群状态。在遇到问题时,参考官方文档、社区支持或进行排查。建议包括优化文档、增强错误处理和建立用户反馈机制。
|
2月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB-X源码解读:分布式事务处理机制揭秘
【5月更文挑战第20天】PolarDB-X,PolarDB家族的一员,专注于大规模分布式事务处理,采用2PC协议保证ACID特性。源码解析揭示其通过预提交、一致性快照隔离和乐观锁优化事务性能,以及利用事务日志进行故障恢复。深入理解其事务处理机制对开发者掌握分布式数据库核心技术至关重要。随着开源社区的发展,更多优化方案将涌现,助力构建更强大的分布式数据库系统。
107 6
|
4天前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何在不使用集群地址时,使用读写分离功能
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何在不使用集群地址时,使用读写分离功能
|
2月前
|
SQL 容灾 关系型数据库
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布!
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布
|
26天前
|
Ubuntu 关系型数据库 分布式数据库
开源PolarDB -X 部署安装
本文记录了在Ubuntu 20.04上部署阿里云分布式数据库PolarDB-X的步骤,包括环境准备、安装依赖、下载源码、编译安装、配置启动,并分享了遇到的配置错误、依赖冲突和日志不清等问题。作者建议官方改进文档细节、优化代码质量和建立开发者社区。安装历史记录显示了相关命令行操作。尽管过程有挑战,但作者期待产品体验的提升。
212 6
|
3天前
|
存储 关系型数据库 MySQL
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
|
2月前
|
SQL 存储 负载均衡
关系型数据库读写分离与主从复制
【5月更文挑战第2天】关系型数据库读写分离与主从复制
39 5
关系型数据库读写分离与主从复制
|
2月前
|
存储 Kubernetes 关系型数据库
使用开源ProxySQL构建PolarDB-X标准版高可用路由服务
本文将指导如何快速搭建和配置PolarDB-X标准版与ProxySQL,并提供验证高可用路由服务验证测试。
|
2月前
|
运维 监控 Java
开源PolarDB-X部署安装评测报告
在部署PolarDB-X时,需先准备符合要求的OS环境和安装JDK等依赖库。遇到的问题包括`protobuf`版本不兼容、`cmake`参数配置错误和启动服务时的配置挑战。文档更新滞后和错误信息不明确增加了安装难度。建议优化文档、提升错误信息引导性、提供自动化安装脚本、加强社区支持和产品功能。尽管安装过程复杂,但产品潜力值得认可,期待改进以提升用户体验。
138 8

相关产品

  • 云原生数据库 PolarDB