[pacman-dev] Fast binary database

Sivert Berg siveberg at online.no
Fri Nov 23 15:44:54 EST 2007


Hello,

I have been playing with the idea of speeding up pacman for a little while. 
This is my first try. It's a binary database that uses a ternary search tree 
to speedup file lookup and package lookup. The result can be found at 
http://owwsnap.com/sarcina-0.0.1.tar.gz. 

To compile it you need to run the normal ./configure && make, but you would 
probably want to edit src/sarcina.c and change the hardcoded paths. If you're 
running a new version of pacman (3.1 or something) you probably need to 
change 
libsarc/sarc.c:505: db_local = alpm_db_register("local");
into 
alpm_option_set_dbpath("/var/lib/pacman/");
db_local = alpm_db_register_local();

I see you have discussed the database question several times. I hope this code 
could give you some answers (is a binary database really faster etc). To run 
this program you first need to build the database using sarcina -u. Then you 
can:
 - find who owns a file (sarcina -o file)
 - list files that are outdated (sarcina -s)
 - "install" a package (sarcina -i package).

This is pretty much just a proof-of-concept, so don't expect it to do much, 
but I think it might be a start.

Sivert




More information about the pacman-dev mailing list