jeudi 23 juillet 2009

Prise en main de couchDB

L'installation de couchDB ne pose de problème avec les gestionnaires de paquets. Le système installe le programme erlang/OTP qui comporte un shell erlang. C'est dans ce langage que seront traité les requetes HTTP et traduite les fonctions javascript.

Sur une Debian, l'installation lance les programmes suivants:

2575 ? S 0:00 /bin/sh -e /usr/bin/couchdb -c /etc/couchdb/couch.ini -b -r 5 -p /var/run/couchdb.pid -o /dev/null -e /dev/null -R
2576 ? Sl 0:01 /usr/lib/erlang/erts-5.6.3/bin/beam -Bd -- -root /usr/lib/erlang
-progname erl (),.........
receive done -> done end. -couchini /etc/couchdb/couch.ini -pidfile /var/run/couchdb.pid -heart



Un script qui gèrera le daemon (usr/bin/couchdb) et le shell erlang (beam) .

Configuration


Le fichier de configuration couch.ini se trouve sous le répertoire /etc/couchdb

Il ressemble à ceci : (j'ai ajouté des commentaires en fin de ligne)


[Couch]

ConsoleStartupMsg=Apache CouchDB is starting. #message d'accueil

DbRootDir=/var/lib/couchdb # repertoire des fichiers BTREE

Port=5984 # port d'ecoute

BindAddress=127.0.0.1 # adresse de l'interface reseau

DocumentRoot=/usr/share/couchdb/www # repertoire de stockage des pages web d'administration

LogFile=/var/log/couchdb/couch.log # les logs

UtilDriverDir=/usr/lib/couchdb/erlang/lib/couch-0.8.0-incubating/priv/lib

LogLevel=info #log level (info ,debug)

[Couch Query Servers]

javascript=/usr/bin/couchjs /usr/share/couchdb/server/main.js

(remarque : couchDB est un projet Apache mais n'utilise pas de serveur Apache.)

L'interface d'administration: FUTON

Elle s'affiche à l'adresse suivante : http://127.0.0.1:5984/_utils



Cette interface permet de tout faire : création d'une entrée, réplication , statistiques.

Créer deux instances de couchDB.

Pour réaliser des essais de réplication , il est parfois necessaire de creer deux instances sur la même machine. Il faudra définir deux ports d'ecoute , avoir deux répertoire de données etc.

Commencons par duppliquer le fichier couch.ini en couch2.ini
Puis il faut éditer couch2.ini et modifer ces lignes :

portable:~# diff /etc/couchdb/couch.ini /etc/couchdb/couch2.ini
5c5
< consolestartupmsg="Apache"> ConsoleStartupMsg=Apache CouchDB instance 2 is starting.
7c7
< dbrootdir="/var/lib/couchdb"> DbRootDir=/var/lib/couchdb2
9c9
< port="5984"> Port=5985
13c13
< documentroot="/usr/share/couchdb/www"> DocumentRoot=/usr/share/couchdb2/www
15c15
< logfile="/var/log/couchdb/couch.log"> LogFile=/var/log/couchdb/couch2.log

Il faut créer avec les bons droits les répertoires pour la deuxième instance. Et copier les fichiers existants de la première instance vers les répertoires de la deuxième instance. Le répertoire DbRootDir des fichiers BTREE peut etre vide. Il sera mis à jour par le mécanisme de la réplication.

Afin on lancera les deux services par en prenant soin d'arrêter préalablement le service couchDB (/etc/init.d/couchdb stop )

couchdb -c /etc/couchdb/couch.ini &
couchdb -c /etc/couchdb/couch2.ini &

Voila , on est prêt pour essayer la réplication.

Aucun commentaire: