strasser | 9 Feb 14:54
Picon
Picon
Favicon

[transact] code in sandbox

Hi,

I haven't had much time lately, and that's not going to change to next  
couple of weeks, so I've uploaded what I have so far to the sandbox:

https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/

what's new:

*** basic_transaction_manager:
  - now supports all kinds of combinations of commits, like we've  
discussed, including one-phase/transient two-phase, persistent  
two-phase. no logging/recovery yet.
  - lazy and non-lazy transaction construction, user-configurable

*** simple_transaction_manager:
a transaction manager supporting only one resource.  
basic_tranaction_manager includes a lot of MPL/fusion and the logging  
infrastrucure, none of which is needed for only one resource.
this is intended to be the default transaction manager when one of our  
libraries is used on its own.

*** logging infrastructure:
to be used by basic_transaction_manager for its distributed  
transaction log, and optionally by resource managers that need logging  
(so it is part of the public interface!)

  - olog_files: maintaining log files without knowing its contents,  
manual log rolling
  - otransaction_log_files: same as olog_files, but automatic log  
rolling based on transactions
  - olog: writes to olog_files, aware of log entries
  - olog_buffer: same interface as olog, but buffers log entries  
locally and only accesses the log when the internal buffer overflows.
  - TODO: ilog_files/ilog to read/recover from logs. code is there,  
but not migrated to "transact".
  - TODO: interleaved_ologs/..., providing multiple olog interfaces so  
different resource managers can share a log, as we've discussed.

*** new syntax for transaction scopes:
syntax changed from:
atomic{
   ...
}retry;

to

do atomic{

}commit();

I prefer that syntax because it resembles the do{}while(...) syntax.
downside is that it conflicts with transaction::commit() if the user  
chooses to define BOOST_TRANSACT_COMMIT to "commit" (as is done above).

*** TODO object_access
not migrated to "transact" yet. utility functions for resource  
managers to serialize/clone/compare/... objects.

regards,

Stefan

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Gmane