@Test public void testParallelGroupBy() throws AlgebricksException { IClusterCapacity clusterCapacity = new ClusterCapacity(); RequiredCapacityVisitor visitor = makeComputationCapacityVisitor(PARALLELISM, clusterCapacity); // Constructs a parallel group-by query plan. GroupByOperator globalGby = makeGroupByOperator(AbstractLogicalOperator.ExecutionMode.PARTITIONED); ExchangeOperator exchange = new ExchangeOperator(); exchange.setPhysicalOperator(new HashPartitionExchangePOperator(Collections.emptyList(), null)); GroupByOperator localGby = makeGroupByOperator(AbstractLogicalOperator.ExecutionMode.LOCAL); globalGby.getInputs().add(new MutableObject<>(exchange)); exchange.getInputs().add(new MutableObject<>(localGby)); // Verifies the calculated cluster capacity requirement for the test quer plan. globalGby.accept(visitor, null); Assert.assertTrue(clusterCapacity.getAggregatedCores() == PARALLELISM); Assert.assertTrue(clusterCapacity.getAggregatedMemoryByteSize() == 2 * MEMORY_BUDGET * PARALLELISM + 2 * FRAME_SIZE * PARALLELISM * PARALLELISM); }
@Test public void testUnPartitionedGroupBy() throws AlgebricksException { IClusterCapacity clusterCapacity = new ClusterCapacity(); RequiredCapacityVisitor visitor = makeComputationCapacityVisitor(PARALLELISM, clusterCapacity); // Constructs a parallel group-by query plan. GroupByOperator globalGby = makeGroupByOperator(AbstractLogicalOperator.ExecutionMode.UNPARTITIONED); ExchangeOperator exchange = new ExchangeOperator(); exchange.setPhysicalOperator(new OneToOneExchangePOperator()); exchange.setExecutionMode(AbstractLogicalOperator.ExecutionMode.UNPARTITIONED); GroupByOperator localGby = makeGroupByOperator(AbstractLogicalOperator.ExecutionMode.UNPARTITIONED); globalGby.getInputs().add(new MutableObject<>(exchange)); exchange.getInputs().add(new MutableObject<>(localGby)); // Verifies the calculated cluster capacity requirement for the test quer plan. globalGby.accept(visitor, null); Assert.assertTrue(clusterCapacity.getAggregatedCores() == 1); Assert.assertTrue(clusterCapacity.getAggregatedMemoryByteSize() == 2 * MEMORY_BUDGET + FRAME_SIZE); }