Class

com.adendamedia.cornucopia.graph

CornucopiaActorSource

Related Doc: package graph

Permalink

class CornucopiaActorSource extends CornucopiaGraph

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

Instance Constructors

  1. new CornucopiaActorSource()

    Permalink

Type Members

  1. type ActorRecord = Task

    Permalink
    Attributes
    protected
  2. 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.

    Stream definitions for the graph.

    Definition Classes
    CornucopiaGraph
  3. 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.

    Definition Classes
    CornucopiaGraph

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. val actorSystem: ActorSystem

    Permalink
  5. 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
    Definition Classes
    CornucopiaGraph
  6. def addNodesToClusterPrime(redisURIList: Seq[RedisURI])(implicit executionContext: ExecutionContext): Future[Seq[RedisURI]]

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  7. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. val cornucopiaSource: Source[Task, ActorRef]

    Permalink
    Attributes
    protected
  10. def createRedisUri(uri: String): RedisURI

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  11. 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.

    Definition Classes
    CornucopiaGraph
  12. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  14. def extractKeyValue: Flow[Task, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
  15. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. 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
    Definition Classes
    CornucopiaGraph
  17. 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.

    Definition Classes
    CornucopiaGraph
  18. final def getClass(): Class[_]

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

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  20. def hashCode(): Int

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

    Permalink
    Definition Classes
    Any
  22. 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
    Definition Classes
    CornucopiaGraph
  23. val logger: Logger

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  24. 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
    Definition Classes
    CornucopiaGraph
  25. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  28. 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
    Definition Classes
    CornucopiaGraph
  29. def partitionEvents(key: String): Int

    Permalink
    Definition Classes
    CornucopiaGraph
  30. def partitionNodeRemoval(key: String): Int

    Permalink
    Definition Classes
    CornucopiaGraph
  31. val processTask: Flow[Task, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
  32. val redisCommandRouter: ActorRef

    Permalink
    Attributes
    protected
  33. def ref: ActorRef

    Permalink
  34. def reshardClusterPrime(sender: Option[ActorRef], newMasterURI: Option[RedisURI], retries: Int = 0): Future[Unit]

    Permalink
    Attributes
    protected
  35. def reshardClusterWithNewMaster(newMasterURI: RedisURI): Future[Unit]

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

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaActorSourceCornucopiaGraph
  37. def streamAddSlave(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaActorSourceCornucopiaGraph
  38. def streamRemoveNode(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  39. def streamRemoveSlave(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  40. def streamReshard(implicit executionContext: ExecutionContext): Flow[KeyValue, KeyValue, NotUsed]

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

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

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

    Permalink
    Attributes
    protected
    Definition Classes
    CornucopiaGraph
  44. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. 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
    Definition Classes
    CornucopiaGraph
  48. 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
    Definition Classes
    CornucopiaGraph

Inherited from CornucopiaGraph

Inherited from AnyRef

Inherited from Any

Ungrouped