pub struct Storage {
pub logical_log: RwLock<LogicalLog>,
/* private fields */
}Fields§
§logical_log: RwLock<LogicalLog>Implementations§
Trait Implementations§
Source§impl DurableStorage for Storage
impl DurableStorage for Storage
Source§fn should_checkpoint(&self) -> bool
fn should_checkpoint(&self) -> bool
Lock-free: reads shadowed atomics only.
Source§fn serialize_row_version(
&self,
log_record: &mut LogRecord,
row_version: &RowVersion,
portable_extension: Option<&[u8]>,
) -> Result<()>
fn serialize_row_version( &self, log_record: &mut LogRecord, row_version: &RowVersion, portable_extension: Option<&[u8]>, ) -> Result<()>
Append one row-version op to
log_record’s payload buffer, in the
on-disk wire format used by the logical log. Updates op_count.Source§fn serialize_database_header(
&self,
log_record: &mut LogRecord,
header: &DatabaseHeader,
) -> Result<()>
fn serialize_database_header( &self, log_record: &mut LogRecord, header: &DatabaseHeader, ) -> Result<()>
Append a
DatabaseHeader op to log_record’s payload buffer.Source§fn log_tx(
&self,
m: LogRecord,
on_serialization_complete: OnSerializationComplete<'_>,
) -> Result<(Completion, u64)>
fn log_tx( &self, m: LogRecord, on_serialization_complete: OnSerializationComplete<'_>, ) -> Result<(Completion, u64)>
Write a transaction to the logical log without advancing the writer offset. Read more
Source§fn upgrade_header_for_log_tx(&self, m: &LogRecord) -> Result<Option<Completion>>
fn upgrade_header_for_log_tx(&self, m: &LogRecord) -> Result<Option<Completion>>
If
m needs a logical-log header upgrade before it can be appended,
start that write and return its completion. Callers must wait for this
completion and then call log_tx.fn sync(&self, sync_type: FileSyncType) -> Result<Completion>
Source§fn update_header(&self) -> Result<Completion>
fn update_header(&self) -> Result<Completion>
Persist the current logical-log header to durable storage. Read more
Source§fn truncate(&self, checkpointed_through_ts: u64) -> Result<Completion>
fn truncate(&self, checkpointed_through_ts: u64) -> Result<Completion>
Truncate the logical log, discarding frames at or below
checkpointed_through_ts (the checkpoint’s published boundary). Frames
above the boundary (uncheckpointed concurrent commits) are preserved.Source§fn reset_to_fresh_header(&self) -> Result<Completion>
fn reset_to_fresh_header(&self) -> Result<Completion>
Reset the logical log to a fresh header-only file. Read more
fn get_logical_log_file(&self) -> Arc<dyn File> ⓘ
fn logical_log_offset(&self) -> u64
fn encryption_ctx(&self) -> Option<EncryptionContext>
Source§fn set_checkpoint_threshold(&self, threshold: i64)
fn set_checkpoint_threshold(&self, threshold: i64)
Set the checkpoint threshold in bytes of logical-log data written.
A negative value disables automatic checkpointing.
fn checkpoint_threshold(&self) -> i64
fn advance_logical_log_offset_after_success(&self, bytes: u64) -> Result<()>
fn restore_logical_log_state_after_recovery( &self, offset: u64, running_crc: u32, )
Source§fn set_header(&self, header: LogHeader)
fn set_header(&self, header: LogHeader)
Set the in-memory log header from a previously-read on-disk header. Read more
Source§fn on_log_write_complete(&self) -> Result<Completion>
fn on_log_write_complete(&self) -> Result<Completion>
Called after a logical-log write completed successfully, before the
transaction is made visible by advancing the logical-log offset. Read more
fn discard_pending_log_write(&self) -> Result<()>
Source§fn on_checkpoint_start(&self) -> Result<()>
fn on_checkpoint_start(&self) -> Result<()>
Called when a checkpoint begins, before any rows are written to the B-tree.
Source§fn on_checkpoint_end(&self, _result: Result<&CheckpointResult>) -> Result<()>
fn on_checkpoint_end(&self, _result: Result<&CheckpointResult>) -> Result<()>
Called after the checkpoint has fully completed: rows are flushed, WAL is
truncated, and the logical log is reset.
Auto Trait Implementations§
impl !Freeze for Storage
impl !RefUnwindSafe for Storage
impl !UnwindSafe for Storage
impl Send for Storage
impl Sync for Storage
impl Unpin for Storage
impl UnsafeUnpin for Storage
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
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 more