A question about journal creation
Paul Bennett <[email protected]> Thu, 25 Jul 2013 13:15:36 -0400
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <[email protected]> |
We have a situation where we would like to run a group of transactions, and be able to undo them as a group. We could define inverses on the transactions and re-run, but this is complicated. In the context in which they run, there would only be a single user on the system (an administrator). The system would leave the single-user context with either the group executed as normal, or not executed at all. There would be no other transactions executing on the system while this group is executed and possibly undone. Given these constraints, we think there is a simple implementation: simply remove from the journal those transactions that need to be undone. We would do this by taking a snapshot before the transactions are executed, starting a new journal, and executing the transactions. Then, to undo, we simply remove that new journal file, and reload the last snapshot. So: 1) Does this sound like a plausible solution? Have we missed something that makes this unworkable? 2) The only thing missing from this to be done is the ability to control explicitly the transaction boundaries on which a journal is created i.e. there is no equivalent of takeSnapshot() for starting a new journal. Obviously this has to be synced with execution and journal sync, so we would propose to implement this by adding a boolean to the execute(Transaction t) method, which would ultimately add a flag to TransactionCapsule, indicating it should explicitly start a new journal before serialization - similar to the test in PersistentJournal#append using the isOutputJournalStillValid() method. Does this sound like a good/viable solution? Any comments/alternative ideas would be most welcome! Thanks in advance, -pb ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org