It sounds good to me.

Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem

On Thu, May 2, 2019 at 11:14 AM 赵俊 <zhaoju...@jd.com> wrote:
>
> Let SQL executor running command one by one is good to me.
>
> One logic-sql will be routed to multi-actual SQLs, then executed in 
> sharding-sphere execute-engine.
> A actual SQL will be wrapped as a SQL execute-callback in sharding-sphere.
> We could provide a SPI for this SQL execute-callback.
> For integrated with saga, we could implement a saga execute-callback, it will 
> wrap event sourcing logic like saga-actuator task have done.
>
>
> > On May 1, 2019, at 5:06 PM, Willem Jiang <willem.ji...@gmail.com> wrote:
> >
> > We could do some enhancement on it.
> > From my understanding, We could create a calling graph which has three
> > sub graph of it, or we could let the SQL executor running the command
> > one by one.
> > Any thoughts?
> >
> > Willem Jiang
> >
> > Twitter: willemjiang
> > Weibo: 姜宁willem
> >
> > On Wed, May 1, 2019 at 4:29 PM zhaojun <zhaoju...@126.com> wrote:
> >>
> >> But saga-actuator don’t support 3 logic SQL is a global transaction while 
> >> you submit 3 times separately.
> >>
> >> ------------------
> >> Zhao Jun
> >> Apache Sharding-Sphere & ServiceComb
> >>
> >>> On May 1, 2019, at 8:38 AM, Willem Jiang <willem.ji...@gmail.com> wrote:
> >>>
> >>> 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