Serveur Couchbase - Couchbase Server

Serveur Couchbase
CouchbaseLogo.svg
Capture d'écran du serveur Couchbase
Développeur(s) Couchbase, Inc.
Première version août 2010 ( 2010-08 )
Version stable
7.0.2 / 15 octobre 2021 ( 2021-10-15 )
Écrit en C++ , Erlang , C , Go , Java
Taper Base de données multi-modèle , base de données distribuée clé-valeur , base de données orientée documents , base de données JSON
Licence Licence Apache 2.0 , freemium
Site Internet base de canapé .com
Couchbase au sommet AWS

Couchbase serveur , à l' origine connu sous le nom Membase , est un open-source , distribuée ( architecture sans partage ) multi-modèle NoSQL base de données orientée document logiciel optimisé pour les applications interactives. Ces applications peuvent servir de nombreux utilisateurs simultanés en créant, stockant, récupérant, agrégeant, manipulant et présentant des données. Pour répondre à ces types de besoins applicatifs, Couchbase Server est conçu pour fournir un accès clé-valeur ou JSON facile à mettre à l'échelle avec une faible latence et un débit soutenu élevé. Il est conçu pour être mis en cluster à partir d'une seule machine pour des déploiements à très grande échelle couvrant de nombreuses machines.

Couchbase Server a fourni la compatibilité du protocole client avec memcached , mais a ajouté la persistance du disque , la réplication des données , la reconfiguration du cluster en direct, le rééquilibrage et la multilocation avec partitionnement des données .

Historique du produit

Membase a été développé par plusieurs dirigeants du projet memcached , qui avaient fondé une société, NorthScale, pour développer un magasin clé-valeur avec la simplicité, la vitesse et l'évolutivité de memcached, mais aussi les capacités de stockage, de persistance et d'interrogation d'une base de données. Le code source original de membase a été fourni par NorthScale et les co-sponsors du projet Zynga et Naver Corporation (alors connu sous le nom de NHN) à un nouveau projet sur membase.org en juin 2010.

Le 8 février 2011, les fondateurs du projet Membase et Membase, Inc. ont annoncé une fusion avec CouchOne (une société avec plusieurs des principaux acteurs derrière CouchDB ) avec une fusion de projet associée. La société fusionnée s'appelait Couchbase, Inc. En janvier 2012, Couchbase a publié Couchbase Server 1.8. En septembre 2012, Orbitz a déclaré avoir modifié certains de ses systèmes pour utiliser Couchbase. En décembre 2012, Couchbase Server 2.0 (annoncé en juillet 2011) a été publié et comprenait un nouveau magasin de documents JSON , l'indexation et l'interrogation, MapReduce incrémentiel et la réplication dans les centres de données .

Architecture

Chaque nœud Couchbase se compose d'un service de données, d'un service d'index, d'un service de requête et d'un composant de gestionnaire de cluster. À partir de la version 4.0, les trois services peuvent être distribués pour s'exécuter sur des nœuds distincts du cluster si nécessaire. Dans le jargon du théorème CAP d'Eric Brewer , Couchbase est normalement un système de type CP, ce qui signifie qu'il offre une cohérence et une tolérance de partition , ou il peut être configuré comme un système AP avec plusieurs clusters.

Gestionnaire de cluster

Le gestionnaire de cluster supervise la configuration et le comportement de tous les serveurs d'un cluster Couchbase. Il configure et supervise le comportement entre les nœuds, comme la gestion des flux de réplication et les opérations de rééquilibrage. Il fournit également des fonctions d'agrégation de métriques et de consensus pour le cluster, ainsi qu'une interface de gestion de cluster RESTful . Le gestionnaire de cluster utilise le langage de programmation Erlang et la plate-forme Open Telecom .

Réplication et basculement

La réplication des données au sein des nœuds d'un cluster peut être contrôlée avec plusieurs paramètres. En décembre 2012, la prise en charge a été ajoutée pour la réplication entre différents centres de données .

Manager de données

Le gestionnaire de données stocke et récupère des documents en réponse à des opérations de données provenant d'applications. Il écrit de manière asynchrone les données sur le disque après avoir accusé réception au client. Dans la version 1.7 et les versions ultérieures, les applications peuvent éventuellement s'assurer que les données sont écrites sur plusieurs serveurs ou sur le disque avant d'accuser réception d'une écriture sur le client. Les paramètres définissent les âges des éléments qui affectent le moment où les données sont persistantes, et la façon dont la mémoire maximale et la migration de la mémoire principale vers le disque sont gérées. Il prend en charge les ensembles de travail supérieurs à un quota de mémoire par « nœud » ou « seau ». Les systèmes externes peuvent s'abonner à des flux de données filtrés, prenant en charge, par exemple, l' indexation de recherche en texte intégral , l'analyse de données ou l'archivage.

