Hi,
I’m looking for a persistent store, where:
- I can use it from Ruby
- it is fast
- it is transactional
- it can update more than one store in a single transaction
- simple String → String mappings in the store are sufficient
- ideally uses files in the filesystem
These kinds of stores are normally implemented as persistent hashes
or BTrees (or both). I know that Sleepycat’s Berkeley DB <http://
www.sleepycat.com/> does this, and I’ve used Java based systems that
do this. I also know of some C based things but they don’t have Ruby
wrappers. I can’t find anything in the Ruby world, and I don’t care
too much if it isn’t pure Ruby.
I know about Purple http://purple.rubyforge.org/ and the QDMB Ruby
wrapper http://qdbm.sourceforge.net/. Neither do the multiple hash/
BTree in a transaction thing.
The trick appears to be with transactions.
I know this can be done easily enough in a Relational DB, but I know
that, for example, JDBC/MySQL combination is significantly slower at
what I need to do than Perst (a pure Java thing that’s startlingly
fast). I’ve taken a look at sqlite, which satisfies all requirements
but I can’t shake this feeling that things can be better.
Does anyone have any ideas?
Thanks,
Bob
Bob H. – blogs at <http://www.recursive.ca/
hutch/>
Recursive Design Inc. – http://www.recursive.ca/
Raconteur – http://www.raconteur.info/
xampl for Ruby – http://rubyforge.org/projects/xampl/
