pub struct DmlManager {
pub table_readers: RwLock<HashMap<TableId, TableReader>>,
txn_id_generator: TxnIdGenerator,
dml_channel_initial_permits: usize,
}
Expand description
DmlManager
manages the communication between batch data manipulation and streaming
processing.
NOTE: TableDmlHandle
is used here as an out-of-the-box solution. We should further optimize
its implementation (e.g. directly expose a channel instead of offering a write_chunk
interface).
Fields§
§table_readers: RwLock<HashMap<TableId, TableReader>>
§txn_id_generator: TxnIdGenerator
§dml_channel_initial_permits: usize
Implementations§
source§impl DmlManager
impl DmlManager
pub fn new( worker_node_id: WorkerNodeId, dml_channel_initial_permits: usize, ) -> Self
pub fn for_test() -> Self
sourcepub fn register_reader(
&self,
table_id: TableId,
table_version_id: TableVersionId,
column_descs: &[ColumnDesc],
) -> Result<TableDmlHandleRef>
pub fn register_reader( &self, table_id: TableId, table_version_id: TableVersionId, column_descs: &[ColumnDesc], ) -> Result<TableDmlHandleRef>
Register a new DML reader for a table. If the reader for this version of the table already exists, returns a reference to the existing reader.
pub fn table_dml_handle( &self, table_id: TableId, table_version_id: TableVersionId, ) -> Result<TableDmlHandleRef>
pub fn clear(&self)
pub fn gen_txn_id(&self) -> TxnId
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for DmlManager
impl !RefUnwindSafe for DmlManager
impl Send for DmlManager
impl Sync for DmlManager
impl Unpin for DmlManager
impl !UnwindSafe for DmlManager
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§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
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.