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

Optionally circumvent ThreadAction in ArjunaCore when using concurrent nested transactions

    Details

    • Type: Feature Request
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Rejected
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Transaction Core
    • Labels:
      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

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  tomjenkinson Thomas Jenkinson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: