I am looking for an efficient way to store many key-> value pairs on disk for storage, preferably with some caching.
The necessary functions are either adding to the value (concatenate) for a given key or for the model to have a key β list of values, both options are in order. Part of the value is usually a binary document.
In this case, I will not have too much use of clustering, redundancy, etc.
In the language we use java, and we have experience in classic databases (Oracle, MySQL, etc.).
I see a couple of obvious scenarios and would like to advise which is the fastest in terms of storage (and search) per second:
1) Store data in classic db tables with standard inserts.
2) Do it yourself, using the file system tree to distribute to many files, one or more per key.
3) Use some well-known tuples. Some obvious candidates: 3a) Berkeley db java 3b) Modern NoSQL solutions such as cassandra and the like
Personally, I like Berkely DB JE for my task.
Summarizing my questions:
Is Berkely a reasonable choice, given the above?
What speed can I expect for some operations, for example, updating (inserting, adding a new value for the key) and retrieving the given key?
source share