Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
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
Attachments
Issue Links
- relates to
-
CALCITE-1027 Support commit/rollback behind "dumb" loadbalancer
- Open