Major enhancements in PolarDB for PostgreSQL 1.0 include:
· Support of X-Consensus based replication and cluster management
o Paxos-like consensus Protocol implementation as library called X-Consensus
o Integration of X-Consensus protocol and streaming replication for data consistency
o Support multiple replication roles, such as leader, follower, and logger
o Automatic failover based on leader election of X-Consensus protocol
o Support cluster maintenance commands, such as start, stop, switch over, and monitor, for individual instance or the whole cluster
o Scripts to deploy a cluster of databases supporting X-consensus based high availability
· Support timestamp based MVCC
o Introduce hybrid logic clock (HLC) like timestamp, which is formed of physical timestamp and logic count
o Use timestamp as snapshot to replace a transaction ID list of currently active transactions in MVCC
o Implement CTS (commit time store) to extend clog to store each transaction’s commit or rollback timestamp
o Cache CTS in memory for fast access and use partitioned LRU chains for many-core high concurrency
o CTS persistency and recovery
o CTS space recycle
· Parallel Redo Recovery
o Table level and file level parallel WAL redo to speed up recovery and reduce delay between leaders and followers
· General performance improvements, including:
o Avoid Full-page write log for heavey write workload; use remote replicas’ data during recovery
o Allow WAL files to store in multiple disks so as to fully use IO bandwidth of multiple disks
The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.
Borong Meng
Junbin Kang
Wei Yu
Daming Shao
Pin Zhang
Xingxuan Zhou
Le Cai
Diankui Zhao