com.digitalasset.canton.synchronizer.sequencer.time
TimeAdvancingTopologySubscriber
Companion object TimeAdvancingTopologySubscriber
final class TimeAdvancingTopologySubscriber extends TopologyTransactionProcessingSubscriber with NamedLogging
To avoid flooding with time proofs from clients, we broadcast small messages from sequencers, hoping that it will timely advance the sequencing time for members that are awaiting to observe events.
- Alphabetic
- By Inheritance
- TimeAdvancingTopologySubscriber
- NamedLogging
- TopologyTransactionProcessingSubscriber
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new TimeAdvancingTopologySubscriber(clock: Clock, sequencerClient: SequencerClientSend, topologyClient: SynchronizerTopologyClientWithInit, psid: PhysicalSynchronizerId, thisSequencerId: SequencerId, loggerFactory: NamedLoggerFactory)(implicit executionContext: ExecutionContext)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- def executionOrder: Int
The order in which the subscriber should be executed among all the subscriptions.
The order in which the subscriber should be executed among all the subscriptions. Lower values are executed first.
- Definition Classes
- TopologyTransactionProcessingSubscriber
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Attributes
- protected
- Definition Classes
- TimeAdvancingTopologySubscriber → NamedLogging
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def observed(sequencedTimestamp: SequencedTime, effectiveTimestamp: EffectiveTime, sequencerCounter: SequencerCounter, transactions: Seq[GenericSignedTopologyTransaction])(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
This must be called whenever a topology transaction is committed.
This must be called whenever a topology transaction is committed. It may be called at additional timestamps with
transactionsbeing empty. Calls must have strictly increasingsequencedTimestampandeffectiveTimestamp.During crash recovery previous calls of this method may be replayed. Therefore, implementations must be idempotent.
The effective timestamp may have not yet been reached on the synchronizer.
- Definition Classes
- TimeAdvancingTopologySubscriber → TopologyTransactionProcessingSubscriber
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def updateHead(sequencedTimestamp: SequencedTime, effectiveTimestamp: EffectiveTime, approximateTimestamp: ApproximateTime)(implicit traceContext: TraceContext): Unit
Move the highest known (effective / approximate) timestamp ahead in the future.
Move the highest known (effective / approximate) timestamp ahead in the future.
May only be called if:
- All committed topology transactions with effective time up to
effectiveTimestamphave been persisted in the topology store. - All committed topology transactions with sequenced time up to
sequencedTimestamphave been persisted in the topology store. sequencedTimestamp <= effectiveTimestampapproximateTimestamp <= effectiveTimestamp- A sequenced event with timestamp at least
approximateTimestamphas been received from the sequencer.
The effective timestamp may have not yet been reached on the synchronizer.
- Definition Classes
- TopologyTransactionProcessingSubscriber
- All committed topology transactions with effective time up to
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()