PolarDB-SCC使用问题之为什么PolarDB-SCC选择基于RDMA的日志传输

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: PolarDB-SCC使用问题之为什么PolarDB-SCC选择基于RDMA的日志传输

问题一:PolarDB-SCC中的分层细粒度修改跟踪是如何工作的?


PolarDB-SCC中的分层细粒度修改跟踪是如何工作的?


参考回答:

在PolarDB-SCC中,RW节点会维护全局、表级、页面级的更新时间戳。当RO节点处理请求时,它会首先获取全局的时间戳,如果这个时间戳比RO节点回放日志的时间戳小,RO节点不会立即等待,而是会继续比较请求需要访问的表、页面的时间戳。只有当需要访问的页面的时间戳仍然不满足时,RO节点才会等待日志回放,这样可以避免一些不必要的日志回放等待。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639394



问题二:为什么PolarDB-SCC选择基于RDMA的日志传输?


为什么PolarDB-SCC选择基于RDMA的日志传输?


参考回答:

PolarDB-SCC采用基于RDMA的日志传输,主要是因为RDMA接口能极大地提高日志传输速度,同时减少了日志传输时带来的CPU开销,有助于实现低延迟的全局一致性读。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639395



问题三:PolarDB-SCC与其他数据库相比有何优势?


PolarDB-SCC与其他数据库相比有何优势?


参考回答:

与其他数据库相比,PolarDB-SCC能在几乎没有性能损失的情况下实现全局强一致读。在我们的测试中,只有PolarDB-SCC可以完全避免读到过期数据,而其他测试的数据库(如DB-A、DB-B和原始的PolarDB)在RO节点上都会返回过期的数据。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639396



问题四:PolarDB-SCC的总体架构是怎样的?


PolarDB-SCC的总体架构是怎样的?


参考回答:

PolarDB-SCC采用了基于共享存储的一写多读架构,包含一个读写(RW)节点和多个只读(RO)节点。RW和RO节点可以进一步连接到代理节点上。代理节点可通过将读请求分发到RO节点并将写请求转发到RW节点来实现读写分离,从而提供透明的负载平衡。RW节点和RO节点通过基于RDMA的网络连接,可快速传输日志和获取时间戳。

PolarDB的事务系统是一套重新设计的基于时间戳的事务系统,其完全重构了MySQL基于活跃事务数组的传统事务系统,以支持分布式的事务扩展和提升单机性能,这是PolarDB-SCC的基线。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639397



问题五:PolarDB-SCC的核心设计主要有什么?


PolarDB-SCC的核心设计主要有什么?


参考回答:

主要是以下三个:

(1)线性Lamport时间戳。由于最新修改的时间戳保存在RW节点上,因此RO节点必须在每次处理请求时从RW节点获取该时间戳。虽然RDMA网络速度很快,但如果RO节点的负载很重,开销仍然很大。为了减少时间戳获取的开销,我们提出了线性Lamport时间戳。在线性Lamport时间戳的基础上,RO节点从RW节点获取时间戳后,可将其存储在本地。任何早于该时间戳到达RO节点的请求都可以直接使用本地存储的时间戳,而不用从RW节点获取新的时间戳。当RO节点负载较重时,这可以节省许多获取时间戳造成的开销。

(2)分层的细粒度的修改跟踪。在RW维护全局、表级、页面(page)级的更新时间戳。当RO处理请求时,首先获取全局的时间戳,如果全局时间戳比RO回放日志的时间戳小,RO不会立即进入等待,而是继续比较请求需要访问的表、page的时间戳。只有当需要访问的page的时间戳仍然不满足时,才会等待日志回放。这样可以避免一些不必要的日志回放等待。

(3)基于RDMA的日志传输。PolarDB-SCC采用了单边RDMA的接口来实现RW到RO的数据传输,极大地提高了日志传输速度,同时减少了日志传输时带来的CPU开销。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639398

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
打赏
0
2
2
1
644
分享
相关文章
PolarDB产品使用问题之慢日志会记录哪些
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何设置Redo日志保存时间
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB-SCC使用问题之为什么PolarDB-SCC选择使用基于RDMA的日志传输
PolarDB-SCC使用问题之为什么PolarDB-SCC选择使用基于RDMA的日志传输
PolarDB开源数据库进阶课17 集成数据湖功能
本文介绍了如何在PolarDB数据库中接入pg_duckdb、pg_mooncake插件以支持数据湖功能, 可以读写对象存储的远程数据, 支持csv, parquet等格式, 支持delta等框架, 并显著提升OLAP性能。
76 1
PolarDB开源数据库进阶课11 激活容灾(Standby)节点
本文介绍了如何激活PolarDB容灾(Standby)节点,实验环境依赖于Docker容器中用loop设备模拟共享存储。通过`pg_ctl promote`命令可以将Standby节点提升为主节点,使其能够接收读写请求。激活后,原Standby节点不能再成为PolarDB集群的Standby节点。建议删除对应的复制槽位以避免WAL文件堆积。相关操作和配置请参考系列文章及视频教程。
55 1
PolarDB开源数据库进阶课15 集成DeepSeek等大模型
本文介绍了如何在PolarDB数据库中接入私有化大模型服务,以实现多种应用场景。实验环境依赖于Docker容器中的loop设备模拟共享存储,具体搭建方法可参考相关系列文章。文中详细描述了部署ollama服务、编译并安装http和openai插件的过程,并通过示例展示了如何使用这些插件调用大模型API进行文本分析和情感分类等任务。此外,还探讨了如何设计表结构及触发器函数自动处理客户反馈数据,以及生成满足需求的SQL查询语句。最后对比了不同模型的回答效果,展示了deepseek-r1模型的优势。
131 0
PolarDB开源数据库进阶课14 纯享单机版
PolarDB不仅支持基于“共享存储+多计算节点”的集群版,还提供类似开源PostgreSQL的单机版。单机版部署简单,适合大多数应用场景,并可直接使用PostgreSQL生态插件。通过Docker容器、Git克隆代码、编译软件等步骤,即可完成PolarDB单机版的安装与配置。具体操作包括启动容器、进入容器、克隆代码、编译软件、初始化实例、配置参数及启动数据库。此外,还有多个相关教程和视频链接供参考,帮助用户更好地理解和使用PolarDB单机版。
79 0
PolarDB开源数据库进阶课13 单机版转换为集群版
本文介绍如何将“本地存储实例”转换为“共享存储实例”,依赖于先前搭建的实验环境。主要步骤包括:准备PFS二进制文件、格式化共享盘为pfs文件系统、启动pfsd服务、停库并拷贝数据到pfs内、修改配置文件,最后启动实例。通过这些操作,成功实现了从本地存储到共享存储的转换,并验证了新实例的功能。相关系列文章和视频链接提供了更多背景信息和技术细节。
35 0

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等