PolarDB PostgreSQL 2.0版本
除了在存储计算分离架构上改动之外,2.0版本将在优化器上进行深度的优化,例如:
UniqueKey:和Plan节点的有序性类似,UniqueKey维护的是Plan节点数据的唯一性。数据的唯一性可以减少不必要的DISTINCT、Group By,增加Join结果有序性判断等。
PolarDB PostgreSQL 3.0版本
3.0版本主要在存储计算分离后在可用性上进行重大优化,例如:
并行回放:存储计算分离之后,PolarDB通过LogIndex实现了Lazy的回放。实现原理为:仅标记一个Page应该回放哪些WAL日志,在读进程时再进行真正的回放过程。此时对读的性能是有影响的。在3.0版本中,我们在Lazy回放基础上实现了并行回放,从而加速Page的回放过程。
OnlinePromote:在主节点崩溃后,切换到任意只读节点。该只读节点无需重启,继续并行回放完所有的WAL之后,Promote成为新的主节点,从而进一步降低了不可用时间。