本文介绍了PolarDB MySQL版的Orca功能。

简介

Orca是PolarDB MySQL版在NoSQL(Redis协议)场景下增加的功能。

PolarDB是一种基于存储计算分离架构的云原生数据库。利用共享存储(PolarStore)和物理复制技术,实现多计算节点共享同一份存储,从而实现了一写多读的能力。借助RDMA高速网络和最新的存储技术,PolarDB提供了丰富的云原生特性。为了满足客户在不同场景的性能需求,PolarDB在云原生环境下对存储引擎InnoDB进行了大量优化。通过引入独立的网络请求框架和任务处理框架,PolarDB MySQL版引入了Orca功能。购买一个PolarDB MySQL版集群后,既可以满足SQL场景的需求,也可以满足NoSQL(Redis协议)的需求。

技术原理

下图展示了PolarDB MySQL版Orca的技术架构图。6A3DA64C-27CA-4721-B308-5C3B32C9B849

基于PolarDB原始架构,Orca引入了Redis协议的解析和请求处理框架。所有与Orca(Redis协议)相关的请求都将连接至新的端口。Orca的数据经过映射后写入InnoDB表中,并且集群间的同步基于物理复制的特性。

核心优势

  • 低成本:通过降低成本,实现内部数据流通,无需重复购买计算节点资源。

  • 易用性:

    • PolarDB采用一体化封箱技术,实现原生一写多读功能,同时支持横向和纵向弹性扩缩,具备计算热备功能,可以有效节省运维开销。

    • 兼容PolarDB MySQL版新型产品形态:全球数据库(GDN)等。

  • 数据强一致:

    • 基于PolarDBSCC技术,实现了RW/RO节点的读强一致性。

  • 高性能

    • 基于高性能的InnoDB引擎,如Blink-tree和逻辑预读等功能,实现了在高并发写入与读取场景下的重大性能提升。

    • 基于共享存储(PolarStore)内置的弹性内存池(Elastic Memory Pool),实现了IO读取速度的大幅提升。

应用场景

Orca的定位是在PolarDB MySQL版的基础上兼容Redis协议,以简化开发流程,使您能够使用兼容Redis协议的数据库。

  • 游戏服务器核心数据库:游戏部署架构相对简单,主程序部署在ECS上,所有业务数据存储在Orca中,PolarDB作为持久化数据库,具备默认双AZ容灾,提供了快速备份、按时间点还原、高性能写入和只读节点扩展能力,满足游戏写入能力扩展的需求。

  • 游戏排行榜:在游戏应用中,排行榜的实时更新和玩家状态的快速存取至关重要。Orca可以用来存储玩家得分和排名信息,利用Redis协议的有序集合(Sorted set)数据结构轻松实现排行榜功能。

  • 秒杀系统:在大规模促销秒杀活动中,系统需要处理大量并发请求。传统的数据库往往难以应对这种瞬间的读取压力。为了解决这个问题,Orca可以用于存储热门商品信息、库存数量等关键数据,利用Redis协议的字符串(String)、哈希(Hash)等数据结构,轻松实现热门数据存储功能。

前提条件

  • PolarDB MySQL版支持Orca功能需要满足以下要求:

    • 数据库引擎版本为8.0.2,内核小版本需为8.0.2.2.24及以上。

  • 在Serverless集群中,目前不支持开启Orca功能。

  • Orca与Tair缓存节点互斥。若集群开启Orca功能,则无法在该集群中添加Tair缓存节点

费用说明

Orca功能可免费使用,仅收取普通计算节点的费用。具体费用详情,请参见标准版计算节点价格企业版计算节点价格。此外,开启Orca功能也会占用一定的存储空间。关于存储空间的价格,请参见标准版存储空间价格企业版存储空间价格

注意事项

  • Orca功能不支持免密访问,您需要创建Orca账号

  • 启用Orca功能后,由于Orca端口需要处理您的Redis命令请求,将会增加集群的CPU和内存开销。实际增加的CPU和内存开销与您的业务负载相关。

  • 启用Orca功能后,PolarDB MySQL版集群将自动创建名为__orca_in_polardb_m_的Orca默认库。您无法对该库进行任何操作,也无法再创建同名数据库。

使用限制

请参见使用限制

使用说明