Package eu.stratosphere.api.java.record.operators

Source Code of eu.stratosphere.api.java.record.operators.DeltaIteration$SolutionSetPlaceHolder

/***********************************************************************************************************************
* Copyright (C) 2010-2013 by the Stratosphere project (http://stratosphere.eu)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
**********************************************************************************************************************/

package eu.stratosphere.api.java.record.operators;

import eu.stratosphere.api.common.operators.OperatorInformation;
import eu.stratosphere.api.common.operators.base.DeltaIterationBase;
import eu.stratosphere.api.java.typeutils.RecordTypeInfo;
import eu.stratosphere.types.Record;

/**
* A DeltaIteration is similar to a {@link BulkIteration},
* but maintains state across the individual iteration steps. The state is called the <i>solution set</i>, can be obtained
* via {@link #getSolutionSet()}, and be accessed by joining (or CoGrouping) with it. The solution
* set is updated by producing a delta for it, which is merged into the solution set at the end of each iteration step.
* <p>
* The delta iteration must be closed by setting a delta for the solution set ({@link #setSolutionSetDelta(eu.stratosphere.api.common.operators.Operator)})
* and the new workset (the data set that will be fed back, {@link #setNextWorkset(eu.stratosphere.api.common.operators.Operator)}).
* The DeltaIteration itself represents the result after the iteration has terminated.
* Delta iterations terminate when the feed back data set (the workset) is empty.
* In addition, a maximum number of steps is given as a fall back termination guard.
* <p>
* Elements in the solution set are uniquely identified by a key. When merging the solution set delta, contained elements
* with the same key are replaced.
* <p>
* This class is a subclass of {@code DualInputOperator}. The solution set is considered the first input, the
* workset is considered the second input.
*/
public class DeltaIteration extends DeltaIterationBase<Record, Record> {

  public DeltaIteration(int keyPosition) {
    super(OperatorInfoHelper.binary(), keyPosition);
  }
 
  public DeltaIteration(int[] keyPositions) {
    super(OperatorInfoHelper.binary(), keyPositions);
  }

  public DeltaIteration(int keyPosition, String name) {
    super(OperatorInfoHelper.binary(), keyPosition, name);
  }
 
  public DeltaIteration(int[] keyPositions, String name) {
    super(OperatorInfoHelper.binary(), keyPositions, name);
  }

  /**
   * Specialized operator to use as a recognizable place-holder for the working set input to the
   * step function.
   */
  public static class WorksetPlaceHolder extends DeltaIterationBase.WorksetPlaceHolder<Record> {
    public WorksetPlaceHolder(DeltaIterationBase<?, Record> container) {
      super(container, new OperatorInformation<Record>(new RecordTypeInfo()));
    }
  }

  /**
   * Specialized operator to use as a recognizable place-holder for the solution set input to the
   * step function.
   */
  public static class SolutionSetPlaceHolder extends DeltaIterationBase.SolutionSetPlaceHolder<Record> {
    public SolutionSetPlaceHolder(DeltaIterationBase<Record, ?> container) {
      super(container, new OperatorInformation<Record>(new RecordTypeInfo()));
    }
  }
}
TOP

Related Classes of eu.stratosphere.api.java.record.operators.DeltaIteration$SolutionSetPlaceHolder

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.