pub struct SecondaryReceiver { /* private fields */ }Expand description
Secondary-side data server. Runs as a gRPC server on the data plane.
Handles:
- ReplicationStream: incremental replication from primary
- GetCopyContext: returns secondary’s state context during build
- CopyStream: receives full state from primary during build
Implementations§
Source§impl SecondaryReceiver
impl SecondaryReceiver
Sourcepub fn new(state: Arc<SecondaryState>) -> Self
pub fn new(state: Arc<SecondaryState>) -> Self
Create in volatile mode (auto-ACK, backward compatible with tests).
Sourcepub fn with_streams(
state: Arc<SecondaryState>,
partition_state: Arc<PartitionState>,
operation_tx: Sender<Operation>,
copy_stream_tx: Sender<Operation>,
state_provider_tx: UnboundedSender<StateProviderEvent>,
) -> Self
pub fn with_streams( state: Arc<SecondaryState>, partition_state: Arc<PartitionState>, operation_tx: Sender<Operation>, copy_stream_tx: Sender<Operation>, state_provider_tx: UnboundedSender<StateProviderEvent>, ) -> Self
Create in persisted mode with full copy support.
Trait Implementations§
Source§impl ReplicatorData for SecondaryReceiver
impl ReplicatorData for SecondaryReceiver
Source§type ReplicationStreamStream = ReceiverStream<Result<ReplicationAck, Status>>
type ReplicationStreamStream = ReceiverStream<Result<ReplicationAck, Status>>
Server streaming response type for the ReplicationStream method.
Source§fn replication_stream<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<ReplicationItem>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ReplicationStreamStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn replication_stream<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<ReplicationItem>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ReplicationStreamStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Incremental replication: primary streams ops, secondary ACKs
Source§fn get_copy_context<'life0, 'async_trait>(
&'life0 self,
_request: Request<GetCopyContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetCopyContextResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_copy_context<'life0, 'async_trait>(
&'life0 self,
_request: Request<GetCopyContextRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetCopyContextResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Copy protocol: primary ↔ secondary during BuildReplica Read more
Auto Trait Implementations§
impl !Freeze for SecondaryReceiver
impl RefUnwindSafe for SecondaryReceiver
impl Send for SecondaryReceiver
impl Sync for SecondaryReceiver
impl Unpin for SecondaryReceiver
impl UnsafeUnpin for SecondaryReceiver
impl UnwindSafe for SecondaryReceiver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request