Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-1284

Optionally circumvent ThreadAction in ArjunaCore when using concurrent nested transactions

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Won't Do
    • Major
    • None
    • None
    • Transaction Core
    • None

    Description

      Needs sanity checking
      We can collaborate on the work via linked GitHub branch
      The problem out of the box is when you AtomicAction "begin" - you will link to the ThreadActionData, as you can see in the test I can circumvent that via a different API call start passing in the parent directly.
      You can see there is precedent to manipulate ThreadActionData: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AsyncPrepare.java (doing the prepare in multiple threads)

      I think this is feasible, it may need some thread safety via synchronization in the AtomicAction.

      Nested Transactions in core look to be able to support concurrent access except:
      1. Threading may not work, will need to check and fix
      2. ThreadActionData imposes a stack

      You can see in my test (linked in the GitHub branch) I am circumventing the stack.

      we already support nested transactions, it should just be not associating them with a thread and making sure they are thread safe when they talk to their parents

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              thjenkin@redhat.com Tom Jenkinson
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: