[ 
https://issues.apache.org/jira/browse/PHOENIX-2411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15074618#comment-15074618
 ] 

James Taylor commented on PHOENIX-2411:
---------------------------------------

No need to implement anything else because we'd share the same 
TransactionContext which encapsulates the transaction already. This should 
hopefully work fine for CDAP, but there's more required for supporting a load 
balancer in front of the query server - we'd need the transaction manager to 
persist the change set on the cluster keyed by the transaction ID as it 
wouldn't be feasible to return this back to the client.



> Allow Phoenix to participate as transactional component
> -------------------------------------------------------
>
>                 Key: PHOENIX-2411
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2411
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: James Taylor
>             Fix For: 4.7.0
>
>         Attachments: PHOENIX-2411.patch, PHOENIX-2411_v2.patch, 
> PHOENIX-2411_v3.patch
>
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to