Class

com.github.trex_paxos.internals

PaxosActorNoTimeout

Related Doc: package internals

Permalink

abstract class PaxosActorNoTimeout extends Actor with PaxosIO with ActorLogging with AkkaLoggingAdapter

Note that for testing this class does not schedule and manage its own timeouts. Use the subclass which schedules its timeout rather than this baseclass.

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

Instance Constructors

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

    Permalink

    config

    Configuration such as timeout durations.

    nodeUniqueId

    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.

    journal

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

Type Members

  1. type Epoch = Option[BallotNumber]

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

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

    Permalink
    Definition Classes
    Actor

Abstract Value Members

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

    Permalink
  2. abstract def clusterSize: Int

    Permalink
  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.

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
  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.

  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.

  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.

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

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

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

    Permalink
  34. def info(msg: String, one: Any, two: Any, three: Any, four: Any): Unit

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

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

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

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

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

    Permalink
    Definition Classes
    PaxosLogging
  40. def isErrorEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  41. def isInfoEnabled: Boolean

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

    Permalink
    Definition Classes
    Any
  43. def isWarningEnabled: Boolean

    Permalink
    Definition Classes
    PaxosLogging
  44. 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
  45. def log: LoggingAdapter

    Permalink
    Definition Classes
    ActorLogging
  46. val logger: PaxosActorNoTimeout

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

    Permalink
  48. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  49. 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.

  50. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  52. var paxosAgent: PaxosAgent

    Permalink
  53. def postRestart(reason: Throwable): Unit

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

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

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

    Permalink
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  57. def randomInterval: Long

    Permalink
  58. def randomTimeout: Long

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

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

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

    Permalink
    Definition Classes
    Actor
  62. 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.

  63. def send(msg: PaxosMessage): Unit

    Permalink
    Definition Classes
    PaxosActorNoTimeout → PaxosIO
  64. 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
  65. final def sender(): ActorRef

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

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

    Permalink
  68. def supervisorStrategy: SupervisorStrategy

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

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

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

    Permalink
  72. def transmit(sender: ActorRef): Unit

    Permalink
  73. def unhandled(message: Any): Unit

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AkkaLoggingAdapter → PaxosLogging

Inherited from AkkaLoggingAdapter

Inherited from PaxosLogging

Inherited from ActorLogging

Inherited from PaxosIO

Inherited from Actor

Inherited from AnyRef

Inherited from Any

Ungrouped