Control transactions retries manually

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Doctrine
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The transactional commit logic currently uses the convenient transactions API, which will retry a transaction for up to 120 seconds as long as transient errors occur. This time limit is not configurable in the API itself, but can be controlled using the timeoutMS setting introduced in the CSOT specification. However, PHP doesn't implement that specification yet, so any transaction may block requests for up to 120 seconds, which is not ideal in a web context.

      To alleviate this problem, ODM should re-implement the functionality of the convenient transactions API with a different timeout mechanism. For the time being, the transaction should be retried only once, with that value potentially being configurable in the future. A time-based timeout could also be considered down the road.

              Assignee:
              Andreas Braun
              Reporter:
              Andreas Braun
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: