drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-4132) Ability to submit simple type of physical plan directly to EndPoint DrillBit for execution
Date Wed, 27 Apr 2016 22:13:12 GMT

    [ https://issues.apache.org/jira/browse/DRILL-4132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15261053#comment-15261053
] 

ASF GitHub Bot commented on DRILL-4132:
---------------------------------------

Github user hnfgns commented on a diff in the pull request:

    https://github.com/apache/drill/pull/368#discussion_r61345892
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/client/DrillClient.java ---
    @@ -321,6 +329,38 @@ public void close() {
         return listener.getResults();
       }
     
    +  public DrillRpcFuture<QueryPlanFragments> planQuery(QueryType type, String query,
boolean isSplitPlan) {
    +    GetQueryPlanFragments runQuery = GetQueryPlanFragments.newBuilder().setQuery(query).setType(type).setSplitPlan(isSplitPlan).build();
    +    return client.submitPlanQuery(runQuery);
    +  }
    +
    +  public void runQuery(QueryType type, List<PlanFragment> planFragments, UserResultsListener
resultsListener)
    +      throws RpcException {
    +    // QueryType can be only executional
    +    checkArgument((QueryType.EXECUTION == type), "Only EXECUTIONAL type query is supported
with PlanFragments");
    +    // setting Plan on RunQuery will be used for logging purposes and therefore can not
be null
    +    // since there is no Plan string provided we will create a JsonArray out of individual
fragment Plans
    +    ArrayNode jsonArray = objectMapper.createArrayNode();
    +    for (PlanFragment fragment : planFragments) {
    +      try {
    +        jsonArray.add(objectMapper.readTree(fragment.getFragmentJson()));
    +      } catch (IOException e) {
    +        logger.error("Exception while trying to read PlanFragment JSON for %s", fragment.getHandle().getQueryId(),
e);
    +        throw new RpcException(e);
    +      }
    +    }
    +    final String fragmentsToJsonString;
    +    try {
    +      fragmentsToJsonString = objectMapper.writeValueAsString(jsonArray);
    --- End diff --
    
    why don't we create & serialize List<String> instead of relying on ArrayNode?


> Ability to submit simple type of physical plan directly to EndPoint DrillBit for execution
> ------------------------------------------------------------------------------------------
>
>                 Key: DRILL-4132
>                 URL: https://issues.apache.org/jira/browse/DRILL-4132
>             Project: Apache Drill
>          Issue Type: New Feature
>          Components: Execution - Flow, Execution - RPC, Query Planning & Optimization
>            Reporter: Yuliya Feldman
>            Assignee: Yuliya Feldman
>
> Today Drill Query execution is optimistic and stateful (at least due to data exchanges)
- if any of the stages of query execution fails whole query fails. If query is just simple
scan, filter push down and project where no data exchange happens between DrillBits there
is no need to fail whole query when one DrillBit fails, as minor fragments running on that
DrillBit can be rerun on the other DrillBit. There are probably multiple ways to achieve this.
This JIRA is to open discussion on: 
> 1. agreement that we need to support above use case 
> 2. means of achieving it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message