BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités CouchDB versus Couchbase: Quelles sont les différences, et qu'est devenu Membase ?

CouchDB versus Couchbase: Quelles sont les différences, et qu'est devenu Membase ?

En février 2011, CouchOne et Membase ont fusionné. La nouvelle société se nomme Couchbase. Membase a un produit appelé Membase qui est une solution clé/valeur, persistante et scalable qui utilise le protocole Memcached. CouchOne supportait CouchDB. CouchDB est une base de données de documents qui a une approche pair-à-pair pour la réplication, ce qui très bien pour des datacenters géographiquement séparés. Couchbase a créé un nouveau produit combinant des parties de Membase avec des parties de CouchDB et le nouveau produit est appelé Couchbase.

Récemment Couchbase a publié une comparaison entre Couchbase et CouchDB pour montrer les différences et les similarités entre les deux. Ce document pose une question classique: "Quelle est la différence entre CouchDB et Couchbase ?"

La réalité est que Couchbase et CouchDB sont très proches. Le produit Couchbase contient une copie de CouchDB. Couchbase ajoute comme fonctionnalités à CouchDB la gestion du cache, le clustering et plus encore. InfoQ a discuté avec l'un des fondateurs de Couchbase, James Phillips, pour échanger sur les 2 produits Membase et CouchDB.

InfoQ: Membase semblait être une marque solide, pourquoi avoir changé le nom du produit en Couchbase ?

Début 2011, la société Membase a fusionné avec CouchOne. La nouvelle entité a pris une portion du nom de chacune, ce qui a donné Couchbase. Le nouveau nom reflète aussi les technologies que nous offrons. Couchbase est une base de données orientée documents (avec des technologies héritées du projet Apache CouchDB) que l'on peut monter en charge horizontalement et qui propose des accès en écriture et en lecture avec une latence très faible (grâce à la technologie Membase).

InfoQ: Avant de choisir CouchDB comme moteur de persistance et de requêtes, qu'est-ce que Membase utilisait ?

SQLite était le moteur de persistance embarqué dans Membase qui est remplacé par Apache CouchDB dans Couchbase Server.

InfoQ: Quelle importance a eu le protocole point à point Memcached dans l'adoption de Membase ?

La compatibilité Memcached a été très importante dans l'adoption de Membase et maintenant Couchbase Server (qui supporte le même protocole). Chaque langage et framework de développement supporte nativement Memcached, et la majorité des développeurs ont déjà utilisé Memcached, il est donc facile de le prendre et de commencer à l'utiliser.

InfoQ: Membase semble être une solution très utile et a eu des clients prestigieux tels que Zynga. Qu'est-ce que vous obtenez de plus en utilisant CouchDB comme couche de persistance/requêtes que les utilisateurs de Membase réclamaient ?

Couchbase est typiquement utilisé comme système d'enregistrement pour les logiciels interactifs, remplaçant les bases de données relationnelles comme MySQL ou Oracle. Les opérations clé-valeur supportée par Membase permettent certainement la création de systèmes utiles, mais un simple couple clé-valeur ne peut pas répondre à des questions telles que "quels utilisateurs ont actuellement un mouton dans leur ferme ?" Pour répondre à cette question sur une base clé-valeur, l'application doit lire toute la base, clé par clé, puis "regarder" la valeur de la paire clé-valeur pour voir s'il y a un mouton dedans. En embarquant CouchDB, la base de données peut maintenant faire ce travail sans avoir à lire toute la base (parce que CouchDB peut maintenir un index qui accélère ce type de requête).

InfoQ: Quel est votre concurrent le plus proche en NoSQL ?

MongoDB.

InfoQ: Couchbase et MongoDB sont orientés documents et fonctionnent plutôt bien. Quelles sont les avantages d'une approche orientée document sur une approche orientée colonnes comme Cassandra ?

Avec une base de données orientée document, une application peut insérer des enregistrements ("documents") sans regarder leurs structures, du moment qu'ils respectent certains standards de format (par exemple XML ou JSON). Les requêtes peuvent être exécutés indépendamment du fait que certaines colonnes ont été définies, ou des familles de colonnes ou tout type de structures qu'une base de données orientée colonne doit maintenir. Le modèle orienté document fournit une approche plus flexible de la gestion des données transactionnelles sans limiter les types de requêtes pouvant être exécutés.