Format des données

Un document est l'unité de manipulation de données la plus basique dans Couchbase Server. Les documents sont stockés au format de document JSON sans schémas prédéfinis. Les documents non JSON peuvent également être stockés dans Couchbase Server (binaires, valeurs sérialisées, XML, etc.)

Cache géré par les objets

Couchbase Server inclut un cache multithread intégré géré par des objets qui implémente des API compatibles memcached telles que get, set, delete, append, prepend, etc.

Moteur de stockage

Couchbase Server a une conception de stockage à ajout de queue qui est à l'abri de la corruption des données, des tueurs de MOO ou d'une perte de puissance soudaine. Les données sont écrites dans le fichier de données en ajout uniquement, ce qui permet à Couchbase d'effectuer principalement des écritures séquentielles pour la mise à jour et de fournir des modèles d'accès optimisés pour les E/S disque.

Performance

Un benchmark des performances réalisé par Altoros en 2012, a comparé Couchbase Server avec d'autres technologies. Cisco Systems a publié un benchmark mesurant la latence et le débit de Couchbase Server avec une charge de travail mixte en 2012.

Licence et assistance

Couchbase Server est une version packagée de la technologie logicielle open source de Couchbase et est disponible dans une édition communautaire sans corrections de bogues récentes avec une licence Apache 2.0 et une édition à usage commercial. Les versions de Couchbase Server sont disponibles pour les systèmes d'exploitation Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows et macOS.

Couchbase a pris en charge les kits de développement de logiciels pour les langages de programmation .NET , PHP , Ruby , Python , C , Node.js , Java , Go et Scala .

N1QL

Un langage de requête appelé langage de requête de forme non initiale, N1QL (prononcé nickel), est utilisé pour manipuler les données JSON dans Couchbase, tout comme SQL manipule les données dans le SGBDR. Il a des instructions SELECT, INSERT, UPDATE, DELETE, MERGE pour fonctionner sur les données JSON. Il a été annoncé en mars 2015 sous le nom de « SQL pour les documents ».

Le modèle de données N1QL est une forme non-première normale (N1NF) avec prise en charge des attributs imbriqués et de la normalisation orientée domaine . Le modèle de données N1QL est également un surensemble approprié et une généralisation du modèle relationnel .

Exemple

{
  "email": "testme@example.org",
  "friends": [
    {"name": "rick"},
    {"name": "cate"}
  ]
}
Comme requête
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Requête de tableau
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "cate" END;

Tablette Mobile

Couchbase Mobile / Couchbase Lite est une base de données mobile permettant la réplication de données.

Couchbase Lite (à l'origine TouchDB) fournit des bibliothèques natives pour les bases de données NoSQL hors ligne avec des mécanismes de réplication peer-to-peer ou client-serveur intégrés. Sync Gateway gère l'accès sécurisé et la synchronisation des données entre Couchbase Lite et Couchbase Server.

Bibliographie

  • Brown, MC (22 juin 2012). Premiers pas avec Couchbase Server (1ère édition). O'Reilly Media. p. 88. ISBN 978-1449331061.
  • Ostrovski, David ; Haji, Mahomet ; Rodenski, Yaniv (26 novembre 2015), Pro Couchbase Server 2e éd. (2e éd.), Apress , p. 349, ISBN 978-1484211861
  • Potsangbam, Henry (23 novembre 2015), Learning Couchbase (1ère éd.), Packt , p. 202, ISBN 978-1785288593
  • Vohra, Deepak (3 août 2015), Pro Couchbase Development: A NoSQL Platform for the Enterprise (1ère éd.), Apress , p. 331, ISBN 978-1484214350
  • Sangudi, Gérald; et al. (20 octobre 2017), N1QL : A Practical Guide (2e édition) (2e éd.), Auto-publié , p. 423
  • Vemulapalli, Sitaram; et tout. (10 mai 2018), A Guide to N1QL features in Couchbase 5.5: Special Edition , auto-publié, p. 112
  • Chamberlin, Don ; (19 octobre 2018) SQL++ pour les utilisateurs de SQL : un didacticiel, Couchbase

Les références

Liens externes