Sortie du SGBD orienté document Apache CouchDB 3.0

A eu lieu sortie d'une base de données distribuée orientée document Apache CouchDB 3.0, appartenant à la classe des systèmes NoSQL. Sources du projet propagé sous licence Apache 2.0.

Améliorationsimplémenté dans Apache CouchDB 3.0 :

  • La configuration par défaut a été améliorée.
    Au démarrage, il faut maintenant définir l'utilisateur admin, sans quoi le serveur se terminera avec une erreur (permet de résoudre les problèmes de lancement de serveurs qui laissent par inadvertance l'accès sans authentification). Les appels à "/_all_dbs" nécessitent désormais des droits d'administrateur, et toutes les bases de données sont créées par défaut uniquement accessibles à l'utilisateur administrateur (les paramètres d'accès peuvent être modifiés via l'objet "_security"). Par défaut, la modification des objets dans la base de données _users est interdite ;

  • Ajouté par la possibilité de créer des bases de données segmentées (partitionnées) définies par l'utilisateur, permettant de définir vos propres règles de distribution de documents entre segments (plage de fragments). Ajout d'optimisations spéciales pour les bases de données fragmentées aux vues et index Mango ;
  • Mis en œuvre mode de division automatique pendant la segmentation (sharding). Dans la base de données, il est désormais possible de redistribuer les données entre segments, en tenant compte d'une augmentation de la valeur du facteur q utilisé pour déterminer le niveau de répartition ;
  • Ajouté par sous-système ken pour l'indexation automatique en arrière-plan et la mise à jour des index secondaires (JavaScript, Mango, index de recherche de texte) sans lancer explicitement leurs opérations de construction ;
  • Le processus smoosh utilisé pour le packaging automatique des bases de données a été complètement réécrit ;
  • Nouveau sous-système proposé File d'attente d'E/S, utilisé pour modifier la priorité d'E/S pour certaines opérations ;
  • Implémentation d'un système de tests de régression ;
  • Ajout du support officiel pour les plateformes arm64v8 (aarch64) et ppc64le (ppc64el) ;
  • Ajout de la prise en charge de la liaison avec le moteur JavaScript SpiderMonkey 1.8.5 (branche ESR de Firefox 60) avec prise en charge améliorée de ES5, ES6 et ES2016+ ;
  • Moteur de recherche inclus Dreyfus basé sur Lucene, qui simplifie grandement le déploiement d'un moteur de recherche basé sur CouchDB ;
  • Ajout d'un backend pour la journalisation à l'aide de systemd-journald ;
  • Ajout du paramètre « [couchdb] single_node », lorsqu'il est défini, CouchDB créera automatiquement des bases de données système si elles sont manquantes ;
  • Les performances du processus couch_server ont été optimisées ;
  • Le programme d'installation pour la plate-forme Windows a été considérablement amélioré ;
  • Les vues sont limitées à 2^28 (268435456) résultats. Cette limite peut être configurée séparément pour les vues normales et segmentées à l'aide des options query_limit et partition_query_limit dans la section « [query_server_config] » ;
  • Une interface de gestion de nœud local HTTP distincte, lancée sur le port réseau 5986, a été supprimée, dont la fonctionnalité est désormais disponible via l'interface de gestion de cluster commune ;
  • La taille maximale du document a été réduite à 8 Mo, ce qui peut entraîner des problèmes de réplication des données à partir d'anciens serveurs après la mise à niveau vers CouchDB 3.0. Pour augmenter la limite, vous pouvez utiliser le paramètre « [couchdb] max_document_size » ;
  • Un nettoyage majeur des fonctionnalités obsolètes a été effectué, comme les appels _replicator et _external, les champs disk_size et data_size, et l'option delay_commits ;
  • L'exécution de CouchDB nécessite désormais Erlang/OTP 20.3.8.11+, 21.2.3+ ou 22.0.5. Théoriquement, la fonctionnalité avec la branche Erlang/OTP 19 est conservée, mais elle est couverte par des tests.

Rappelons que CouchDB stocke les données sous un format de liste ordonnée et permet une réplication partielle des données entre plusieurs bases de données en mode maître-maître avec détection et résolution simultanées des situations conflictuelles. Chaque serveur stocke son propre ensemble local de données, synchronisé avec d'autres serveurs, qui peuvent être mis hors ligne et répliquer périodiquement les modifications. En particulier, cette fonctionnalité fait de CouchDB une solution intéressante pour synchroniser les paramètres du programme entre différents ordinateurs. Des solutions basées sur CouchDB ont été mises en œuvre dans des entreprises telles que la BBC, Apple et le CERN.

Les requêtes CouchDB et l'indexation des données peuvent être effectuées selon le paradigme MapReduce, en utilisant JavaScript pour générer une logique d'échantillonnage de données. Le cœur du système est écrit en Erlang, qui est optimisé pour créer des systèmes distribués qui servent plusieurs requêtes parallèles. Le serveur de vues est écrit en C et est basé sur le moteur JavaScript du projet Mozilla. L'accès à la base de données s'effectue via le protocole HTTP utilisant une API RESTful JSON, qui permet d'accéder aux données, y compris depuis les applications web exécutées dans le navigateur.

L'unité de stockage de données est un document qui possède un identifiant unique, une version et contient un ensemble arbitraire de champs nommés au format clé/valeur. Pour organiser un ensemble pseudo-structuré de données à partir de documents arbitraires (agrégation et sélection), la notion de formation de vues (views) est utilisée, pour définir quel langage JavaScript est utilisé. JavaScript peut également définir des fonctions pour valider les données lors de l'ajout de nouveaux documents dans une vue particulière.

Source: opennet.ru

Ajouter un commentaire