> I would say a database is nice, but I fear it will be slow, disc access cannot be compared with memory access. It would probably be fast enough once I exactly know what operations I need to perform, but in the experimentation phase I am in now, I want to be able to try out things in a flexible and fast manner. > Well, I generally prefer an ACID relational database, but I gather that for raw performance MySQL is good, using the MyISAM driver. Remember that in a modern OS, you've got multiple levels of caching going on; it's not like the system is going to be going out to disk for every datum. <URL:http://monstera.man.poznan.pl/wiki/index.php/Mysql_vs_postgres#Benchmark> > But to be honest, I never tried it, but maybe a nice Ruby class that hides all DB operations necessary would also work adequately. If it were me, I'd implement a standard interface (API) as two classes, one using hashes in RAM, and one using a relational datastore. I'd experiment with algorithms using a smaller data set in RAM, then switch to the relational database and run the same code on the full data set once I was sure it was worthwhile. mathew