PolarDB en open source : la roadmap d’Alibaba

PolarDB Alibaba open source

Alibaba fait de sa base de données PolarDB pour PostgreSQL un projet open source. Quel socle et quelle feuille de route ?

Il y a du nouveau sur le GitHub d’Alibaba. Un dépôt du nom de PolarDB a fait son apparition. Il héberge, sous licence Apache 2.0, le code d’une des versions de cette base de données relationnelle : celle fondée sur PostgreSQL (11.9*).

Alibaba a opté pour une feuille de route en trois étapes. Au terme de la première, on pourra mettre en place un cluster utilisant l’algorithme de consensus « maison » X-Paxos, selon l’architecture illustrée ci-dessous.
Cette étape sera marquée par l’intégration d’éléments comme :

  • Le contrôle des accès concurrents sur la base de l’horodatage des requêtes (supplantant les instantanés XID de PostgreSQL)
  • La parallélisation des écritures de journaux de transactions
  • Une alternative au mécanisme d’écriture des pages entières afin d’améliorer les performances
version 1
Un cluster peut regrouper jusqu’à 16 nœuds, dont au moins un accessible en écriture.

La deuxième étape devra permettre la cohérence, l’ACID et la distribution des transactions à l’échelle du cluster. Elle introduira des nœuds « coordinateurs » qui piloteront l’exécution des requêtes.

version 2 PolarDB

PolarDB : c’est aussi pour MySQL

La troisième étape unifiera les nœuds coordinateurs et les nœuds de données. Elle introduira, entre autres, la fragmentation pour assurer l’élasticité. À partir de là, « la plupart » des fonctionnalités de PolarDB seront reversées vers PostgreSQL, sous forme d’extensions (ou de plug-in, pour les fonctionnalités intégrées au noyau).

version 3 PolarDB
Alibaba annonce les performances suivantes : 500 000 requêtes/seconde en lecture et 150 000/s en écriture.

Le projet ne part pas de zéro. Il existe déjà une offre cloud commerciale, sous la bannière Apsara. Elle permet aussi d’utiliser MySQL et la syntaxe Oracle. Alibaba en propose une version gratuite avec une instance à deux vCPU et 8 Go de RAM, à laquelle on peut greffer jusqu’à 50 Go de stockage.

En l’état, pour les développeurs, il faut faire à partir des sources. Une image Docker est dans les cartons.

* La version initiale de PolarDB reposait sur PostgreSQL 11.2. La dernière release a notamment apporté la possibilité de définir le délai d’expiration d’une session passée en veille. Et des options de manipulation des données spatiales – dont la collecte d’informations sur les coefficients polynomiaux.

Illustration principale © Julien Eichinger – Fotolia