> On March 3, 2016, 6:20 a.m., Szehon Ho wrote: > > This requirement is very similar to webui's display of operations, can you > > look at QueryDisplay and see if it can be enhanced and combined (rather > > than repeating all this container classes). That class also gives you > > concurrency protection for free as well as marking start/end time for free > > ..
Tasks are maintained by the driver, and they are only sent to query display when it is started. So Query display can not track other states, e.g. QUEUED, INITIALIZED etc. I don't think query display is the way to solve this. Please suggest some alternative. I'll be taking up this issue, and hence I've created a new review request. Please review at https://reviews.apache.org/r/44453/diff/1#index_header > On March 3, 2016, 6:20 a.m., Szehon Ho wrote: > > ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java, line 412 > > <https://reviews.apache.org/r/42134/diff/5/?file=1276514#file1276514line412> > > > > Is it possible to change Task class so that we just keep around state > > member variable, instead of individual booleans for done, queued, etc? > > > > Then it would be the other way, isDone would just return the state == > > DONE, etc. Fixed. > On March 3, 2016, 6:20 a.m., Szehon Ho wrote: > > service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java, > > line 135 > > <https://reviews.apache.org/r/42134/diff/5/?file=1276527#file1276527line135> > > > > Can we put this under onNewState, check the state if its a RUNNING > > state and set the time there, instead of calling everywhere. > > > > Same for markOperationCompletedTime(), check if state is terminal state > > and set the time there. > > > > Same comment across all operations.. Fixed. - Rajat ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/42134/#review121751 ----------------------------------------------------------- On March 2, 2016, 5:14 p.m., Akshay Goyal wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/42134/ > ----------------------------------------------------------- > > (Updated March 2, 2016, 5:14 p.m.) > > > Review request for hive and Amareshwari Sriramadasu. > > > Bugs: HIVE-4570 > https://issues.apache.org/jira/browse/HIVE-4570 > > > Repository: hive-git > > > Description > ------- > > Driver maintains list of running and runnable tasks although that info is not > exposed outside. It's kept locally in the driver's execute method. We can add > Driver.getTaskStatuses() to return status on all tasks (both running and > runnable). Similarly, start and completion times for operations. > > Proposed changes are : > > struct TGetOperationStatusResp { > 1: required TStatus status > 2: optional TOperationState operationState > > // If operationState is ERROR_STATE, then the following fields may be set > // sqlState as defined in the ISO/IEF CLI specification > 3: optional string sqlState > > // Internal error code > 4: optional i32 errorCode > > // Error message > 5: optional string errorMessage > > // List of statuses of sub tasks > 6: optional string taskStatus > > // When was the operation started > 7: optional i64 operationStarted > // When was the operation completed > 8: optional i64 operationCompleted > > } > > > Diffs > ----- > > ql/src/java/org/apache/hadoop/hive/ql/Driver.java 3253146 > ql/src/java/org/apache/hadoop/hive/ql/TaskStatus.java PRE-CREATION > ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java e199e5e > ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java b184b4e > service-rpc/if/TCLIService.thrift 0aa9d13 > service/src/java/org/apache/hive/service/cli/OperationStatus.java e45b828 > > service/src/java/org/apache/hive/service/cli/operation/GetCatalogsOperation.java > 8868ec1 > > service/src/java/org/apache/hive/service/cli/operation/GetColumnsOperation.java > 35b6c52 > > service/src/java/org/apache/hive/service/cli/operation/GetFunctionsOperation.java > 8db2e62 > > service/src/java/org/apache/hive/service/cli/operation/GetSchemasOperation.java > d6f6280 > > service/src/java/org/apache/hive/service/cli/operation/GetTableTypesOperation.java > a09b39a > > service/src/java/org/apache/hive/service/cli/operation/GetTablesOperation.java > 740b851 > > service/src/java/org/apache/hive/service/cli/operation/GetTypeInfoOperation.java > 2a0fec2 > > service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java > f5a9771 > service/src/java/org/apache/hive/service/cli/operation/Operation.java > 22f725c > service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java > 100dc6a > service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java > 8dff264 > > service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java > 5f01165 > service/src/test/org/apache/hive/service/cli/CLIServiceTest.java e78181a > > Diff: https://reviews.apache.org/r/42134/diff/ > > > Testing > ------- > > Test cases added to validate task status and operation start and end times. > > Task status json seen with one stage is: > [{"taskId":"Stage-1","externalHandle":"job_local1121055131_0136","taskState":"FINISHED_STATE"}] > > And TaskStatus toString() returns > Stage-1/job_local1121055131_0136/FINISHED_STATE for the same. > > > Thanks, > > Akshay Goyal > >