pan3793 commented on issue #5383:
URL: https://github.com/apache/kyuubi/issues/5383#issuecomment-2062861067

   @tgravescs that's a good question, and we did have an offline discussion 
about it. 
   
   TL;DR, your assumption will be the ultimate version, but not at the 
beginning.
   
   As you know the current main flow of Kyuubi is: 
   
   ```
          ===[http]
   client ===[thrift]====> Server ===[thrift]===> Engine
          ===[etc.]               ---[thrift]---> STS/HS2/Impala (we know 
someone implemented such a feature internally)
   ```
   
   The engine itself is kind of a regular Spark app that basically only 
consumes Spark's public API, making it easily compatible with multiple Spark 
versions. As connect is a new feature and `connect-server` is not supposed to 
be exposed to the user directly(I suppose only gRPC API is public API in this 
case), pulling `connect-server` in the current Spark engine module directly 
would break the current assumption. So in the experimental phase we are going 
to create a dedicated engine module for the `connect` engine, we may call it 
`SPARK_CONNECT`(the current one is SPARK_SQL)。
   
   Another important case is `Server ===[thrift]===> Engine`, currently, we use 
Thrift(more specifically, the HiveServer2 Thrift protocol) as the internal RPC 
protocol, but for connect, obviously gRPC should be used, and keep two internal 
RPC protocol is quite complex and redundant, we tend to create a dedicated 
experimental server that keeps similar architecture but rewrite the RPC 
implementation.
   
   Once the PoC is completed, we can consider merging servers and engines to 
achieve the final vision as you said.
   
   ```
          ===[http]
          ===[grpc]
   client ===[thrift]====> Server ===[grpc]===> Engine
          ===[etc.]               --[thrift]--> STS/HS2/Impala (we know someone 
implemented such a feature internally)
   ```
   
   Maybe @yaooqinn can share more information


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to