Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Because the current Gateway doesn't materialize anything to the stroage, we can't promise the exactly-once semantic. It means users can't retrieval the results if the Gateway has been notified the results is been taken away. 

OperationStatus VS JobStaus

The main reason we don't use the JobStatus in the state in the machine:

  • Operation includes DDL, DML and so on, which is much larger than the Job. We can't use a small concept to replace large concept.
  • Some status in the JobStats is meaningless in the Operation. For example, DDL Operation don't need RESTARTING/SUSPENDED/RECONCILING.
  • the Gateway allows to submit job(DML) in sync/async mode. The running status in the Operation Status in the different mode has different meaning:


    • In the async mode, when the gateway submits the job, the state comes to the FINISHED state
    • In the sync mode, the running status in the Operation status includes submitting the job, running job. Even if a failover occurs, we still think that this Operation is in the RUNNING state. Unless the job is unrecoverable, we change the Operation status to ERROR.

Therefore, we propose a new state machine in the Gateway side.


Appendix

Serialize and deserialize the ResultSet 

...