Have you watched Berkeley DB Java Edition ? It was designed for this type of use. Large datasets, high write throughput, reliable persistence with a set of very Java developer APIs. You can use the Base API (key / value pairs) , the collection API, or the JPA-like DPL (Direct Persistence Layer) API.
An excellent Getting Started Guide that has examples and explains the various APIs.
There are many similar use cases at your disposal. In fact, Terracotta and Coherence use Berkeley DB for perseverance. Like Heretix, an online archive project, Tibco and many other companies and projects. The reason is that BDB provides the performance, reliability, scalability, flexibility and simplicity that they need.
Disclaimer: I am one of the product managers for Berkeley DB, so naturally I am biased. But your use case sounds exactly on target with what was developed by BDB.
Good luck with your project. Please tell us if there is anything we can help with. You can ask questions about Berkeley DB Java Edition on the OTN Forums , where you will find a large community of active Java application developers.
Yours faithfully,
Dave
source share