Kristian Waagan wrote:
Kristian Waagan wrote:
...
The wiki page is at: http://wiki.apache.org/db-derby/InMemoryBackEndPrimer

Thanks for pulling this spec together, Kristian. Some comments:

Proper Delete Mechanism

I agree that option (1) looks fine: the mechanism for deleting a database then looks like the mechanisms for creating and halting databases. I think it's ok to restrict this privilege to the DBO. For most use-cases that will probably be fine. There might be an oddball case of a System Administrator needing to delete an in-memory database without bouncing the VM. This sounds like something we could add when we add system privileges.


Automatic database persistence on JVM shutdown

I think we should say something about how the user experiences this feature:

1) It makes sense to me that snapshot-on-exit is an attribute of a database which is set when the database is initially booted. Can you change the setting and if so, who can do this and how?

2) It would be nice to say a few words about how you reboot one of these snapshots. Is this done via the restoreFrom connection attribute? Do you need to specify snapshot-on-exit when you reboot one of these in-memory databases or is it assumed that if you reboot one of these in-memory databases then you want the original exit behavior to continue in force?


Automatic database persistence on database shutdown

Similar questions about this feature. In addition, it becomes possible for a database to have two states: the in-memory version and the snapshot created when the database was shutdown.

3) If you reboot the database, do you get the version that's still in memory? In the meantime, someone could have booted the snapshot as a persistent database, fiddled with it, and re-written the snapshot.

4) Can you reboot the database with a restoreFrom setting? Does this override the version in memory or does this raise an error?

I think there's definitely an opportunity to share code between snapshot-on-exit and snapshot-on-shutdown. But they look like separate features to me. My gut feeling is that snapshot-on-shutdown is more important than snapshot-on-exit and has fewer problems. I think that most people who need to persist an in-memory database could write their application in such a way that they could gracefully park the database before bringing down the vm. The more I think about it, the more that shutdown-on-exit seems to refer to an undefined state of the database and cannot be guaranteed to work properly.

Thanks,
-Rick

Reply via email to