Back to Presto

Task Resource

presto-docs/src/main/sphinx/rest/task.rst

0.2979.3 KB
Original Source

============= Task Resource

The Task resource provides a set of REST endpoints that give Presto servers the ability to communicate about tasks and task output. This isn't a service that will be used by end users, but it supports the execution of queries on a Presto installation.

.. function:: GET /v1/task

Returns information about all tasks known to a Presto server.

Note that the output of a call to /v1/task can be quite large. If you execute this against a busy Presto server the response received will include a listing of every task known to that server along with detailed statistics about operators and drivers.

The following example response shows a trivial task response that has been truncated to fit this manual. A real response from a busy Presto server would generate pages and pages of output. Here there is a taskId for a task which is in the CANCELED state.

Example response:

.. sourcecode:: json

  [ {
    "taskId" : "20131222_183944_00011_dk5x2.1.0",
    "version" : 9223372036854775807,
    "state" : "CANCELED",
    "self" : "unknown",
    "lastHeartbeat" : "2013-12-22T13:54:46.566-05:00",
    "outputBuffers" : {
      "state" : "FINISHED",
      "masterSequenceId" : 0,
      "pagesAdded" : 0,
      "buffers" : [ ]
    },
    "noMoreSplits" : [ ],
    "stats" : {
      "createTime" : "2013-12-22T13:54:46.566-05:00",
      "elapsedTime" : "0.00ns",
      "queuedTime" : "92.00us",
      "totalDrivers" : 0,
      "queuedDrivers" : 0,
      "runningDrivers" : 0,
      "completedDrivers" : 0,
      "memoryReservation" : "0B",
      "totalScheduledTime" : "0.00ns",
      "totalCpuTime" : "0.00ns",
      "totalBlockedTime" : "0.00ns",
      "rawInputDataSize" : "0B",
      "rawInputPositions" : 0,
      "processedInputDataSize" : "0B",
      "processedInputPositions" : 0,
      "outputDataSize" : "0B",
      "outputPositions" : 0,
      "pipelines" : [ ]
    },
    "failures" : [ ],
    "outputs" : { }
  }]

.. function:: POST /v1/task/{taskId}

.. function:: DELETE /v1/task/{taskId}

Deletes a given task from a Presto server.

.. function:: GET /v1/task/{taskId}

Retrieves information about a specific task by taskId.

The following example lists the output of a task. It contains the following high-level sections:

  • outputBuffers
  • noMoreSplits
  • stats
  • failures
  • outputs

This is the same output that is also present in the response from the Query resource which lists all of the stages and tasks involved in a particular query. This is call is used by Presto to coordinate a queries.

Example response:

