-
Notifications
You must be signed in to change notification settings - Fork 947
Supports fully asynchronous Engine initialization #7020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
edf3079
to
3a2aa38
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #7020 +/- ##
======================================
Coverage 0.00% 0.00%
======================================
Files 695 695
Lines 42819 42830 +11
Branches 5830 5832 +2
======================================
- Misses 42819 42830 +11 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
2741b98
to
349e84d
Compare
349e84d
to
219a1cf
Compare
could you check the UT failure? |
kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
Files not reviewed (3)
- kyuubi-server/src/main/scala/org/apache/kyuubi/operation/ExecuteStatement.scala: Language not supported
- kyuubi-server/src/main/scala/org/apache/kyuubi/operation/KyuubiOperation.scala: Language not supported
- kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala: Language not supported
This PR is a little tricky for me. Did you test whether this PR resolve the issue? Could you check the KyuubiConnection? kyuubi/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/KyuubiConnection.java Lines 195 to 199 in 4cbff4d
Was your issue caused by |
Our users connect to kyuubi by pyhive with CONNECTION mode. If the engine is not started for a long time (maybe dozens of minutes) due to waiting for resources, the client's execute sql will be blocked in kyuubi. The final phenomenon is that even if the spark engine is successfully started finally, the client can not receive any response. This PR solved this problem, execute request (async) from pyhive can return quickly without blocking while waiting for the engine to start. |
Why are the changes needed?
When
SESSION_ENGINE_LAUNCH_ASYNC
is set toTrue
, the client should not block while waiting for the engine to initialize. This is particularly important in scenarios where cluster resources are constrained, as engine initialization can be significantly delayed, potentially causing the client to block during execute calls. This can lead to serious issues—for example, we found that PyHive may lose connection with Kyuubi under such circumstances. This PR enables fully asynchronous engine startup, thereby reducing client response latency and improving the overall user experience.How was this patch tested?
Was this patch authored or co-authored using generative AI tooling?