[WIP][SPARK-30621][SQL] Dynamic Pruning thread propagates the localProperties to executionContext #27343
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
In
org.apache.spark.sql.execution.SubqueryBroadcastExec#relationFuturemake a copy oforg.apache.spark.SparkContext#localPropertiesand pass it to the execution thread inorg.apache.spark.sql.execution.SubqueryBroadcastExec#executionContextWhy are the changes needed?
In Dynamic pruning feature, when executing
SubqueryBroadcastExec, the relationFuture is evaluated via a separate thread. The threads inherit thelocalPropertiesfromsparkContextas they are the child threads.These threads are created in the executionContext (thread pools). Each Thread pool has a default
keepAliveSecondsof 60 seconds for idle threads.Scenarios where the thread pool has threads which are idle and reused for a subsequent new query, the thread local properties will not be inherited from spark context (thread properties are inherited only on thread creation) hence end up having old or no properties set. This will cause
SubqueryBroadcastExec#executionContextlocal properties to be missing or staleDoes this PR introduce any user-facing change?
No
How was this patch tested?
WIP