I'm looking for a key/value store meeting the following requirements:
- Open Source
- C API (C++ okay too)
- ACID
- Some level of crash recovery
- High [storage] capacity per file
- Both key and value are arbitrary binary data
- Embedded (like DBM, SQLite, et al.)
GDBM looks particularly attractive. Per the fact that the datum
struct uses int dsize;
clearly key and value sizes are limited to 2GB, which is fine. However, my problem with GDBM is that I can't find any documentation on the limit to the database file sizes. For example, Berkeley DB provides database files up to 256TB. If this is large enough, then GDBM would be perfect.
Does anyone know the GDBM file size cap? Failing that (or if it's too small) what other suggestions can you make? Does such a beast exist?