PolarDB

PolarDB is a commercial relational database product developed by the Alibaba.

Concurrency Control

Multi-version Concurrency Control (MVCC)

PolarDB uses parallel raft protocol to coordinate multiple data chunk servers. PolarRaft is a consensus protocol inherited from Raft but it allows out-of-order I/O completion tolerance capabilities of database.

Hardware Acceleration

RDMA

PolarDB uses RDMA to connect storage nodes and compute nodes. This removes the bottleneck for I/O performance.

Isolation Levels

Snapshot Isolation

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.

Query Interface

SQL

Storage Organization

Log-structured

Each chunk server has a write ahead log (WAL). Any modification to a chunk server will be appended in log before updating the chunk.

Indexes

B+Tree

PolarDB supports parallel query execution. It will partition the B+tree to multiple workers. Each worker can only see its own partition. When one worker finished with one partition, it will automatically attach to a new partition.

Checkpoints

Non-Blocking

All modifications before a checkpoint must have been made to data chunks. Logs of changes committed after a checkpoint are also allowed to appear in a checkpoint. During recovery, it will choose the newest checkpoint instead of the longest one.

Joins

Nested Loop Join

Each worker will first scan and join their own partition. PolarDB will merge each worker's join result and return to clients.

System Architecture

Shared-Disk

Within shared-disk, PolarDB has multiple data chunk servers which consist of chunks of data. Each chunk server has its own stand-alone non-volatile memory SSD disk. Compute nodes (database server) read and write to the disk via remote direct memory access (RDMA).

Website

https://www.alibabacloud.com/campaign/polardb-discount-icde-2018

Developer

Alibaba

Country of Origin

CN

Start Year

2017

Project Type

Commercial

Compatible With

MySQL, PostgreSQL

Operating Systems

Hosted

Licenses

Proprietary