Trait

com.adendamedia.cornucopia.graph

CornucopiaGraph

Related Doc: package graph

Permalink

trait CornucopiaGraph extends AnyRef

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CornucopiaGraph
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class KeyValue(key: String, value: String, senderRef: Option[ActorRef] = None, newMasterURI: Option[RedisURI] = None) extends Product with Serializable

    Permalink

    Stream definitions for the graph.

  2. sealed case class MaxNHeapMasterSlaveCount(n: Int) extends Product with Serializable

    Permalink

    Store the n poorest masters.

    Store the n poorest masters. Implemented on scala.mutable.PriorityQueue.

Abstract Value Members

  1. abstract def streamAddMaster(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
  2. abstract def streamAddSlave(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected

Concrete Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def addNodesToCluster(redisURIList: Seq[RedisURI], retries: Int = 0)(implicit executionContext: ExecutionContext): Future[Seq[RedisURI]]

    Permalink

    The entire cluster will meet the new nodes at the given URIs.

    The entire cluster will meet the new nodes at the given URIs. If the connection to a node fails, then retry until it succeeds.

    redisURIList

    The list of URI of the new nodes.

    executionContext

    The thread dispatcher context.

    returns

    The list of URI if the nodes were met. TODO: emit only the nodes that were successfully added.

    Attributes
    protected
  5. def addNodesToClusterPrime(redisURIList: Seq[RedisURI])(implicit executionContext: ExecutionContext): Future[Seq[RedisURI]]

    Permalink
    Attributes
    protected
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def createRedisUri(uri: String): RedisURI

    Permalink
    Attributes
    protected
  9. def emitNodeType(redisURI: RedisURI)(implicit executionContext: ExecutionContext): Future[KeyValue]

    Permalink

    Emit a key-value representing the node-type and the node-id.

    Emit a key-value representing the node-type and the node-id.

    returns

    the node type and id.

  10. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def findMasters(redisURIList: Seq[RedisURI])(implicit executionContext: ExecutionContext): Future[Unit]

    Permalink

    Set the n new slave nodes to replicate the poorest (fewest slaves) n masters.

    Set the n new slave nodes to replicate the poorest (fewest slaves) n masters.

    redisURIList

    The list of ip addresses of the slaves that will be added to the cluster. Hostnames are not acceptable.

    executionContext

    The thread dispatcher context.

    returns

    Indicate that the n new slaves are replicating the poorest n masters.

    Attributes
    protected
  14. def forgetNodes(withoutNodes: Seq[String])(implicit executionContext: ExecutionContext): Future[Unit]

    Permalink

    Notify all nodes in the cluster to forget this node.

    Notify all nodes in the cluster to forget this node.

    withoutNodes

    The list of ids of nodes to be forgotten by the cluster.

    executionContext

    The thread dispatcher context.

    returns

    A future indicating that the node was forgotten by all nodes in the cluster.

  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. def getNewSaladApi: Salad

    Permalink
    Attributes
    protected
  17. def hashCode(): Int

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

    Permalink
    Definition Classes
    Any
  19. def logTopology(implicit executionContext: ExecutionContext): Future[Unit]

    Permalink

    Log the current view of the cluster topology.

    Log the current view of the cluster topology.

    executionContext

    The thread dispatcher context.

    Attributes
    protected
  20. val logger: Logger

    Permalink
    Attributes
    protected
  21. def migrateSlot(slot: Int, sourceNodeId: String, destinationNodeId: String, destinationURI: RedisURI, masters: List[RedisClusterNode], clusterConnections: HashMap[String, Future[SaladClusterAPI[CodecType, CodecType]]])(implicit saladAPI: Salad, executionContext: ExecutionContext): Future[Unit]

    Permalink

    Migrate all keys in a slot from the source node to the destination node and update the slot assignment on the affected nodes.

    Migrate all keys in a slot from the source node to the destination node and update the slot assignment on the affected nodes.

    slot

    The slot to migrate.

    sourceNodeId

    The current location of the slot data.

    destinationNodeId

    The target location of the slot data.

    masters

    The list of nodes in the cluster that will be assigned hash slots.

    clusterConnections

    The list of connections to nodes in the cluster.

    executionContext

    The thread dispatcher context.

    returns

    Future indicating success.

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

    Permalink
    Definition Classes
    AnyRef
  23. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. def notifySlotAssignment(slot: Int, assignedNodeId: String, masters: List[RedisClusterNode])(implicit saladAPI: Salad, executionContext: ExecutionContext): Future[Unit]

    Permalink

    Notify all master nodes of a slot assignment so that they will immediately be able to redirect clients.

    Notify all master nodes of a slot assignment so that they will immediately be able to redirect clients.

    assignedNodeId

    The node that should be assigned the slot

    masters

    The list of nodes in the cluster that will be assigned hash slots.

    executionContext

    The thread dispatcher context.

    returns

    Future indicating success.

    Attributes
    protected
  26. def partitionEvents(key: String): Int

    Permalink
  27. def partitionNodeRemoval(key: String): Int

    Permalink
  28. def streamRemoveNode(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
  29. def streamRemoveSlave(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
  30. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  31. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  32. def unsupportedOperation: Flow[KeyValue, Nothing, NotUsed]

    Permalink
    Attributes
    protected
  33. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. def waitForTopologyRefresh[T](passthrough: T)(implicit executionContext: ExecutionContext): Future[T]

    Permalink

    Wait for the new cluster topology view to propagate to all nodes in the cluster.

    Wait for the new cluster topology view to propagate to all nodes in the cluster. May not be strictly necessary since this microservice immediately attempts to notify all nodes of topology updates.

    passthrough

    The value that will be passed through to the next map stage.

    executionContext

    The thread dispatcher context.

    returns

    The unmodified input value.

    Attributes
    protected
  37. def waitForTopologyRefresh2[T, U](passthrough1: T, passthrough2: U)(implicit executionContext: ExecutionContext): Future[(T, U)]

    Permalink

    Wait for the new cluster topology view to propagate to all nodes in the cluster.

    Wait for the new cluster topology view to propagate to all nodes in the cluster. Same version as above, but this time takes two passthroughs and returns tuple of them as future.

    passthrough1

    The first value that will be passed through to the next map stage.

    passthrough2

    The second value that will be passed through to the next map stage.

    executionContext

    The thread dispatcher context.

    returns

    The unmodified input value.

    Attributes
    protected

Inherited from AnyRef

Inherited from Any

Ungrouped