.. sourcecode:: json

  {
"taskId" : "20140115_170528_00004_dk5x2.0.0",
"version" : 42,
"state" : "FINISHED",
"self" : "http://10.193.207.128:8080/v1/task/20140115_170528_00004_dk5x2.0.0",
"lastHeartbeat" : "2014-01-15T12:12:12.518-05:00",
"outputBuffers" : {
  "state" : "FINISHED",
  "masterSequenceId" : 0,
  "pagesAdded" : 1,
  "buffers" : [ {
    "bufferId" : "out",
    "finished" : true,
    "bufferedPages" : 0,
    "pagesSent" : 1
  } ]
},
"noMoreSplits" : [ "8" ],
"stats" : {
  "createTime" : "2014-01-15T12:12:08.520-05:00",
  "startTime" : "2014-01-15T12:12:08.526-05:00",
  "endTime" : "2014-01-15T12:12:12.518-05:00",
  "elapsedTime" : "4.00s",
  "queuedTime" : "6.39ms",
  "totalDrivers" : 1,
  "queuedDrivers" : 0,
  "runningDrivers" : 0,
  "completedDrivers" : 1,
  "memoryReservation" : "174.76kB",
  "totalScheduledTime" : "4.19ms",
  "totalCpuTime" : "4.09ms",
  "totalBlockedTime" : "29.50ms",
  "rawInputDataSize" : "10.90kB",
  "rawInputPositions" : 154,
  "processedInputDataSize" : "10.90kB",
  "processedInputPositions" : 154,
  "outputDataSize" : "10.90kB",
  "outputPositions" : 154,
  "pipelines" : [ {
    "inputPipeline" : true,
    "outputPipeline" : true,
    "totalDrivers" : 1,
    "queuedDrivers" : 0,
    "runningDrivers" : 0,
    "completedDrivers" : 1,
    "memoryReservation" : "0B",
    "queuedTime" : {
      "maxError" : 0.0,
      "count" : 1.0,
      "total" : 5857000.0,
      "p01" : 5857000,
      "p05" : 5857000,
      "p10" : 5857000,
      "p25" : 5857000,
      "p50" : 5857000,
      "p75" : 5857000,
      "p90" : 5857000,
      "p95" : 5857000,
      "p99" : 5857000,
      "min" : 5857000,
      "max" : 5857000
    },
    "elapsedTime" : {
      "maxError" : 0.0,
      "count" : 1.0,
      "total" : 4.1812E7,
      "p01" : 41812000,
      "p05" : 41812000,
      "p10" : 41812000,
      "p25" : 41812000,
      "p50" : 41812000,
      "p75" : 41812000,
      "p90" : 41812000,
      "p95" : 41812000,
      "p99" : 41812000,
      "min" : 41812000,
      "max" : 41812000
    },
    "totalScheduledTime" : "4.19ms",
    "totalCpuTime" : "4.09ms",
    "totalBlockedTime" : "29.50ms",
    "rawInputDataSize" : "10.90kB",
    "rawInputPositions" : 154,
    "processedInputDataSize" : "10.90kB",
    "processedInputPositions" : 154,
    "outputDataSize" : "10.90kB",
    "outputPositions" : 154,
    "operatorSummaries" : [ {
      "operatorId" : 0,
      "operatorType" : "ExchangeOperator",
      "addInputCalls" : 0,
      "addInputWall" : "0.00ns",
      "addInputCpu" : "0.00ns",
      "addInputUser" : "0.00ns",
      "inputDataSize" : "10.90kB",
      "inputPositions" : 154,
      "getOutputCalls" : 1,
      "getOutputWall" : "146.00us",
      "getOutputCpu" : "137.90us",
      "getOutputUser" : "0.00ns",
      "outputDataSize" : "10.90kB",
      "outputPositions" : 154,
      "blockedWall" : "29.50ms",
      "finishCalls" : 0,
      "finishWall" : "0.00ns",
      "finishCpu" : "0.00ns",
      "finishUser" : "0.00ns",
      "memoryReservation" : "0B",
      "info" : {
	"bufferedBytes" : 0,
	"averageBytesPerRequest" : 11158,
	"bufferedPages" : 0,
	"pageBufferClientStatuses" : [ {
	  "uri" : "http://10.193.207.128:8080/v1/task/20140115_170528_00004_dk5x2.1.0/results/ab68e201-3878-4b21-b6b9-f6658ddc408b",
	  "state" : "closed",
	  "lastUpdate" : "2014-01-15T12:12:08.562-05:00",
	  "pagesReceived" : 1,
	  "requestsScheduled" : 3,
	  "requestsCompleted" : 3,
	  "httpRequestState" : "queued"
	} ]
      }
    }, {
      "operatorId" : 1,
      "operatorType" : "FilterAndProjectOperator",
      "addInputCalls" : 1,
      "addInputWall" : "919.00us",
      "addInputCpu" : "919.38us",
      "addInputUser" : "0.00ns",
      "inputDataSize" : "10.90kB",
      "inputPositions" : 154,
      "getOutputCalls" : 2,
      "getOutputWall" : "128.00us",
      "getOutputCpu" : "128.64us",
      "getOutputUser" : "0.00ns",
      "outputDataSize" : "10.45kB",
      "outputPositions" : 154,
      "blockedWall" : "0.00ns",
      "finishCalls" : 5,
      "finishWall" : "258.00us",
      "finishCpu" : "253.19us",
      "finishUser" : "0.00ns",
      "memoryReservation" : "0B"
    }, {
      "operatorId" : 2,
      "operatorType" : "OrderByOperator",
      "addInputCalls" : 1,
      "addInputWall" : "438.00us",
      "addInputCpu" : "439.18us",
      "addInputUser" : "0.00ns",
      "inputDataSize" : "10.45kB",
      "inputPositions" : 154,
      "getOutputCalls" : 4,
      "getOutputWall" : "869.00us",
      "getOutputCpu" : "831.85us",
      "getOutputUser" : "0.00ns",
      "outputDataSize" : "10.45kB",
      "outputPositions" : 154,
      "blockedWall" : "0.00ns",
      "finishCalls" : 4,
      "finishWall" : "808.00us",
      "finishCpu" : "810.18us",
      "finishUser" : "0.00ns",
      "memoryReservation" : "174.76kB"
    }, {
      "operatorId" : 3,
      "operatorType" : "FilterAndProjectOperator",
      "addInputCalls" : 1,
      "addInputWall" : "166.00us",
      "addInputCpu" : "166.66us",
      "addInputUser" : "0.00ns",
      "inputDataSize" : "10.45kB",
      "inputPositions" : 154,
      "getOutputCalls" : 5,
      "getOutputWall" : "305.00us",
      "getOutputCpu" : "241.14us",
      "getOutputUser" : "0.00ns",
      "outputDataSize" : "10.90kB",
      "outputPositions" : 154,
      "blockedWall" : "0.00ns",
      "finishCalls" : 2,
      "finishWall" : "70.00us",
      "finishCpu" : "71.02us",
      "finishUser" : "0.00ns",
      "memoryReservation" : "0B"
    }, {
      "operatorId" : 4,
      "operatorType" : "TaskOutputOperator",
      "addInputCalls" : 1,
      "addInputWall" : "50.00us",
      "addInputCpu" : "51.03us",
      "addInputUser" : "0.00ns",
      "inputDataSize" : "10.90kB",
      "inputPositions" : 154,
      "getOutputCalls" : 0,
      "getOutputWall" : "0.00ns",
      "getOutputCpu" : "0.00ns",
      "getOutputUser" : "0.00ns",
      "outputDataSize" : "10.90kB",
      "outputPositions" : 154,
      "blockedWall" : "0.00ns",
      "finishCalls" : 1,
      "finishWall" : "35.00us",
      "finishCpu" : "35.39us",
      "finishUser" : "0.00ns",
      "memoryReservation" : "0B"
    } ],
    "drivers" : [ ]
  } ]
},
"failures" : [ ],
"outputs" : { }
  }

.. function:: GET /v1/task/{taskId}/results/{outputId}/{token}

This service is used by Presto to retrieve task output.

.. function:: DELETE /v1/task/{taskId}/results/{outputId}

This service is used by Presto to delete task output.