choix d'un type de base de données

introduction

Afick s'appuie sur des bibliothèques perl pour construire la base de données contenant les informations sur les fichiers. Il se trouve que PERL offre un certain choix quant à cette base de données. Pour simplifier le codage, Afick a très longtemps utilisé le seul type de base de données disponible sur toutes les plateformes : SDBM (ces bibliothèques faisant partie du "noyau" perl).

Pour des problèmes de performances, ou de taille de base de données, il peut etre interessant d'utiliser une autre base de donnée, ce qui est possible depuis la version 2.9.0 d'Afick.

les differents type de base

SDBM

disponibilité

le type de base que l'on est sur de trouver avec chaque perl.

performance

taille de la base

GDBM

disponibilité

performance

taille de la base

NDBM

ODBM

DB

mes benchs

Après avoir cherché un moment le bon code de test, j'ai fini par utiliser Afick lui-même.

redhat 7.3/legacy

redhat creation mise a jour
sdbm 11'59 10'24
gdbm 7'54 6'50

debian sarge

debian creation mise a jour
sdbm
gdbm

mandrake 9.2

mandrake creation mise a jour
sdbm 41'75 51'76
gdbm 43'61 53'27

commentaires

Comme indiqué dans la doc perl (perldoc -f AnyDBM_File, ou man AnyDBM_File), les performances dependent des optimisations faites par ceux qui ont fabriqué le package perl.
Selon les plateformes, on voit des gains très net (x2) en passant de SDBM à GDBM (redhat, debian), ou rien (mandrake). Je vous encourage donc a faire vous-meme le test pour choisir la meilleure base pour votre machine : time afick.pl -i --dbm=SDBM_File
time afick.pl -i --dbm=GDBM_File

changer de type de base

afick -i --dbm
retour a la page principale