Examples of QueryStatus


Examples of org.apache.blur.manager.status.QueryStatus

  public BlurResultIterable query(final String table, final BlurQuery blurQuery, AtomicLongArray facetedCounts)
      throws Exception {
    boolean runSlow = DEBUG_RUN_SLOW.get();
    final AtomicBoolean running = new AtomicBoolean(true);
    User user = UserContext.getUser();
    final QueryStatus status = _statusManager.newQueryStatus(table, blurQuery, _threadCount, running,
        UserConverter.toThriftUser(user));
    _queriesExternalMeter.mark();
    try {
      Map<String, BlurIndex> blurIndexes;
      try {
        blurIndexes = _indexServer.getIndexes(table);
      } catch (IOException e) {
        LOG.error("Unknown error while trying to fetch index readers.", e);
        throw new BException(e.getMessage(), e);
      }
      String rowId = blurQuery.getRowId();
      if (rowId != null) {
        // reduce the index selection down to the only one that would contain
        // the row.
        Map<String, BlurIndex> map = new HashMap<String, BlurIndex>();
        String shard = MutationHelper.getShardName(table, rowId, getNumberOfShards(table), _blurPartitioner);
        BlurIndex index = getBlurIndex(table, shard);
        map.put(shard, index);
        blurIndexes = map;
      }
      Tracer trace = Trace.trace("query setup", Trace.param("table", table));
      ShardServerContext shardServerContext = ShardServerContext.getShardServerContext();
      ParallelCall<Entry<String, BlurIndex>, BlurResultIterable> call;
      TableContext context = getTableContext(table);
      FieldManager fieldManager = context.getFieldManager();
      org.apache.blur.thrift.generated.Query simpleQuery = blurQuery.query;
      ReadInterceptor interceptor = context.getReadInterceptor();
      Filter readFilter = interceptor.getFilter();
      if (rowId != null) {
        if (simpleQuery.recordFilter == null) {
          simpleQuery.recordFilter = "+" + BlurConstants.ROW_ID + ":" + rowId;
        } else {
          simpleQuery.recordFilter = "+" + BlurConstants.ROW_ID + ":" + rowId + " +(" + simpleQuery.recordFilter + ")";
        }
      }
      Filter recordFilterForSearch = QueryParserUtil.parseFilter(table, simpleQuery.recordFilter, false, fieldManager,
          _filterCache, context);
      Filter rowFilterForSearch = QueryParserUtil.parseFilter(table, simpleQuery.rowFilter, true, fieldManager,
          _filterCache, context);
      Filter docFilter;
      if (recordFilterForSearch == null && readFilter != null) {
        docFilter = readFilter;
      } else if (recordFilterForSearch != null && readFilter == null) {
        docFilter = recordFilterForSearch;
      } else if (recordFilterForSearch != null && readFilter != null) {
        // @TODO dangerous call because of the bitsets that booleanfilter
        // creates.
        BooleanFilter booleanFilter = new BooleanFilter();
        booleanFilter.add(recordFilterForSearch, Occur.MUST);
        booleanFilter.add(readFilter, Occur.MUST);
        docFilter = booleanFilter;
      } else {
        docFilter = null;
      }
      Query userQuery = QueryParserUtil.parseQuery(simpleQuery.query, simpleQuery.rowQuery, fieldManager,
          rowFilterForSearch, docFilter, getScoreType(simpleQuery.scoreType), context);

      Query facetedQuery;
      FacetExecutor executor = null;
      if (blurQuery.facets != null) {
        long[] facetMinimums = getFacetMinimums(blurQuery.facets);
        executor = new FacetExecutor(blurQuery.facets.size(), facetMinimums, facetedCounts, running);
        facetedQuery = new FacetQuery(userQuery, getFacetQueries(blurQuery, fieldManager, context, rowFilterForSearch,
            recordFilterForSearch), executor);
      } else {
        facetedQuery = userQuery;
      }

      Sort sort = getSort(blurQuery, fieldManager);
      call = new SimpleQueryParallelCall(running, table, status, facetedQuery, blurQuery.selector,
          _queriesInternalMeter, shardServerContext, runSlow, _fetchCount, _maxHeapPerRowFetch,
          context.getSimilarity(), context, sort, _deepPagingCache);
      trace.done();
      MergerBlurResultIterable merger = new MergerBlurResultIterable(blurQuery);
      BlurResultIterable merge = ForkJoin.execute(_executor, blurIndexes.entrySet(), call, new Cancel() {
        @Override
        public void cancel() {
          running.set(false);
        }
      }).merge(merger);

      if (executor != null) {
        executor.processFacets(_facetExecutor);
      }
      return fetchDataIfNeeded(merge, table, blurQuery.getSelector());
    } catch (StopExecutionCollectorException e) {
      BlurQueryStatus queryStatus = status.getQueryStatus();
      QueryState state = queryStatus.getState();
      if (state == QueryState.BACK_PRESSURE_INTERRUPTED) {
        throw new BlurException("Cannot execute query right now.", null, ErrorType.BACK_PRESSURE);
      } else if (state == QueryState.INTERRUPTED) {
        throw new BlurException("Cannot execute query right now.", null, ErrorType.QUERY_CANCEL);
      }
      throw e;
    } catch (ExitingReaderException e) {
      BlurQueryStatus queryStatus = status.getQueryStatus();
      QueryState state = queryStatus.getState();
      if (state == QueryState.BACK_PRESSURE_INTERRUPTED) {
        throw new BlurException("Cannot execute query right now.", null, ErrorType.BACK_PRESSURE);
      } else if (state == QueryState.INTERRUPTED) {
        throw new BlurException("Cannot execute query right now.", null, ErrorType.QUERY_CANCEL);
View Full Code Here

Examples of org.apache.tajo.client.QueryStatus

    }

    // query execute
    try {

      QueryStatus status;
      int initRetries = 0;
      int progressRetries = 0;
      while (true) {
        // TODO - configurable
        status = client.getQueryStatus(queryId);
        if(status.getState() == QueryState.QUERY_MASTER_INIT || status.getState() == QueryState.QUERY_MASTER_LAUNCHED) {
          Thread.sleep(Math.min(20 * initRetries, 1000));
          initRetries++;
          continue;
        }

        if (status.getState() == QueryState.QUERY_RUNNING || status.getState() == QueryState.QUERY_SUCCEEDED) {
          sout.println("Progress: " + (int)(status.getProgress() * 100.0f)
              + "%, response time: " + ((float)(status.getFinishTime() - status.getSubmitTime()) / 1000.0) + " sec");
          sout.flush();
        }

        if (status.getState() != QueryState.QUERY_RUNNING &&
            status.getState() != QueryState.QUERY_NOT_ASSIGNED &&
            status.getState() != QueryState.QUERY_KILL_WAIT) {
          break;
        } else {
          Thread.sleep(Math.min(200 * progressRetries, 1000));
          progressRetries += 2;
        }
      }

      if (status.getState() == QueryState.QUERY_ERROR) {
        sout.println("Internal error!");
        if(status.getErrorMessage() != null && !status.getErrorMessage().isEmpty()) {
          sout.println(status.getErrorMessage());
        }
      } else if (status.getState() == QueryState.QUERY_FAILED) {
        sout.println("Query failed!");
      } else if (status.getState() == QueryState.QUERY_KILLED) {
        sout.println(queryId + " is killed.");
      } else {
        if (status.getState() == QueryState.QUERY_SUCCEEDED) {
          sout.println("final state: " + status.getState()
              + ", response time: " + (((float)(status.getFinishTime() - status.getSubmitTime()) / 1000.0)
              + " sec"));
          if (status.hasResult()) {
            ClientProtos.GetQueryResultResponse response = client.getResultResponse(queryId);
            ResultSet res = TajoClient.createResultSet(client, queryId, response);
            TableDesc desc = new TableDesc(response.getTableDesc());
            long totalRowNum = desc.getStats().getNumRows();
            long totalBytes = desc.getStats().getNumBytes();
View Full Code Here

Examples of org.apache.tajo.client.QueryStatus

    }

    // query execute
    try {

      QueryStatus status;
      while (true) {
        // TODO - configurable
        Thread.sleep(1000);
        status = client.getQueryStatus(queryId);
        if(status.getState() == QueryState.QUERY_MASTER_INIT || status.getState() == QueryState.QUERY_MASTER_LAUNCHED) {
          continue;
        }

        if (status.getState() == QueryState.QUERY_RUNNING ||
            status.getState() == QueryState.QUERY_SUCCEEDED) {
          sout.println("Progress: " + (int)(status.getProgress() * 100.0f)
              + "%, response time: " + ((float)(status.getFinishTime() - status.getSubmitTime()) / 1000.0) + " sec");
          sout.flush();
        }

        if (status.getState() != QueryState.QUERY_RUNNING && status.getState() != QueryState.QUERY_NOT_ASSIGNED) {
          break;
        }
      }

      if (isFailed(status.getState())) {
        sout.println(status.getErrorMessage());
      } else if (status.getState() == QueryState.QUERY_KILLED) {
        sout.println(queryId + " is killed.");
      } else {
        if (status.getState() == QueryState.QUERY_SUCCEEDED) {
          sout.println("final state: " + status.getState()
              + ", init time: " + (((float)(status.getInitTime() - status.getSubmitTime()) / 1000.0) + " sec")
              + ", response time: " + (((float)(status.getFinishTime() - status.getSubmitTime()) / 1000.0)
              + " sec"));
          if (status.hasResult()) {
            ResultSet res = client.getQueryResult(queryId);
            try {
              if (res == null) {
                sout.println("OK");
                return;
View Full Code Here

Examples of org.apache.tajo.client.QueryStatus

    }

    private void getQueryResult(QueryId tajoQueryId) {
      // query execute
      try {
        QueryStatus status = null;

        while (!stop.get()) {
          try {
            Thread.sleep(1000);
          } catch(InterruptedException e) {
            break;
          }
          status = tajoClient.getQueryStatus(tajoQueryId);
          if (status.getState() == TajoProtos.QueryState.QUERY_MASTER_INIT
              || status.getState() == TajoProtos.QueryState.QUERY_MASTER_LAUNCHED) {
            continue;
          }

          if (status.getState() == TajoProtos.QueryState.QUERY_RUNNING
              || status.getState() == TajoProtos.QueryState.QUERY_SUCCEEDED) {
            int progressValue = (int) (status.getProgress() * 100.0f);
            if(progressValue == 100)  {
              progressValue = 99;
            }
            progress.set(progressValue);
          }
          if (status.getState() != TajoProtos.QueryState.QUERY_RUNNING
              && status.getState() != TajoProtos.QueryState.QUERY_NOT_ASSIGNED) {
            break;
          }
        }

        if(status == null) {
          LOG.error("Query Status is null");
          error = new Exception("Query Status is null");
          return;
        }
        if (status.getState() == TajoProtos.QueryState.QUERY_ERROR ||
            status.getState() == TajoProtos.QueryState.QUERY_FAILED) {
          error = new Exception(status.getErrorMessage());
        } else if (status.getState() == TajoProtos.QueryState.QUERY_KILLED) {
          LOG.info(queryId + " is killed.");
          error = new Exception(queryId + " is killed.");
        } else {
          if (status.getState() == TajoProtos.QueryState.QUERY_SUCCEEDED) {
            if (status.hasResult()) {
              ResultSet res = tajoClient.getQueryResult(tajoQueryId);
              try {
                ResultSetMetaData rsmd = res.getMetaData();
                TableDesc desc = tajoClient.getResultDesc(tajoQueryId);
                LOG.info("Tajo Query Result: " + desc.getPath() + "\n");
View Full Code Here

Examples of org.apache.tajo.client.QueryStatus

    }

    private void getQueryResult(QueryId tajoQueryId) {
      // query execute
      try {
        QueryStatus status = null;

        while (!stop.get()) {
          try {
            Thread.sleep(1000);
          } catch(InterruptedException e) {
            break;
          }
          status = tajoClient.getQueryStatus(tajoQueryId);
          if (status.getState() == TajoProtos.QueryState.QUERY_MASTER_INIT
              || status.getState() == TajoProtos.QueryState.QUERY_MASTER_LAUNCHED) {
            continue;
          }

          if (status.getState() == TajoProtos.QueryState.QUERY_RUNNING
              || status.getState() == TajoProtos.QueryState.QUERY_SUCCEEDED) {
            int progressValue = (int) (status.getProgress() * 100.0f);
            if(progressValue == 100)  {
              progressValue = 99;
            }
            progress.set(progressValue);
          }
          if (status.getState() != TajoProtos.QueryState.QUERY_RUNNING
              && status.getState() != TajoProtos.QueryState.QUERY_NOT_ASSIGNED) {
            break;
          }
        }

        if(status == null) {
          LOG.error("Query Status is null");
          error = new Exception("Query Status is null");
          return;
        }
        if (status.getState() == TajoProtos.QueryState.QUERY_ERROR ||
            status.getState() == TajoProtos.QueryState.QUERY_FAILED) {
          error = new Exception(status.getErrorMessage());
        } else if (status.getState() == TajoProtos.QueryState.QUERY_KILLED) {
          LOG.info(queryId + " is killed.");
          error = new Exception(queryId + " is killed.");
        } else {
          if (status.getState() == TajoProtos.QueryState.QUERY_SUCCEEDED) {
            if (status.hasResult()) {
              ResultSet res = null;
              try {
                ClientProtos.GetQueryResultResponse response = tajoClient.getResultResponse(tajoQueryId);
                TableDesc desc = CatalogUtil.newTableDesc(response.getTableDesc());
                tajoClient.getConf().setVar(TajoConf.ConfVars.USERNAME, response.getTajoUserName());
View Full Code Here

Examples of org.commoncrawl.query.QueryStatus

    synchronized (theQueryObject) {
      queryId = theQueryObject.getQueryId();
      shardId = theQueryObject.getRemoteQueryInfo().getShardId();
    }
   
    QueryStatus targetStatus = null;
   
    synchronized (_slaveStatus) {
      for (QueryStatus status : _slaveStatus.getQueryStatus()) {
        // if query ids and shard ids match
        if (status.getQueryId() == queryId
              && status.getShardId() == shardId) {
          targetStatus = status;
          break;
        }
      }
    }
   
    boolean addNewStatus = (targetStatus == null);
    if (targetStatus == null) {
      targetStatus = new QueryStatus();
    }
    synchronized (theQueryObject) {
      // clear fields that are only relavent at the master
      theQueryObject.getQueryStatus().setFieldClean(QueryStatus.Field_ATTEMPTS);
      theQueryObject.getQueryStatus().setFieldClean(QueryStatus.Field_LASTATTEMPTTIME);
     
      try {
        targetStatus.merge(theQueryObject.getQueryStatus());
      } catch (CloneNotSupportedException e) {
      }
    }
   
    if (addNewStatus) {
View Full Code Here

Examples of org.commoncrawl.query.QueryStatus

 
  public QueryRequest(Query<DataType,KeyType,ValueType> query,ClientQueryInfo ClientQueryInfo,QueryCompletionCallback<DataType,KeyType,ValueType> callback) {
    _querySource = query;
    _clientQueryObj = ClientQueryInfo;
    _completionCallback = callback;
    _queryStatus = new QueryStatus();
    _queryStatus.setQueryId(ClientQueryInfo.getClientQueryId());
    _queryStatus.setStatus(QueryStatus.Status.PENDING);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.