views:

95

answers:

1

I'm looking for a key/value store meeting the following requirements:

  1. Open Source
  2. C API (C++ okay too)
  3. ACID
  4. Some level of crash recovery
  5. High [storage] capacity per file
  6. Both key and value are arbitrary binary data
  7. 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?

+1  A: 

If you're using GDBM on a 32-bit (i386) system, the maximum database size is 2GB. If you're using it on a 64-bit system and you compile your app 64-bit, then the maximum database size should be limited by your filesystem.

clee
Can anyone confirm this?
Chris