com.digitalasset.canton.synchronizer.mediator.service
GrpcMediatorInspectionService
Companion object GrpcMediatorInspectionService
class GrpcMediatorInspectionService extends MediatorInspectionService with NamedLogging
The mediator inspection service delivers a stream of finalized verdicts. The verdicts are sorted by the finalization time, which additionally is capped by the watermark tracked via the provided time awaiter. In case the watermark is reached and no new verdicts are found, the stream waits to be notified by the time awaiter when new watermarks are encountered. In practice, the time awaiter follows the observed sequencing.
Notice:While returning the results in order of the request time would be a more natural way to consume the information, this would add significant complexity to the implementation, because of various reasons:
- a later request could be completed sooner than an earlier requests
- the inspection service would have to interact with the ongoing mediator state to understand which requests are still pending and not emit verdicts of requests after the oldest pending request
In contrast, using the finalization time for sorting the verdicts is a simple and stable way to deliver all known verdicts purely based on the verdicts persisted in the finalized response store.
- Alphabetic
- By Inheritance
- GrpcMediatorInspectionService
- NamedLogging
- MediatorInspectionService
- AbstractService
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new GrpcMediatorInspectionService(finalizedResponseStore: FinalizedResponseStore, watermarkTracker: TimeAwaiter, batchSize: PositiveInt, loggerFactory: NamedLoggerFactory)(implicit ec: 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]) @IntrinsicCandidate() @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
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def loadBatchesAndRespond(queryRange: QueryRange, responseObserver: ServerCallStreamObserver[VerdictsResponse])(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
Load batches of verdicts until the client cancels the response stream
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Attributes
- protected
- Definition Classes
- GrpcMediatorInspectionService → 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
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def serviceCompanion: ServiceCompanion[MediatorInspectionService]
- Definition Classes
- MediatorInspectionService → AbstractService
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def verdicts(request: VerdictsRequest, responseObserver: StreamObserver[VerdictsResponse]): Unit
Loads verdicts from the finalized response store, starting with the optional timestamps or the beginning, if not provided.
Loads verdicts from the finalized response store, starting with the optional timestamps or the beginning, if not provided. The responses are ordered by the tuple:
(verdict.finalizationTime, verdict.recordTime)
, i.e. the sequencing timestamp of the response that resulted in a finalized response.- Definition Classes
- GrpcMediatorInspectionService → MediatorInspectionService
- 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()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])