PolarDB 如何实现了企业级特性?-鸿蒙开发者社区-51CTO.COM

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

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


PolarDB
分布式数据库
2022-12-14 14:28:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
ycy856
  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 算法。
分享
微博
QQ
微信
回复
2022-12-14 16:05:19
相关问题
PolarDB是否支持地域的容灾能力?
2747浏览 • 1回复 待解决
HarmonyOS 企业证书的疑问
100浏览 • 1回复 待解决
不是受邀企业无法发布原子化服务
8460浏览 • 4回复 待解决
浮层的出场动画实现
699浏览 • 1回复 待解决
如何判断一个对象实现某个接口
1303浏览 • 1回复 待解决
判断类是否实现某接口
332浏览 • 1回复 待解决
如何部署PolarDB for PostgreSQL?
3923浏览 • 1回复 待解决
PolarDB删除后如何找回 ?
2368浏览 • 1回复 待解决
PolarDB如何开启TDE功能?
3061浏览 • 1回复 待解决
如何获知TaskPool执行顺序、优先
758浏览 • 0回复 待解决
鸿蒙系统异构组网到底实现没有?
8351浏览 • 1回复 待解决