PolarDB is a commercial cloud based relational database product developed by the Alibaba. It is designed for clients with high read demand. PolarDB is compatible with two popular databases: MySQL, PostgreSQL. It has three layers. Users interact with database through computing layer. PolarFS is a distributed file system and polarStorage as storage level. PolarDB uses InnoDB as storage engine.
PolarDB uses a novel disk outage consistency snapshot. It does not block user I/O operations during snapshot. When user triggers snapshot event, polarCtrl (the control plane of polar file system) will notify polarSwitch (the API that identifies page id, offset information from compute nodes and identify storage nodes in chunck servers) to take a snapshot. Chunk server will then take a snapshot before committing the request. After chunck servers receive snapshot tag of requests, they will take a snapshot before the request and copy block mapping meta information. Future requests will modify chunks in copy-on-write mechanism. After snapshot finishes, polarDB will stop adding snapshot tag to requests and will stop copy-on-write.
Multi-version Concurrency Control (MVCC)
Primary node (read-write) and replica nodes (read-only) communicate through message sender and ack receiver. Each of them have a buffer pool. Replica would update itself during runtime redo operation. It uses difference between written log sequence number and replica's applied log sequence number as replica lag to keep track of the version that replica is holding.
In PolarFS, it uses parallel raft protocol to coordinate multiple data chunk servers. ParallelRaft is a consensus protocol inherited from Raft but it allows out-of-order I/O completion tolerance capabilities of database.
https://www.alibabacloud.com/campaign/polardb-discount-icde-2018
Alibaba
2017