Package lupos.engine.operators.multiinput.join.parallel

Examples of lupos.engine.operators.multiinput.join.parallel.ResultCollector


      final K[] keys = this.distribution.getKeysForQuerying(triplePattern);
      if(keys.length == 1) {
        return this.evaluateTriplePatternAfterAdding(keys[0], triplePattern);
      } else {
        // asynchronously retrieve the results...
        final ResultCollector resultCollector = new ResultCollector();
        resultCollector.setNumberOfThreads(keys.length);
        final Thread[] threads = new Thread[keys.length];
        for(int i=0; i<keys.length; i++) {
          final K key = keys[i];
          threads[i] = new Thread() {
            @Override
            public void run() {
              resultCollector.process(BlockUpdatesStorageWithDistributionStrategy.this.evaluateTriplePatternAfterAdding(key, triplePattern), 0);
              resultCollector.incNumberOfThreads();
            }
          };
          threads[i].start();
        }
        return resultCollector.getResult();
      }
    } catch(final TriplePatternNotSupportedError e){
      return this.evaluateTriplePatternAfterAdding(triplePattern);
    }
  }
View Full Code Here


      if (keys.length == 1) {
        return this.evaluateTriplePatternAfterAdding(keys[0],
            triplePattern);
      } else {
        // fix
        final ResultCollector resultCollector = new ResultCollector();
 
        // asynchronously retrieve the results...
        resultCollector.setNumberOfThreads(keys.length);
        final Thread[] threads = new Thread[keys.length];
        for (int i = 0; i < keys.length; i++) {
          final KeyContainer<T> key = keys[i];
          threads[i] = new Thread() {
            @Override
            public void run() {
              resultCollector.process(
                  StorageWithDistributionStrategy.this
                      .evaluateTriplePatternAfterAdding(
                          key, triplePattern), 0);
              resultCollector.incNumberOfThreads();
            }
          };
          threads[i]
              .setName(String
                  .format("Parallel pattern evaluation: key=%s%s, pattern=%s",
                      key.type, key.key, triplePattern));
          threads[i].start();
        }
        return resultCollector.getResult();
      }
    } catch (final TriplePatternNotSupportedError e) {
      return this.evaluateTriplePatternAfterAdding(triplePattern);
    }
View Full Code Here

              .hasAlternative()))) {
        return this.evaluateTriplePatternAfterAdding(keys[0],
            triplePattern);
      } else {
        // asynchronously retrieve the results...
        final ResultCollector resultCollector = new ResultCollector();
        resultCollector.setNumberOfThreads(keys.length);
        final Thread[] threads = new Thread[keys.length];
        for (int i = 0; i < keys.length; i++) {
          final KeyContainer<T> key = keys[i];
          threads[i] = new Thread() {
            @SuppressWarnings("unchecked")
            @Override
            public void run() {
              resultCollector.process(TomP2PLocalStorage.this
                  .evaluateTriplePatternAfterAdding(key,
                      triplePattern), 0);
              if (key instanceof AlternativeKeyContainer
                  && ((AlternativeKeyContainer) key)
                      .hasAlternative()) {
                AlternativeKeyContainer alternateKey = (AlternativeKeyContainer) key;
                for (KeyContainer kc : alternateKey
                    .getAlternatives()) {
                  resultCollector
                      .process(
                          TomP2PLocalStorage.this
                              .evaluateTriplePatternAfterAdding(
                                  kc,
                                  triplePattern),
                          0);
                }
              }
              resultCollector.incNumberOfThreads();
            }
          };
          threads[i]
              .setName(String
                  .format("Parallel pattern evaluation: key=%s%s, pattern=%s",
                      key.type, key.key, triplePattern));
          threads[i].start();
        }
        return resultCollector.getResult();
      }
    } catch (final TriplePatternNotSupportedError e) {
      throw new TriplePatternNotSupportedError(this.distribution,
          triplePattern);
    }
View Full Code Here

      if (keys.length == 1) {
        return this.evaluateTriplePatternAfterAdding(keys[0],
            triplePattern);
      } else {
        // asynchronously retrieve the results...
        final ResultCollector resultCollector = new ResultCollector();
        resultCollector.setNumberOfThreads(keys.length);
        final Thread[] threads = new Thread[keys.length];
        for (int i = 0; i < keys.length; i++) {
          final KeyContainer<T> key = keys[i];
          threads[i] = new Thread() {
            @Override
            public void run() {
              resultCollector.process(ChordlessLocalStorage.this
                  .evaluateTriplePatternAfterAdding(key,
                      triplePattern), 0);
              resultCollector.incNumberOfThreads();
            }
          };
          threads[i]
              .setName(String
                  .format("Parallel pattern evaluation: key=%s%s, pattern=%s",
                      key.type, key.key, triplePattern));
          threads[i].start();
        }
        return resultCollector.getResult();
      }
    } catch (final TriplePatternNotSupportedError e) {
      throw new TriplePatternNotSupportedError(this.distribution,
          triplePattern);
    }
View Full Code Here

   * @param query the query to be submitted
   * @param urlsOfEndpoints the urls of the endpoints to which the query will be submitted
   * @return the query result containing the result of all given endpoints (collected in an asynchronous way)
   */
  protected static QueryResult submitSPARQLQuery(final String query, final String[] urlsOfEndpoints, final BindingsFactory bindingsFactory){
    final ResultCollector resultCollector = new ResultCollector();
    resultCollector.setNumberOfThreads(urlsOfEndpoints.length);
    for(final String url: urlsOfEndpoints){
      final Thread thread = new Thread(){
        @Override
        public void run() {
          try {
            resultCollector.process(EndpointManagement.submitSPARQLQuery(url, query, bindingsFactory) ,0);
          } catch (final IOException e) {
            System.err.println(e);
            e.printStackTrace();
          }
          resultCollector.incNumberOfThreads();
        }
      };
      thread.start();
    }
    return resultCollector.getResult();
  }
View Full Code Here

TOP

Related Classes of lupos.engine.operators.multiinput.join.parallel.ResultCollector

Copyright © 2018 www.massapicom. 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.