I added JDBM storage implementation for
SimpleStore, It is kind of "Transparent Persistence" noe it has two types of persistence
RDBMS and JDBM.
This integration is not well tested and optimized,
but I see JDBM is exelent DB implementation.
This is very cool! Thanks for letting us know you're using JDBM over at Apache.
I found this project the best
implementation for persistent BTry and Hashtable, I am very new JDBM user and it is possible I use it incorrect, but I think I will
find ways to optimize code in simplestore.
It is very good if you are thinking about XA resources and interfaces from java.util package.
I think Comparator, Set, Map, Collection and Iterator can be very useful to implement in persistent JDMB classes.
Support for java.util interfaces is coming very shortly. I have a java.util-friendly version of JDBM locally here, which I need to clean up and commit later on.
As for XA support, there is a design issue here. JDBM doesn't support explicit rollbacks, which are needed by the XA protocol. I think the solution is to wrap JDBM with a high-level interfaces (much like SimpleStore) and let this wrapper act as the XA resource.
Simplestore can't implement roolback, it restores
object state in cache on roolback, but it can't restore
resources. I believe you will find solution.
The most popular this kind of storage implementation is BDB www.sleepycat.com, it has interface for JAVA and it is very good code, but JDBM is pure JAVA and use BSD license.
You can try to reuse cache from simplestore(based on java.ref.* to communicate with GC), it can be useful for JDBM, but transactions will not.