pub struct CollectionManager {
collections: Arc<Mutex<BTreeSet<GlobalId>>>,
tx: Sender<(GlobalId, Vec<(Row, Diff)>)>,
}
Fields§
§collections: Arc<Mutex<BTreeSet<GlobalId>>>
§tx: Sender<(GlobalId, Vec<(Row, Diff)>)>
Implementations§
source§impl CollectionManager
impl CollectionManager
The CollectionManager
provides two complementary functions:
- Providing an API to append values to a registered set of collections.
For this usecase:
- The
CollectionManager
expects to be the only writer. - Appending to a closed collection panics
- The
- Automatically advancing the timestamp of managed collections every
second. For this usecase:
- The
CollectionManager
handles contention by permitting and ignoring errors. - Closed collections will not panic if they continue receiving these requests.
- The
pub(super) fn new<T: Timestamp + Lattice + Codec64 + From<EpochMillis> + TimestampManipulation>(
write_handle: PersistWriteWorker<T>,
now: NowFn
) -> CollectionManager
sourcepub(super) async fn register_collection(&self, id: GlobalId)
pub(super) async fn register_collection(&self, id: GlobalId)
Registers the collection as one that CollectionManager
will:
- Automatically advance the upper of every second
- Accept appends for. However, note that when appending, the
CollectionManager
expects to be the only writer.
Trait Implementations§
source§impl Clone for CollectionManager
impl Clone for CollectionManager
source§fn clone(&self) -> CollectionManager
fn clone(&self) -> CollectionManager
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for CollectionManager
impl Send for CollectionManager
impl Sync for CollectionManager
impl Unpin for CollectionManager
impl !UnwindSafe for CollectionManager
Blanket Implementations§
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.