pub struct ComputeCommandReconcile<T, C> {
client: C,
created: bool,
dataflows: HashMap<GlobalId, DataflowDescription<Plan<T>, CollectionMetadata, T>>,
peeks: HashSet<Uuid>,
responses: VecDeque<ComputeResponse<T>>,
uppers: HashMap<GlobalId, MutableAntichain<T>>,
}
Expand description
Reconcile commands targeted at a COMPUTE instance.
See the module-level documentation for details.
Fields
client: C
The client wrapped by this struct.
created: bool
Whether we’ve seen a CreateInstance
command without a corresponding
DropInstance
command.
dataflows: HashMap<GlobalId, DataflowDescription<Plan<T>, CollectionMetadata, T>>
Dataflows by ID.
peeks: HashSet<Uuid>
Outstanding peek identifiers, to guide responses (and which to suppress).
responses: VecDeque<ComputeResponse<T>>
Stash of responses to send back to the controller.
uppers: HashMap<GlobalId, MutableAntichain<T>>
Upper frontiers for indexes, sources, and sinks.
Implementations
sourceimpl<T, C> ComputeCommandReconcile<T, C> where
C: ComputeClient<T>,
T: Timestamp + Copy,
impl<T, C> ComputeCommandReconcile<T, C> where
C: ComputeClient<T>,
T: Timestamp + Copy,
sourcepub fn new(client: C) -> Self
pub fn new(client: C) -> Self
Construct a new ComputeCommandReconcile.
client
: The client wrapped by this struct.
sourcefn start_tracking(&mut self, id: GlobalId)
fn start_tracking(&mut self, id: GlobalId)
Start tracking of a id within an instance.
If we’re already tracking this ID, it means that the controller lost connection and reconnected (or has a bug). We’re updating the controller’s upper to match the local state.
sourcefn stop_tracking(&mut self, id: GlobalId)
fn stop_tracking(&mut self, id: GlobalId)
Stop tracking the id within an instance.
sourcepub fn absorb_response(&mut self, message: ComputeResponse<T>)
pub fn absorb_response(&mut self, message: ComputeResponse<T>)
Absorbs a response, and produces response that should be emitted.
async fn absorb_command(
&mut self,
command: ComputeCommand<T>
) -> Result<(), Error>
Trait Implementations
sourceimpl<T: Debug, C: Debug> Debug for ComputeCommandReconcile<T, C>
impl<T: Debug, C: Debug> Debug for ComputeCommandReconcile<T, C>
sourceimpl<T, C> GenericClient<ComputeCommand<T>, ComputeResponse<T>> for ComputeCommandReconcile<T, C> where
C: ComputeClient<T>,
T: Timestamp + Copy,
impl<T, C> GenericClient<ComputeCommand<T>, ComputeResponse<T>> for ComputeCommandReconcile<T, C> where
C: ComputeClient<T>,
T: Timestamp + Copy,
sourcefn send<'life0, 'async_trait>(
&'life0 mut self,
cmd: ComputeCommand<T>
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn send<'life0, 'async_trait>(
&'life0 mut self,
cmd: ComputeCommand<T>
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Sends a command to the dataflow server. Read more
Auto Trait Implementations
impl<T, C> RefUnwindSafe for ComputeCommandReconcile<T, C> where
C: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, C> Send for ComputeCommandReconcile<T, C> where
C: Send,
T: Send,
impl<T, C> Sync for ComputeCommandReconcile<T, C> where
C: Sync,
T: Sync,
impl<T, C> Unpin for ComputeCommandReconcile<T, C> where
C: Unpin,
T: Unpin,
impl<T, C> UnwindSafe for ComputeCommandReconcile<T, C> where
C: UnwindSafe,
T: UnwindSafe + RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more