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. > >>> > >>> ================== > >>> > >> >
