Package-level declarations

Types

Link copied to clipboard
value class CheckpointId(val value: String)

Uniquely identifies the checkpoint. This is used by the StreamManager to count persisted records against the checkpoint. Specifically, it should be passed to the StreamManager to determine data sufficiency.

Link copied to clipboard
value class CheckpointIndex(val value: Int)

Represents the checkpoint's order (stream-level for stream state, global for global state). Specifically, no state shall be released for CheckpointIndex N until all state for CheckpointIndexes 1..N-1 have been released.

Link copied to clipboard
data class CheckpointKey(val checkpointIndex: CheckpointIndex, val checkpointId: CheckpointId) : Comparable<CheckpointKey>

Used internally by the checkpoint manager to maintain ordered maps of checkpoints. Ordered by index only.

Link copied to clipboard
class CheckpointManager(val catalog: DestinationCatalog, val syncManager: SyncManager, val outputConsumer: suspend (Reserved<CheckpointMessage>, Long, Long, Long) -> Unit, val timeProvider: TimeProvider, val socketMode: Boolean, val namespaceMapper: NamespaceMapper)

Message-type agnostic streams checkpoint manager.

Link copied to clipboard
data class CheckpointValue(val records: Long, val serializedBytes: Long, val rejectedRecords: Long = 0)

For tracking counts against checkpoints of records read and persisted. Currently it only tracks row count, but could be extended to track bytes moved if needed.

Link copied to clipboard
Link copied to clipboard
sealed interface DestinationResult
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Singleton
class PipelineEventBookkeepingRouter(catalog: DestinationCatalog, syncManager: SyncManager, checkpointQueue: QueueWriter<Reserved<CheckpointMessageWrapped>>, openStreamQueue: QueueWriter<DestinationStream>, fileTransferQueue: MessageQueue<FileTransferQueueMessage>, @Named(value = "batchStateUpdateQueue") batchStateUpdateQueue: ChannelMessageQueue<BatchUpdate>, @Named(value = "numDataChannels") numDataChannels: Int, @Named(value = "markEndOfStreamAtEndOfSync") markEndOfStreamAtEndOfSync: Boolean, namespaceMapper: NamespaceMapper) : CloseableCoroutine

The stdio and socket input channel differ in subtle and critical ways

Link copied to clipboard
class ReservationManager(val totalCapacityBytes: Long)

Manages memory usage for the destination.

Link copied to clipboard
data class Reserved<T>(parentManager: ReservationManager? = null, val bytesReserved: Long = 0, val value: T) : CloseableCoroutine

Releasable reservation of memory.

Link copied to clipboard
class StreamManager(val stream: DestinationStream)

Manages the state of a single stream.

Link copied to clipboard
data class StreamProcessingFailed(val streamException: Exception) : StreamResult
Link copied to clipboard
Link copied to clipboard
sealed interface StreamResult
Link copied to clipboard
@Singleton
class SyncManager(val catalog: DestinationCatalog)