Alibaba a ouvert le code de PolarDB, un SGBD distribué basé sur PostgreSQL.

Alibaba, l'une des plus grandes sociétés informatiques chinoises, a ouvert le code source du SGBD distribué PolarDB, basé sur PostgreSQL. PolarDB étend les capacités de PostgreSQL avec des outils de stockage de données distribué avec intégrité et prise en charge des transactions ACID dans le contexte de l'ensemble de la base de données mondiale répartie sur différents nœuds de cluster. PolarDB prend également en charge le traitement distribué des requêtes SQL, la tolérance aux pannes et le stockage de données redondant pour récupérer les informations après la panne d'un ou plusieurs nœuds. Si vous avez besoin d'étendre votre stockage, vous pouvez simplement ajouter de nouveaux nœuds au cluster. Le code est ouvert sous licence Apache 2.0.

PolarDB se compose de deux composants : des extensions et un ensemble de correctifs pour PostgreSQL. Les correctifs étendent les capacités du noyau PostgreSQL et les extensions incluent des composants implémentés séparément de PostgreSQL, tels qu'un mécanisme de gestion des transactions distribuées, des services globaux, un processeur de requêtes SQL distribué, des métadonnées supplémentaires, des outils de gestion du cluster, de déploiement d'un cluster et de simplification. la migration des systèmes existants vers celui-ci.

Les correctifs ajoutent au noyau PostgreSQL une version distribuée du mécanisme de contrôle de l'accès parallèle aux données en utilisant la multiversion (MVCC, Multiversion Concurrency Control) pour différents niveaux d'isolement. La plupart des fonctionnalités de PolarDB sont incluses dans des extensions, ce qui réduit la dépendance à l'égard de PostgreSQL et simplifie la mise à jour et la mise en œuvre de solutions basées sur PolarDB (cela simplifie la transition vers les nouvelles versions de PostgreSQL et maintient une compatibilité totale avec PostgreSQL). Pour gérer le cluster, la boîte à outils pgxc_ctl est utilisée, basée sur un utilitaire similaire de PostgreSQL-XC et PostgreSQL-XL.

Il existe trois composants de base dans un cluster : les nœuds de base de données (DN), le gestionnaire de cluster (CM) et le service de gestion des transactions (TM). De plus, un équilibreur de charge proxy peut être utilisé. Chaque composant est un processus distinct et peut être exécuté sur un serveur différent. Les nœuds de base de données répondent aux requêtes SQL des clients et agissent en même temps en tant que coordinateurs de l'exécution des requêtes distribuées avec la participation d'autres nœuds de base de données. Le gestionnaire de cluster surveille l'état de chaque nœud de base de données, stocke la configuration du cluster et fournit des outils pour gérer, sauvegarder, équilibrer la charge, mettre à jour, démarrer et arrêter les nœuds. Le service de gestion des transactions est responsable du maintien de l’intégrité globale sur l’ensemble du cluster.

Alibaba a ouvert le code de PolarDB, un SGBD distribué basé sur PostgreSQL.

PolarDB est basé sur l'architecture informatique distribuée Shared-nothing, selon laquelle les données sont distribuées lorsqu'elles sont stockées sur différents nœuds, sans utiliser de stockage commun pour tous les nœuds, et chaque nœud est responsable de la partie des données qui lui est associée et effectue des requêtes liées. aux données. Chaque table est fragmentée en parties (sharding) à l'aide d'un hachage basé sur la clé primaire. Si la requête couvre des données situées sur différents nœuds, un mécanisme d'exécution de transaction distribuée et un coordinateur de transaction sont activés pour garantir l'atomicité, la cohérence, l'isolation et la fiabilité (ACID).

Pour garantir la tolérance aux pannes, chaque segment est répliqué sur au moins trois nœuds. Pour économiser les ressources, les données complètes ne comprennent que deux répliques, et une se limite au stockage du journal de réécriture (WAL). L'un des deux nœuds dotés de répliques complètes est élu leader et participe au traitement des requêtes. Le deuxième nœud fait office de réserve pour le segment de données en question, et le troisième participe à la sélection du nœud leader et peut être utilisé pour restaurer des informations en cas de panne de deux nœuds avec des répliques complètes. La réplication des données entre les nœuds du cluster est organisée à l'aide de l'algorithme Paxos, qui garantit une définition cohérente du consensus dans un réseau comportant des nœuds potentiellement peu fiables.

Il est à noter que toutes les fonctionnalités du SGBD PolarDB devraient être révélées sur trois versions : Dans la première version, des outils de réplication, de haute disponibilité et de gestion de cluster seront publiés. La deuxième version comportera un système d'exécution de transactions distribuées qui prend en charge l'exécution ACID multi-nœuds et SQL distribué. La troisième version comprendra un plugin pour PostgreSQL et des outils pour une distribution flexible des données entre les nœuds, y compris le placement adaptatif des segments pour obtenir des performances optimales et la possibilité d'étendre le cluster en ajoutant de nouveaux nœuds.

Source: opennet.ru

Ajouter un commentaire