Hi,

Could you point out what kind of protocol definition schema you used in
interface description? I think we should know the accurate fields' range,
type in different language.

Thx

On Wed, Oct 12, 2022 at 7:48 PM William Guo <[email protected]> wrote:

> Thanks jianhua.
>
> Could you draw the sequence diagram in wiki
>
> https://cwiki.apache.org/confluence/display/GRIFFIN/Components+Diagram
>
> We cannot see your attachments in email.
>
> Thanks,
> William
>
> On Wed, Oct 12, 2022 at 5:58 PM jianhua guo <[email protected]> wrote:
>
> > The core module and dispatcher's architecture is below:
> > [image: image.png]
> > 1. core module will generate the DQ sql according to the different
> > engine‘s syntax features,and wrapped in the submit request.
> > 2. dispatcher provided the restful api to accept the request from the
> core
> > server.
> > 3. after received the request info, dispatcher will submit the query to
> > the specified engine(presto, spark, hive, flink)
> > 4. dispatcher need provided a method to the core module, named "execute"
> > is nice, and in the method, it will continue to get job status from
> > dispatcher,when the job is finished, then fetch the result from
> dispatcher,
> > then return the response to the core module.
> > The below is the sequence diagram.
> > [image: image.png]
> > [image: griffinDispatcher1.png]
> > [image: image.png]
> > Thanks for you review.
> >
> > On Wed, Oct 12, 2022 at 5:09 PM jianhua guo <[email protected]> wrote:
> >
> >> Most looks good to me. Just one confusion, the "RecordResponse" only
> >> return long value result?
> >>
> >> On Wed, Oct 12, 2022 at 1:22 PM William Guo <[email protected]> wrote:
> >>
> >>> hi all,
> >>>
> >>> The following message from Warden, we can discuss interaction between
> >>> core
> >>> and dispatcher module here.
> >>> ====================
> >>> I have drafted the communication messages between core and dispatcher
> as
> >>> below,
> >>>
> >>>
> >>> // submit sql
> >>> execute(RecordRequest) return RecordResponse;
> >>>
> >>> RecordRequest {
> >>>  String recordSql;
> >>>  Enum engine;  // Spark,Hive,Presto,etc.
> >>>  String owner;
> >>>  Integer maxRetryCount;
> >>> }
> >>>
> >>> RecordResponse {
> >>>  Integer code;
> >>>  Long value;
> >>>  Enum errorCode; // if code != 200, please tell us what happened:
> >>>      //    1、 recordSql syntax error
> >>>      //    2、 internal error, dispatcher self is crashed
> >>>      //    3、 external error, target engine is crashed when dispatcher
> >>> call,etc
> >>>  Exception ex;   // error detail info
> >>> }
> >>>
> >>> // validate sql syntax
> >>> validateSQL(CheckRequest) return CheckResponse;
> >>>
> >>> ValidateSQLRequest {
> >>>  String recordSql;
> >>>  Enum engine;  // Spark,Hive,Presto,etc.
> >>> }
> >>>
> >>> ValidateSQLResponse {
> >>>  Integer code;
> >>>  Enum errorCode; // if code != 200, please tell us what happened:
> >>>      //    1、 recordSql syntax error
> >>>      //    2、 internal error, dispatcher self is crashed
> >>>      //    3、 external error, target engine is crashed when dispatcher
> >>> call,etc
> >>>  Exception ex;   // error detail info
> >>> }
> >>>
> >>>
> >>>
> >>> Could you please review it? Give us your feedback.
> >>>
> >>> ==================
> >>>
> >>
>

Reply via email to