Re: A question about journal creation
Klaus Wuestefeld <[email protected]> Fri, 26 Jul 2013 12:58:47 -0300
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAMAooZEEyruAM_vV-MmufZieb3KpSt6dBkDNx0Ox2WLUg=fRWw@mail.gmail.com> |
:D On Jul 26, 2013 11:57 AM, "Paul Bennett" <[email protected]> wrote: > Klaus, that should work well. Thanks for a much simpler solution. > > -pb > > On Jul 25, 2013, at 2:58 PM, Klaus Wuestefeld <[email protected]> wrote: > > > Since closing the prevalent system and restarting it is a cost you are > > willing to pay, if you do that before executing the transaction group, > > a new journal will be created, > > > > On Thu, Jul 25, 2013 at 2:15 PM, Paul Bennett <[email protected]> > wrote: > >> 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 > >> > > > > > > > > -- > > Valeu, Klaus. > > > > > ------------------------------------------------------------------------------ > > 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 > > > > ------------------------------------------------------------------------------ > 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 > ------------------------------------------------------------------------------ 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