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