jeudi 5 août 2010

Berkeley DB 5.0.26

Pour ceux qui ne connaissent pas Berkeley DB (BDB), ou qui en ont vaguement entendu parler, sachez que si vous êtes sous un système opensource, vous avez de grande chances d'utiliser BDB sans même le savoir.

Par exemple, si vous utilisez pidgin ou evolution vous utilisez BDB :

~$ lsof -n|grep 'libdb-'|awk '{print $1," ",$9}'|sort|uniq
evolution /usr/lib/libdb-4.8.so
pidgin /usr/lib/libdb-4.8.so

Je peux par exemple voir sur mon système le nombre de paquets qui ont déclaré dépendre de BDB :

~$ apt-cache rdepends libdb4.8| wc -l
96

On peut aussi en voir un aperçu :

~$ apt-cache rdepends libdb4.8| head
libdb4.8
Reverse Depends:
squidguard
libapache2-mod-php5filter
php5-cli
php5-cgi
openoffice.org-core
libpam-modules
libedata-cal1.2-6
libedata-book1.2-2

Et encore ce ne sont que les paquets qui l'ont déclaré ! Tout ça pour vous dire que BDB est indispensable à tout système open-source qui se respecte. Mais qu'est-ce que BDB ?

BDB est une bibliothèque permettant d'opérer sur des données (stockage, modification, recherche) et que l'on lie à une application pour lui fournir ce type de service. L'application peut être codée en utilisant des languages différents (JAVA, C++, C, Perl, PHP, Python, etc...) et choisi la structure la plus adaptée à ses données parmi les types Btree, Hash, Queue et Recno. (Vous pouvez consulter la documentation pour en savoir un peu plus sur ces différents types).

BDB supporte les transactions ACID, le multithreading et le multiprocessing, l'encryptage de l'environnement (répertoire stockant les données), l'indexation, les sauvegardes à chaud et la récupération des données en cas de crash (grâce à la journalisation des transactions), ainsi que la replication maître/esclaves !

Sachez qu'il est possible de configurer les environnements participant à un groupe de réplication de sorte que les rôles de maître/esclaves soient redistribués (failover) en cas d'erreur sur le maître ou au niveau du canal de communication. Il est à noter que pour utiliser la réplication il est nécessaire de développer du code c, c++ ou java :(
Oracle qui a racheté la société Sleepycat Software propriétaire de BDB en février 2006 annonce une capacité de stockage en teraoctets et des milliards d'enregistrements !!

Cette bibliothèque est disponible sous 2 licences :
  • commerciale
  • GPL (celle qui vous permet de l'utiliser sur votre système opensource)
Il est à noter qu'étant une bibliothèque, il n'y a pas de serveur de données. l'application accède et manipule directement les fichiers physiques grâce au code de la bibliothèque BDB. De même, ce n'est pas un RDBMS (relational database management system) ne supportant pas les relations entre les données stockées.

Dans un prochain article je vous montrerai comment installer et utiliser rapidement un environnement BDB XML. Soyez patients ...

Aucun commentaire: