I am looking for a C/C++ based distributed key/value store which has a clean enough design so I can plug in my own in-memory storage engine. It is OK even if I have to do code changes to be able to do that.
Does anyone have a recommendation? Or a similar experience in doing this? The Java based project Voldemort (http://www.project-voldemort.com/voldemort/) is a good example except it's written in JAVA and I am looking for something in C++ or C .
Berkeley DB is a key value store with a C (kinda C++) api. I'm not sure what you mean by 'pluggable storage' other than writing your own tuple management on top of the key value store.
Relevancy:
Does not answer question, but additional rambling, which seemed to obtain negative points:
But I'm not sure if that is efficient. I started out with Berkeley DB, but realized my queries were getting complicated, and I was writing too much overhead code.
I ended up migrating to SQLite. It is a C/C++, full SQL capable, but a very low, in-process, memory foot print. Then use an ORM tool on top of that to manage data structures.
The ORM tool from Wt works quite well in that regard.
The combination of the two may then allow you to get up to speed with your own code, rather than messing around with the access layer code.