Bharath Vissapragada has uploaded a new patch set (#2). Change subject: IMPALA-1972/IMPALA-3882: [DRAFT] Don't hold QueryExecState::lock_ during planning ......................................................................
IMPALA-1972/IMPALA-3882: [DRAFT] Don't hold QueryExecState::lock_ during planning - Prevents locking inside GetQueryExecState() method. It is confusing that some callers choose to lock it inside the method and wait on it later. Now, the locking is the responsibility of the callers. - Removes holding of QueryExecState::lock_ during query planning. It looks like it was done to prevent the callers from accessing QueryExecState::result_metadata_. This unnecessarily blocks every other access to the QES, especially blocking the web UIs. Instead result_metadata() is now a blocking call on a separate promise that is set after the ExecState is built. Testing: Tested it locally by adding a long sleep in JniFrontend.createExecRequest() and still was able to refresh the web UI and run parallel queries. This patch still requires some clean up. I was not fully sure if the approach is correct, so I wanted to get opinions of others before finalizing the approach. Change-Id: Ie44daa93e3ae4d04d091261f3ec4891caffe8026 --- M be/src/service/impala-beeswax-server.cc M be/src/service/impala-hs2-server.cc M be/src/service/impala-http-handler.cc M be/src/service/impala-server.cc M be/src/service/impala-server.h M be/src/service/query-exec-state.h 6 files changed, 78 insertions(+), 74 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/07/6707/2 -- To view, visit http://gerrit.cloudera.org:8080/6707 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie44daa93e3ae4d04d091261f3ec4891caffe8026 Gerrit-PatchSet: 2 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Bharath Vissapragada <[email protected]>
