looking for an atomic/journaled page file in java [closed]
We don’t allow que开发者_如何学Cstions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this questionI am looking for an embeddable library for doing atomic file I/O from java. I need the library to support the following features.
- basic page management -- allocate/free pages and read/write
- atomic (all or nothing) writes (basically journaled I/O)
A simple binary page format (needs to be readable by C++)
It does not need to be that fast (or concurrent), just simple and reliable.
Has anyone used something in the past which fits the bill?
Things I have looked into
I found the internals for the kaha db project to be useful, but development seems to have switched to a fusesoure project called hawtdb. Hawt currently seems to rely memory mapped I/O which sounds good at first, but limits the size of the page file you can access to 2GB unless you go to a 64bit JVM + OS (due to JVM address space limitations).
Some alternatives I am considering are the Cassandra project, but I don't know if its embeddable. I've looked into derby (which created lots of files when run) and H2 (which seemed promising, but I didn't look too deeply). These seemed to have relatively complex page file formats and seem to provide far more than I need. MySQL did provide docs for the page file format, but it too was a bit complex.
HOWL
HOWL is a logger implementation providing features required by the ObjectWeb JOTM project, with a public API that is generally usable by any Transaction Manager. HOWL uses unformatted binary logs to maximize performance and specifies a journalization API with methods necessary to support JOTM recovery operations.
HOWL is intended to be used for logging of temporary data such as XA transaction events
Berkley DB? (The traditional version with JNI, not the Java version if you also want to access via C++). I haven't used it, but seems to fit your requirements more closely than some of the alternatives that you've listed.
SQLLite? Similar but more relational database focused. Native, but with Java bindings.
Just some other ideas. These might not provide low enough access for page based file i/o though.
An oldie, but goodie JDBM
精彩评论