URL: https://linuxfr.org/news/couchdb-passe-la-seconde-vitesse Title: CouchDB passe la seconde vitesse Authors: Bruno Michel Davy Defaud, Xavier Teyssier et Benoît Sibaud Date: 2016年09月20日T12:21:19+02:00 License: CC By-SA Tags: couchdb, nosql, hipster et mongodb Score: 49 CouchDB est une base de données de la famille NoSQL. C’est même l’une des plus anciennes, sortie en 2005. Elle est ensuite devenue un projet Apache en 2008. Elle a pris du retard sur ses concurrents sur de nombreux aspects, mais sa grande force, la réplication entre instances primaires, reste inégalée. [Pouchdb](https://pouchdb.com/), un portage de CouchDB en JavaScript capable de tourner dans les navigateurs, est compatible avec le [protocole de réplication de CouchDB](http://docs.couchdb.org/en/master/replication/protocol.html) et la combinaison des deux est très intéressante pour développer des applications Web dites « progressives » (PWA), capables de travailler sans connexion Internet. Il existe d’autres implémentations compatibles avec ce protocole de réplication, dont [Couchbase _lite_](http://www.couchbase.com/nosql-databases/couchbase-mobile) pour mobile. La version 2.0 de CouchDB est attendue depuis plusieurs années et a pris beaucoup de retard. Elle vient enfin de sortir avec de grandes nouveautés, dont la prise en charge du _clustering_, un nouveau moteur de « requêtage » et une interface d’administration plus moderne. ![Logo de CouchDB](https://couchdb.apache.org/image/logo@2x.png) ---- [Annonce de la sortie de CouchDB 2.0](https://blog.couchdb.org/2016/09/20/2-0/) [Communiqué de la fondation Apache sur la sortie de CouchDB 2.0](https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces99) [Site officiel de CouchDB](https://couchdb.apache.org/) [Pokedex, un exemple de Progressive Web App, utilisant CouchDB](http://www.pocketjavascript.com/blog/2015/11/23/introducing-pokedex-org) [DLFP : la nouvelle architecture de Cozy Cloud s’appuie sur CouchDB](https://linuxfr.org/news/donnez-votre-avis-sur-la-nouvelle-architecture-de-cozy) ---- ## Clustering C’est la grande nouveauté de cette version 2. Il est maintenant possible d’avoir une grappe de serveurs CouchDB et communiquer avec celle‐ci sans avoir à se soucier de quelle instance possède quel document. CouchDB écoute maintenant sur deux ports : sur 5984, c’est toujours ce que l’on avait avec CouchDB 1 et les requêtes envoyées dessus ne concernent que l’instance locale, et sur 5986 pour parler à tout le _cluster_. Cette implémentation repose sur [Dynamo, le papier écrit par Amazon](http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html) et répond à trois problématiques : 1. la tolérance aux pannes : si un serveur n’est plus disponible, les bases de données sur cette grappe restent accessibles ; 2. les performances : comme chaque serveur ne possède qu’une partie des données, il n’a pas besoin d’indexer l’intégralité des données et cela réduit donc sa charge ; 3. la capacité : il est maintenant possible de stocker des volumes de données qui ne tiennent pas sur un seul serveur. ## Fauxton pour administrer CouchDB L’API de CouchDB pour manipuler les bases de données et les documents à l’intérieur de celles‐ci est en HTTP. L’interface d’administration peut ainsi se résumer à une simple page HTML avec du JavaScript. Anciennement, cette page s’appelait Futon. Une nouvelle version, Fauxton, totalement réécrite est arrivée dans CouchDB 2.0. Elle a un look plus moderne, le code est plus facile à maintenir et elle offre une interface plus simple à utiliser. ![Capture d'écran de Fauxton](https://dl.dropboxusercontent.com/s/srlzpo0sogd02sq/Screenshot%202016-07-27%20143123.png) ## Mango pour des requêtes plus simples Le système d’indexation et « requêtage » de CouchDB 1.0, qui passe par la construction de vues en _map/reduce_ est compliqué à prendre en main pour les nouveaux venus. Il est toujours utilisable dans CouchDB 2.0, mais une nouvelle interface est maintenant disponible pour cela. Elle s’inspire du `find()` de MongoDB et se nomme Mango. ## Améliorations générales des performances Un travail plus général d’amélioration des performances a été mené. Par exemple, les discussions avec l’équipe de PouchDB ont permis d’ajouter une nouvelle méthode à l’API HTTP de CouchDB pour accélérer les réplications. Les processus de _compaction_ ont également été revus : ils sont plus efficaces et les bases de données après _compaction_ sont maintenant réécrites pour optimiser les requêtes suivantes en regroupant certaines données.

AltStyle によって変換されたページ (->オリジナル) /