Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-2411

Allow Phoenix to participate as transactional component

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 4.7.0
    • None
    • None

    Description

      Frameworks such as Cask's CDAP support a means of individual components to participate in a transaction. To support this, Phoenix would need to:

      • Provide a means of passing in the serialized state of a transaction as a connection property. An easy way to do this is to base64 encode the byte[] of the serialized transaction.
      • Provide a statement or statements to run and flush any uncommitted data after execution. The caller could use the Statement.addBatch(String sqlStmt) multiple times and call Statement.executeBatch() to run more than one statement at a time.
      • Return back the potentially new transaction state (as checkpointing may have been required as a result of running the batch of statements).

      In addition, for our query server to remain stateless, we'll need this type of behavior, as it's possible that a load balancer in front of the query server would route an UPSERT or DELETE to a different query server node.

      Attachments

        1. PHOENIX-2411_v2.patch
          27 kB
          James R. Taylor
        2. PHOENIX-2411_v3.patch
          28 kB
          James R. Taylor
        3. PHOENIX-2411.patch
          16 kB
          James R. Taylor

        Issue Links

          Activity

            People

              jamestaylor James R. Taylor
              jamestaylor James R. Taylor
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: