[Mulgara-dev] Update on MGR-44

Andrae Muys andrae at netymon.com
Fri Mar 9 08:38:44 UTC 2007


I thought I'd provide an update on my progress on MGR-44 (the  
recursive transaction bug).  As I mentioned the core problem was a  
misconception of the type of automata required to represent the state  
of a transaction.  The need to track matching activate/deactivate and  
reference/dereference pairs makes use of a deterministic finite  
automata impossible, and requires instead a deterministic pushdown  
automata.

I have documented (and attached) the required DPA as a combination of  
a UML state diagram and a fragment of ML code - really I just wanted  
pattern matching, but when the difference between that and legitimate  
ML is so trivial, why not.

I have also attached my current version of MulgaraTransaction.java -  
I believe this to be correct (although it is uncompiled and untested)  
- testing and further inspection is on next weeks agenda.  It will  
also require the following work before it can be tested:

MulgaraTransactionManager
   - terminateCurrentTransactions needs to be rewritten to make calls  
to Transaction explicit in intent.
   - rollback doesn't need to call completeTransaction -  
explicitRollback should be sufficient.
   - setAutoCommit needs to be rewritten to make explicit calls to  
either commit or rollback - explicit intent.
DatabaseOperationContext
   - abort needs to be migrated into MulgaraTransaction (we should  
capture the required state from enlist) and replaced with a simple  
call to clear().

I will also need to reinspect:
DatabaseSession:
   - execute
DatabaseOperationContext:
   - initiate
   - obtainResolver
TransactionalAnswer
   - calls to execute(AnswerOperation)
   - clone
   - <init>
   - close
MulgaraTransactionManager
   - getTransaction
   - obtainWriteLock

Andrae Muys

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Transaction State Diagram.png
Type: image/png
Size: 63488 bytes
Desc: not available
URL: <http://lists.mulgara.org/pipermail/mulgara-dev/attachments/20070309/27c9d21e/attachment.png>
-------------- next part --------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: transaction_dpa.ml
Type: application/octet-stream
Size: 1480 bytes
Desc: not available
URL: <http://lists.mulgara.org/pipermail/mulgara-dev/attachments/20070309/27c9d21e/attachment.obj>
-------------- next part --------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: MulgaraTransaction.java
Type: application/octet-stream
Size: 22863 bytes
Desc: not available
URL: <http://lists.mulgara.org/pipermail/mulgara-dev/attachments/20070309/27c9d21e/attachment-0001.obj>
-------------- next part --------------

-- 
Andrae Muys
andrae at netymon.com
Principal Mulgara Consultant
Netymon Pty Ltd




More information about the Mulgara-dev mailing list