暂无图片
PolarDB 如何实现了企业级特性?
我来答
分享
暂无图片 匿名用户
PolarDB 如何实现了企业级特性?

PolarDB 如何实现了企业级特性?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
数据库观察员
  1. 性能方面 • 实现了 CSN 快照用于解决单核场景下,随着核数增加其性能线性扩展的问题。 • 实现了 WAL Pipeline 功能,加速 WAL 日志的写入,提高写入吞吐量。 • 实现了预读和预扩展功能,一般做分析查询时需要大量扫描,而预读功能可尽 可能地发挥共享存储大带宽的特性。 • 实现了 RelSizeCache,查询时首先需要得到文件大小,此功能实现了对文件的 元数据做缓存。 • 实现了 CLOG 优化以及 FullPageWrite 优化,主要为通过 LogIndex 以及页面多 版本彻底避免 FullPage 的问题。FullPage 在 PolarDB 里有两种解法。  解法一:如果共享存储提供了 8k 或 8k 以上的原子写,可直接将 FullPage 关闭。因为共享存储是软件定义的存储,其原子写可以大于硬件的页面单元。  解法二:如果共享存储原子写在 8k 以下,可以使用页面多版本,将 FullPage 内容从 WAL 日志剥离,即可大幅减少 WAL 日志容量。

  2. 高可用方面 • 实现了 DataMax,DataMax 指 logger 节点,可以通过配置文件将 PolarDB 部 署成只存储 WAL 日志,不存储数据页面。再配合 X-Paxos 即可实现两地三中心 的部署架构。 • 实现了 Online Promote,原生做 HA 切换时需要重启,而我们通过 Online Promote 实现了在线将备库切换为主库,进程无需重启。 • 实现了延迟回放和并行回放,能够降低主备之间的复制延迟,经过测试,在高 压力情况下,可实现毫秒延迟。 • 实现了常驻 BufferPool,数据库 BufferPool 做重启时,BufferPool 的内存会丢 失,导致数据库重启后需要花费长时间做预热。而常驻 BufferPool 将 BufferPool 内容剥离,放至共享存储,不会随着进程重启被销毁,维护了 buffer 的可用性。 • 实现了 Replication Slot 持久化功能,能够避免备库变成主库之后 replication slot 的丢失。• 实现了算子级别内存控制。执行分析性查询时,某些算子会占用大量内存,导 致内存膨胀,最终导致 OOM。而算子级别内存控制可以精细控制每个算子的内 存使用上限。 安全方面,实现了 TDE 透明加密功能。支持 AES 128、256 以及国密 SM4 算法。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