Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-61

Dynamically switch between single and two phase commit based on cluster size

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Won't Do
    • Major
    • None
    • 4.0.0.ALPHA4
    • None
    • None
    • High

    Description

      Following 2 optimizations might be implemented with respect to transactions.

      1) From an email on infinispan-dev (horizon-dev actually):
      if there are only two members int the cluster always use an 1PC. If the 1st phase fails remotely, then also rollback locally. This would reduce one network roundtrip.

      While this is an interesting thought, it does raise the potential for race conditions - since this decision will have to be taken in the TxInterceptor in the beforeCompletion phase of a transaction, and by the time the call gets to the interceptor for replication, the topology may have changed such that you need to replicate to 2 instead of 1 other peer. Which would mean a 2PC again. So it does need some thought.

      2) when asked to prepare, a participant might return a value indicating that no changes were made (read-only participant), so this one won't need an commit message, so less roundtrip.

      Attachments

        Issue Links

          Activity

            People

              mircea.markus Mircea Markus (Inactive)
              mircea.markus Mircea Markus (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: