[ https://issues.apache.org/jira/browse/HIVE-4569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13675698#comment-13675698 ]
Jaideep Dhok commented on HIVE-4569: ------------------------------------ Update on the work done so far - # h5. Added getQueryPlan API with Thrift # h5. Added support for non-blocking queries. ## Right now I have done this by passing a boolean flag while calling executeStatement ## If the flag is set to true, query runs in non-blocking mode. The flag defaults to false. ## I've implemented this by adding a fixed size thread pool in the OperationManager, for running non-blocking operations. A reference to the future is kept in the operation, so that it can be cancelled. ## Once the query is running in the background, users can poll status using GetOperationStatus. ## Users can cancel the query by calling CancelOperation # h5. Additions in GetOperationStatus ## OperationManager calls operation.getTaskStatuses(), Each operation can override this method to customize reporting ## SQLOperation returns the task statuses by calling getTaskStatuses() on the current driver. ## Driver reports task statuses by iterating through all tasks in the plan ## Changes in HS2 thrift API - {code} // GetOperationStatus() // // Get the status of an operation running on the server. struct TGetOperationStatusReq { // Session to run this request against 1: required TOperationHandle operationHandle } // State of a sub task in an operation enum TTaskState { // The task has been initialized INITIALIZED_STATE, // Driver is currently running the task RUNNING_STATE, // Task is completed FINISHED_STATE, // Task is queued in the driver QUEUED_STATE, // State is unkown UNKOWN_STATE } // Status of a sub task in an operation struct TTaskStatus { // Task ID 1: required string taskId // External ID for this task, For example MapRedTask can return job ID of the Hadoop job 2: optional string externalHandle // Current state of the task as seen by driver 3: required TTaskState state } struct TGetOperationStatusResp { 1: required TStatus status // State of the whole operation 2: optional TOperationState operationState // List of statuses of sub tasks 3: optional list<TTaskStatus> taskStatuses } {code} h5. Things pending as of now # If the Task runs in a sub-process, then external handle (job ID) is returned as null. > GetQueryPlan api in Hive Server2 > -------------------------------- > > Key: HIVE-4569 > URL: https://issues.apache.org/jira/browse/HIVE-4569 > Project: Hive > Issue Type: Bug > Components: HiveServer2 > Reporter: Amareshwari Sriramadasu > Assignee: Jaideep Dhok > Attachments: git-4569.patch, HIVE-4569.D10887.1.patch > > > It would nice to have GetQueryPlan as thrift api. I do not see GetQueryPlan > api available in HiveServer2, though the wiki > https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Thrift+API > contains, not sure why it was not added. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira