Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem

On Mon, Apr 29, 2019 at 7:58 PM zhaojun <zhaoju...@126.com> wrote:
>
> Hi, Willem
>
> Saga actuator could not compatible with ShardingSphere currently,  there are 
> 2 main problem exist.
>  1. If sql execute in saga transport instead of ShardingSphere, we can not 
> see the result of logic-sql even in one transaction, it is like this:
>         update t_order set status=’start’ where usr_id=’tom’;
>         select status from t_order where usr_id=’tom’;                      
> —> we can’t query ’start’ record as actuator haven’t executed.
>         Insert into t_order values(?,?,?) ;

I think we can break the whole SQL interactions into smaller steps,
and let saga-actuator do the job one by one.
In this case, you can break the whole calling graph into several sub
calling graphs.
Any thought?

>  2. If logic-sql execute in ShardingSphere, we cannot handle recovery before 
> submit graph result, as event log only wrote at saga engine.
>
> so we should integrate saga-transaction like omega send event log step by 
> step.
> It is better to make every instance do recovery Independently, instead of 
> providing another coordinator center service.
> I feel that embed saga should have following  capability.
>   1).It can provide service in jar package independent
>   2).each embed saga only recovery their own transaction-data of this 
> instance.
>        If one instance crashed, we can introduce external service to do 
> failover.
>
> so we consider about exending saga-acutator, if it can support submit task 
> step by step in one transaction, it is a good choice.
> of course, there have many things we should do.
>
> ------------------
> Zhao Jun
> Apache Sharding-Sphere & ServiceComb
>
> > On Apr 29, 2019, at 5:17 PM, Willem Jiang <willem.ji...@gmail.com> wrote:
> >
> > First Saga actuator need to build up the calling grapha before sending
> > out the request.  I don't think you can do the step by step SQL
> > invocation with Saga actuator.
> > If you want to call the SQL execution step by step , you may need to
> > switch to ServiceComb Pack project which has a coordinator to take
> > care of the distributed transaction. But that introduce another
> > endpoint(Alpha) to shardingsphere.
> >
> > From my understanding, Saga actuator is most efficient way to execute
> > the SQL across different data nodes.
> >
> >
> > Willem Jiang
> >
> > Twitter: willemjiang
> > Weibo: 姜宁willem
> >
> > On Fri, Apr 26, 2019 at 6:41 PM zhaojun <zhaoju...@126.com> wrote:
> >>
> >> Hi, all
> >>
> >> currently, we have integrated with saga using graph based engine in 
> >> shardingsphere[1]
> >> it need us to collect all participated actual SQL, then submit to saga 
> >> actuator in commit/rollback phase.
> >> if application crashed before invoking saga actuator, undo log of branch 
> >> transaction SQL will not be saved,
> >> so recovery thread will not be executed correctly.
> >>
> >> it's better that encapsulating every actual SQL as a saga task in 
> >> shardingsphere side,
> >> then submit to saga actuator realtime instead of batch processing all the 
> >> SQLs at commit/rollback phase.
> >> this architecture will make the boundary more clear between shardingsphre 
> >> and saga, currently we have done some additional works for integrating 
> >> saga.
> >>
> >> any thought?
> >>
> >> [1]:https://github.com/sharding-sphere/shardingsphere-spi-impl/tree/master/sharding-transaction-spi-impl/sharding-transaction-base-spi-impl/sharding-transaction-base-saga
> >>  
> >> <https://github.com/sharding-sphere/shardingsphere-spi-impl/tree/master/sharding-transaction-spi-impl/sharding-transaction-base-spi-impl/sharding-transaction-base-saga>
> >>
> >>
> >>
> >> ------------------
> >> Zhao Jun
> >> Apache Sharding-Sphere & ServiceComb
> >>
>

Reply via email to