InfoQ: Le comparatif CouchDB/Couchbase mentionne que Couchbase ajoute des capacités d'autosharding à CouchDB. Est-ce que Couchbase ajoute de nouvelles fonctionnalités de réplications pour la haute disponibilité par rapport à ce que proposait CouchDB ?

Couchbase Server inclut actuellement deux types de technologie de "réplication": pour le déploiement intra-datacenter (un cluster), la réplication de type Membase (qui favorise une cohérence immédiate face à un partitionnement du réseau) est utilisée, car elle propose un modèle de développement plus naturel, et la probabilité d'un partitionnement du réseau peut être conçue afin d’avoir une chance d’arriver plus faible que celle de la chute d'une météorite sur le datacenter. Pour les déploiements inter-datacenter (où les clusters sont géographiquement distribués) la probabilité d'un partitionnement du réseau est assez importante, puisque les serveurs applicatifs ET les bases de données vivent aux deux extrémités d'une connexion WAN incertaine. La réplication de type CouchDB est utilisée dans le déploiement entre datacenter car il supporte la détection et la résolution de conflits, ce qui est plus fréquent dans ce scénario.

InfoQ: Couchbase, comme Membase avant elle, est un remplacement "clés en main" pour Memcached et les applications utilisant Memcached peuvent donc utiliser Couchbase directement. Mais comment les drivers clients qui n'ont pas été écrits avec des cas d'autosharding en tête utilisent-ils les capacités d'autosharding de Couchbase?

Il y a un proxy (appelé moxi), intégré dans Couchbase Server ou déployable dans les applications, qui comble l'écart entre l'approche utilisant l'algorithme de "hachage consistant" utilisé par les clients Memcached et les 2 niveaux d'indirection employés par Couchbase Server (hash pour trouver le serveur virtuel, puis déterminer le serveur réel).

InfoQ: Comment Couchbase traite les applications nécessitant une persistance fiable ? Est-ce qu'il y a une option de journalisation ? Est-ce qu'il y a une option où les données peuvent être répliquées à plus de noeuds ? Comment réglez-vous la vitesse d'écriture pour les persistances fiables ? Avez-vous besoin d'au moins deux serveurs pour une certaine garantie de durabilité ?

Couchbase peut être configuré pour acquitter les écritures immédiatement (en les écrivant de manière asynchrone) ou seulement après que les données aient été replictées ou écrites sur des médias durables. Les utilisateurs peuvent définir leur propre compromis entre durabilité et performance.

Informations sur Membase, Couchbase et Northscale

Membase (le produit) a été annoncé en octobre 2010 et a été développé par Zynga et NorthScale puis NHN. NorthSclale est devenu Membase Inc, qui ensuite est devenu Couchbase Inc. après avoir fusionné avec CouchOne Inc en 2011. Membase est utilisé par Zynga pour ses jeux sociaux comme Farmvile, Mafia Wars et Cafe World. Membase a été optimisé pour stocker des données d'application web telles que les données de Farmville. Ces jeux sociaux en ligne enregistrent une grande quantité des données. "C'est une quantité ahurissante de données. Il s'agit d'un nouveau type de données, et il justifie le développement d'un nouveau type de système de gestion de base de données (Membase)" selon Audrey Watters de ReadWrite Cloud. Zynga utilisait déjà Memcached de sorte que la transition vers Membase a été naturelle. Une interview de Dustin Sallings, un ingénieur de Couchbase, qui parle des changements dans le protocole pair-à-pair de Memcached pour supporter les produits comme Membase a été réalisée.

Dans un article à ce sujet sur InfoQ, Damien Katz, créateur de CouchDB et cofondateur de Couchbase, a annoncé qu'il allait se concentrer sur Couchbase, car c'est une opportunité de recommencer avec CouchDB et de jeter ce qui n'a pas fonctionné, solidifier ce qui marche et inclure les fonctionnalités de scalabilité, de performances, de clustering et de cache de Membase dans un produit combiné. Damien a déploré la lenteur des consensus nécessaires dans un projet Apache, et la nécessité pour un produit commercial d'évoluer rapidement. Son point de vue sur la fusion des produits était de créer un produit combiné basé sur leurs points forts. Dans un autre billet de blog, Damien déclare que Membase est un produit extrêmement rapide et scalable mais n'a pas de capacité de réplication. CouchDB a plus de fonctions avancées telles que la réplication et le reporting mais n'est pas si rapide et ne peut pas faire face à des charges élevées. La combinaison des deux devait être performante et donc Couchbase était né.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT