Skip to content

Commit

Permalink
core: Move replay + error correction logic to commit log
Browse files Browse the repository at this point in the history
Makes `CommitLog` a read-only handle and introduces `CommitLogMut`,
allowing to append. This better encapsulates the error detection and
trimming logic, and enforces it to be executed before being able to
mutate the log.
  • Loading branch information
kim committed Nov 13, 2023
1 parent 0ecc5cc commit 498bda7
Show file tree
Hide file tree
Showing 3 changed files with 405 additions and 289 deletions.
16 changes: 14 additions & 2 deletions crates/core/src/database_instance_context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,24 @@ impl DatabaseInstanceContext {

/// The number of bytes on disk occupied by the [MessageLog].
pub fn message_log_size_on_disk(&self) -> Result<u64, DBError> {
self.relational_db.commit_log().message_log_size_on_disk()
let size = self
.relational_db
.commit_log()
.map(|commit_log| commit_log.message_log_size_on_disk())
.transpose()?;

Ok(size.unwrap_or_default())
}

/// The number of bytes on disk occupied by the [ObjectDB].
pub fn object_db_size_on_disk(&self) -> Result<u64, DBError> {
self.relational_db.commit_log().object_db_size_on_disk()
let size = self
.relational_db
.commit_log()
.map(|commit_log| commit_log.object_db_size_on_disk())
.transpose()?;

Ok(size.unwrap_or_default())
}

/// The size of the log file.
Expand Down
Loading

0 comments on commit 498bda7

Please sign in to comment.