Hi there! I'd like to revive this bug. Since version 2.3, the pyscopg2 driver implements the two-phase commit extension of the DB API specification version 2.0. So I'm keen to pick it up and implement Storm's support for two-phase commit on top of the DB API 2.0 interface.
The idea would be to add a prepare() method to the Store class, as proposed by earlier comments in this bug. Invoking prepare() on a backend that doesn't support the DB API two-phase commit extension would raise NotSupportedError, as recommended in comment #4. Then commit() or rollback() would transparently perform the second phase of the commit, if prepare() was called, as suggested in comment #1. We might also want to have a begin(transaction_id) method on the Store class, accepting a unique string identifier. This would call the backend's tcp_begin() DB API method under the hood, and can be used by transaction managers. Integration with ZStorm would be done using the above API, and probably adding something like a set_tpc(flag) method to ZStorm to enable/disable two-phase commit (it would be off by default). Another option would be to explicitly add two new methods, e.g. tcp_commit() and tcp_rollback(), to clearly mark the difference with commit() and rollback(), though I'm not sure how useful that would be and what the possible use cases are. Thoughts? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/132485 Title: Storm should try to support two-phase commit where possible To manage notifications about this bug go to: https://bugs.launchpad.net/landscape/+bug/132485/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs