Developpez.com

Le Club des Développeurs et IT Pro

NoSQL : JSON, indexation distribuée et géoréplication débarquent dans Couchbase

Le concurrent de MongoDB

Le 2012-12-14 12:09:56, par Hinault Romaric, Responsable .NET
Couchbase Server, le système de gestion de bases de données NoSQL, vient de subir une mise à jour assez importante.

La version 2.0 de Couchbase introduit un modèle de stockage de documents et un magasin clé-valeur (key-value), permettant à l’outil de faire un grand pas dans le support du Big Data (gros volumes de données).

Pour rappel, CouchBase est un projet initialement basé sur le système noSQL Apache CouchDB, à la différence que le code Erlang de CouchDB a été entièrement réécrit en C++, avec des ajustements et ajouts en tirant profit du système de gestion de mémoire cache distribuée memcached.

Couchbase Server 2.0 prend désormais en charge le format JSON (JavaScript Object Notation) grâce à son nouveau modèle de données flexible. Il dispose d’un système d’indexation distribuée, de nouvelles capacités d’interrogation et intègre le support de MapReduce.

Le système NoSQL introduit également la fonction « cross data center replication » (XDCR), une sorte de géoreplication basée sur l’approche « active-active cluster », ou l’utilisateur peut décider de faire une réplication synchrone ou asynchrone en fonction du temps de latence réseau entre les centres de données.

La prise en charge de JSON, de l’indexation, de la recherche en texte intégral et des caractéristiques de MapRduce, étendent la base de données qui devient un gestionnaire de contenu riche, qui fournit aux développeurs des outils de gestion permettant une meilleure analyse des données, selon les responsables du projet.

Ainsi, les développeurs pourront stocker des documents JSON dans les bases de données, créer des index et effectuer des requêtes sur ceux-ci.

Toutes ces améliorations majeures font de Couchbase un puissant système NoSQL, qui n’a plus rien à envier à MongoDB.

Couchbase Server 2.0 est disponible gratuitement dans sa version Community Edition. L’édition Entreprise est basée sur cette version, mais dispose des derniers correctifs de sécurité.

Télécharger Couchbase Server 2.0

Source : Spécifications de Couchbase Server 2.0 (au format PDF)

Et vous ?

Que pensez-vous de ces nouveautés ?
  Discussion forum
5 commentaires
  • heid
    Membre confirmé
    J'utilise mongo, qu'apporte Couchbase de plus ?
  • c_creatix
    Nouveau membre du Club
    De mémoire couchbase dispose d'un versionning des documents. Il est donc plus simple de trouver la version du document d'il y a une semaine. Par contre il repose sur un système de vues et mapreduce pour faire les requêtes. Il n'est pas possible de faire des requêtes en direct depuis le programme il faut les écrire en avance. En tout cas ce que je raconte c'était le cas à l’époque de couchdb.
  • tgrall
    Membre du Club
    J'utilise mongo, qu'apporte Couchbase de plus ?
    Une facon de repondre a cette question est de regarder les points forts de chacune des solutions:
    - Mongo est tres simple d'acces pour les developpeurs, notamment en supportant les requetes adhoc avec un langage de requete relativement simple. (attention a bien creer vos index avant de passer en production!)

    - Couchbase a ete construit pour garantir de tres bonnes performances et une grande scalabilité. C'est pourquoi Couchase 2.0 s'appuie sur le protocol Memcache. D'autre part il est tres simple de modifier a chaud la topologie du cluster (ajout/suppression de noeud) tout en gardant l'application active. (rebalance/failover des data sur les differents noeuds). Voici quelques liens interessant sur Couchbase:
    - Couchbase Performance Benchmarking (Benchmark effectué par Altoros en s'appuyant sur YCSB)
    - http://gigaom.com/cloud/how-omgpop-s...n-three-weeks/ (DrawSomething & Couchbase)

    Un case d'usage interessant, mais qui est ici completement different de Mongo est le remplacement de Memcache par Couchbase :
    - http://www.couchbase.com/memcached
  • tgrall
    Membre du Club
    De mémoire couchbase dispose d'un versionning des documents.
    Couchbase et Couchdb sont 2 produits differents. Couchbase 2.0 s'inspire du stockage de Couchsb pour le stockage des documents et la partie View. (mapreduce).
    Mais le versionning des documents n'est pas present dans Couchbase 2.0. Trop couteux en terme de performances lorsque les applications ont un tres gros throughput.

    Il n'est pas possible de faire des requêtes en direct depuis le programme il faut les écrire en avance.
    Effectivement il faut creer les vues (requetes) en avance. Ceci est important pour garantir de bonnes performances de votre application lorsque le volume de donnée est important.
    Cela dit il est possible, via les API de Couchbase de creer les views par programmation, voir Create views (MapReduce) from your Java application

    Notes que pour d'autres bases de données, il est également necessaire de creer des index (en amont) afin de garantir de bonnes performances. Ce qui est équivalent; une vue dans Couchbase, crée un index qui est ensuite utilisable dans les requetes.
  • moustic98
    Membre à l'essai
    Bonjour,

    auriez vous des exemple d'utilisation de base de données NoSql dans un système de GED/ECM tel Alfresco ou Maarch

    Merci d'avance