com.twitter.summingbird.planner

DagOptimizer

trait DagOptimizer[P <: Platform[P]] extends AnyRef

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. DagOptimizer
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. type LitProd[T] = Literal[T, Prod]

  2. type Prod[T] = Producer[P, T]

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. object AlsoPullUp extends Rule[Prod]

    We can always push all Also nodes all the way to the bottom of the dag MergedProducer(AlsoProducer(t, a), b) == AlsoProducer(t, MergedProducer(a, b))

  7. object DiamondToFlatMap extends PartialRule[Prod]

    (a.

  8. object FlatMapFusion extends PartialRule[Prod]

    a.

  9. object FlatThenOptionFusion extends PartialRule[Prod]

    Combine flatMaps followed by optionMap into a single operation

  10. object MergePullUp extends PartialRule[Prod]

    (a ++ b).

  11. object OptionMapFusion extends PartialRule[Prod]

  12. object RemoveIdentityKeyed extends PartialRule[Prod]

    Identity keyed producer is just a trick to make scala see methods on keyed types, they have no meaning at runtime.

  13. object RemoveNames extends PartialRule[Prod]

    Strip all the names.

  14. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  15. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  17. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  18. def expressionDag[T](p: Producer[P, T]): (ExpressionDag[Prod], Id[T])

    Create an ExpressionDag for the given node.

    Create an ExpressionDag for the given node. This should be the final tail of the graph. You can apply optimizations on this Dag and then use the Id returned to evaluate it back to an optimized producer

  19. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  21. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  22. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  23. def mkAlso[T, U]: (Prod[T], Prod[U]) ⇒ Prod[U]

    This makes a potentially unsound cast.

    This makes a potentially unsound cast. Since this method is only use in converting from an AlsoProducer to a Literal[T, Prod] below, it is not actually dangerous because we always use it in a safe position.

    Attributes
    protected
  24. def mkFlatMapped[T, U](fn: (T) ⇒ TraversableOnce[U]): (Prod[T]) ⇒ Prod[U]

    Attributes
    protected
  25. def mkIdentKey[K, V]: (Prod[(K, V)]) ⇒ Prod[(K, V)]

    Attributes
    protected
  26. def mkKeyFM[T, U, V](fn: (T) ⇒ TraversableOnce[U]): (Prod[(T, V)]) ⇒ Prod[(U, V)]

    Attributes
    protected
  27. def mkMerge[T]: (Prod[T], Prod[T]) ⇒ Prod[T]

    Attributes
    protected
  28. def mkNamed[T](name: String): (Prod[T]) ⇒ Prod[T]

    Attributes
    protected
  29. def mkOptMap[T, U](fn: (T) ⇒ Option[U]): (Prod[T]) ⇒ Prod[U]

    Attributes
    protected
  30. def mkSrv[K, T, V](serv: P.Service[K, V]): (Prod[(K, T)]) ⇒ Prod[(K, (T, Option[V]))]

    Attributes
    protected
  31. def mkSum[K, V](store: P.Store[K, V], sg: Semigroup[V]): (Prod[(K, V)]) ⇒ Prod[(K, (Option[V], V))]

    Attributes
    protected
  32. def mkWritten[T, U >: T](sink: P.Sink[U]): (Prod[T]) ⇒ Prod[T]

    Attributes
    protected
  33. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  34. final def notify(): Unit

    Definition Classes
    AnyRef
  35. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  36. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  37. def toLiteral[T](hm: HMap[Prod, LitProd], prod: Producer[P, T]): (HMap[Prod, LitProd], LitProd[T])

    Attributes
    protected
  38. def toLiteral[T](prod: Producer[P, T]): Literal[T, Prod]

    Convert a Producer graph into a Literal in the Dag rewriter This is where the tedious work comes in.

  39. def toString(): String

    Definition Classes
    AnyRef → Any
  40. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped