I'm writing an application in Java and would like to store the data. The data in question will be a certain number (may be a few 1000s) of vectors, and each vector would be of different size, but the bigger ones may be about 100000 elements long. A vector is composed of integers, doubles or strings (UTF-8).
I need to:
- Read a few of those vectors as fast as possible when opening the application
- Create new vectors as fast as possible
- Modify the elements of a vector as fast as possible
- Add or delete elements to a vector (anywhere on the vector) as fast as possible
So I would like a library to help me with that. I've already looked at:
HDF5: while it seems to be what I want, I hated the APIs, everything seems to be overly complex, the documentation is not very good, the Java bindings seem to be a second class citizen and UTF-8 support seems not to be the default. In particular I am very afraid of HDF5 Java limitations.
Java serialization: does not seem to have any way of modifying other than rewriting.
Embedded databases: the ones I saw seemed to use SQL for which I have no use and would greatly complicate my very simple operations.