Class/Object

com.github.trex_paxos.internals

PaxosActor

Related Docs: object PaxosActor | package internals

Permalink

abstract class PaxosActor extends PaxosActorNoTimeout

This class reschedules a random interval CheckTimeout used to timeout on responses and an evenly spaced Paxos.HeartBeat which is used by a leader.

Linear Supertypes
PaxosActorNoTimeout, AkkaLoggingAdapter, PaxosLogging, ActorLogging, PaxosIO, Actor, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PaxosActor
  2. PaxosActorNoTimeout
  3. AkkaLoggingAdapter
  4. PaxosLogging
  5. ActorLogging
  6. PaxosIO
  7. Actor
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PaxosActor(config: PaxosProperties, nodeUniqueId: Int, journal: Journal)

    Permalink

Type Members

  1. type Epoch = Option[BallotNumber]

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  2. type PrepareSelfVotes = SortedMap[Identifier, Option[Map[Int, PrepareResponse]]]

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  3. type Receive = PartialFunction[Any, Unit]

    Permalink
    Definition Classes
    Actor

Abstract Value Members

  1. abstract def broadcast(msg: PaxosMessage): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  2. abstract def clusterSize: Int

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  3. abstract val deliverClient: PartialFunction[Payload, AnyRef]

    Permalink

    The host application finite state machine invocation.

    The host application finite state machine invocation. This method is abstract as the implementation is specific to the host application.

    Definition Classes
    PaxosActorNoTimeout

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. val actorRefWeakMap: WeakHashMap[String, ActorRef]

    Permalink
    Attributes
    protected
    Definition Classes
    PaxosActorNoTimeout
  5. def aroundPostRestart(reason: Throwable): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
  6. def aroundPostStop(): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
  7. def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
  8. def aroundPreStart(): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
  9. def aroundReceive(receive: akka.actor.Actor.Receive, msg: Any): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. def clock(): Long

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  12. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  13. implicit val context: ActorContext

    Permalink
    Definition Classes
    Actor
  14. def debug(msg: String, one: Any, two: Any, three: Any, four: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  15. def debug(msg: String, one: Any, two: Any, three: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  16. def debug(msg: String, one: Any, two: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  17. def debug(msg: String, one: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  18. def debug(msg: String): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  19. def deliver(payload: Payload): Any

    Permalink

    The deliver method is called when a command is committed after having been selected by consensus.

    The deliver method is called when a command is committed after having been selected by consensus.

    payload

    The selected value and a delivery id that can be used to deduplicate deliveries during crash recovery.

    returns

    The response to the value command that has been delivered. May be an empty array.

    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  20. val deliverMembership: PartialFunction[Payload, Any]

    Permalink

    The cluster membership finite state machine.

    The cluster membership finite state machine. The new membership has been chosen but will come into effect only for the next message for which we generate an accept message.

    Definition Classes
    PaxosActorNoTimeout
  21. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  23. def error(msg: String, one: Any, two: Any, three: Any, four: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  24. def error(msg: String, one: Any, two: Any, three: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  25. def error(msg: String, one: Any, two: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  26. def error(msg: String, one: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  27. def error(msg: String): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  28. val filteredDeliverClient: PartialFunction[Payload, Any]

    Permalink

    The consensus algorithm my commit noop values which are filtered out rather than being passed to the client code.

    The consensus algorithm my commit noop values which are filtered out rather than being passed to the client code.

    Definition Classes
    PaxosActorNoTimeout
  29. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  30. def freshTimeout(interval: Long): Long

    Permalink

    Returns the next timeout put using a testable clock.

    Returns the next timeout put using a testable clock.

    Definition Classes
    PaxosActorPaxosActorNoTimeout
  31. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  33. def heartbeatInterval: Long

    Permalink
  34. def highestAcceptedIndex: Long

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  35. def info(msg: String, one: Any, two: Any, three: Any, four: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  36. def info(msg: String, one: Any, two: Any, three: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  37. def info(msg: String, one: Any, two: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  38. def info(msg: String, one: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  39. def info(msg: String): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  40. def isDebugEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  41. def isErrorEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  42. def isInfoEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  43. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  44. def isWarningEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  45. val journal: Journal

    Permalink

    The durable journal required to store the state of the node in a stable manner between crashes.

    The durable journal required to store the state of the node in a stable manner between crashes.

    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  46. val leaderHeartbeat: Cancellable

    Permalink
  47. def log: LoggingAdapter

    Permalink
    Definition Classes
    ActorLogging
  48. val logger: PaxosActorNoTimeout

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  49. val minPrepare: Prepare

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  50. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  51. val nodeUniqueId: Int

    Permalink

    The unique identifier of this node.

    The unique identifier of this node. This *must* be unique in the cluster which is required as of the Paxos algorithm to work properly and be safe.

    Definition Classes
    PaxosActorNoTimeout
  52. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  54. var paxosAgent: PaxosAgent

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  55. def postRestart(reason: Throwable): Unit

    Permalink
    Definition Classes
    PaxosActor → Actor
  56. def postStop(): Unit

    Permalink
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  57. def preRestart(reason: Throwable, message: Option[Any]): Unit

    Permalink
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  58. def preStart(): Unit

    Permalink
    Definition Classes
    PaxosActor → Actor
  59. def randomInterval: Long

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  60. def randomTimeout: Long

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  61. def receive: Receive

    Permalink
    Definition Classes
    PaxosActorNoTimeout → Actor
  62. def respond(pathAsString: String, data: Any): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  63. implicit final val self: ActorRef

    Permalink
    Definition Classes
    Actor
  64. def send(actor: ActorRef, msg: Any): Unit

    Permalink

    If you require transactions in the host application then you need to supply a custom Journal which participates in your transactions.

    If you require transactions in the host application then you need to supply a custom Journal which participates in your transactions. You also need to override this method to buffer the messages then either send them post commit else delete them post rollback. Paxos is safe to lost messages so it is safe to crash after committing the journal before having sent out the messages. Paxos is *not* safe to "forgotten outcomes" so it is never safe to send messages when you rolled back your custom Journal.

    Definition Classes
    PaxosActorNoTimeout
  65. def send(msg: PaxosMessage): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  66. def sendNoLongerLeader(clientCommands: Map[Identifier, (CommandValue, String)]): Unit

    Permalink

    Notifies clients that it is no longer the leader by sending them an exception.

    Notifies clients that it is no longer the leader by sending them an exception.

    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  67. final def sender(): ActorRef

    Permalink
    Definition Classes
    Actor
  68. def senderId(): String

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  69. var sent: Seq[PaxosMessage]

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  70. def supervisorStrategy: SupervisorStrategy

    Permalink
    Definition Classes
    Actor
  71. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  73. def trace(event: PaxosEvent, sender: String, sent: Seq[PaxosMessage]): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  74. def transmit(sender: ActorRef): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout
  75. def unhandled(message: Any): Unit

    Permalink
    Definition Classes
    Actor
  76. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  79. def warning(msg: String, one: Any, two: Any, three: Any, four: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  80. def warning(msg: String, one: Any, two: Any, three: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  81. def warning(msg: String, one: Any, two: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  82. def warning(msg: String, one: Any): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging
  83. def warning(msg: String): Unit

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging

Inherited from PaxosActorNoTimeout

Inherited from AkkaLoggingAdapter

Inherited from PaxosLogging

Inherited from ActorLogging

Inherited from PaxosIO

Inherited from Actor

Inherited from AnyRef

Inherited from Any

Ungrouped