From 7cbb0139f2a61c99b02444218220bbb7260335cc Mon Sep 17 00:00:00 2001 From: strawberry Date: Wed, 6 Mar 2024 18:02:19 -0500 Subject: [PATCH] implement flush() and cleanup() for rocksdb Signed-off-by: strawberry --- src/database/abstraction/rocksdb.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/database/abstraction/rocksdb.rs b/src/database/abstraction/rocksdb.rs index 373bd86d..bcb4db80 100644 --- a/src/database/abstraction/rocksdb.rs +++ b/src/database/abstraction/rocksdb.rs @@ -4,7 +4,10 @@ use std::{ sync::{Arc, RwLock}, }; -use rocksdb::LogLevel::{Debug, Error, Fatal, Info, Warn}; +use rocksdb::{ + FlushOptions, + LogLevel::{Debug, Error, Fatal, Info, Warn}, +}; use tracing::{debug, info}; use super::{super::Config, watchers::Watchers, KeyValueDatabaseEngine, KvTree}; @@ -143,7 +146,9 @@ impl KeyValueDatabaseEngine for Arc { } fn flush(&self) -> Result<()> { - // TODO? + debug!("Running flush_wal (no sync)"); + rocksdb::DBCommon::flush_wal(&self.rocks, false)?; + Ok(()) } @@ -161,6 +166,13 @@ impl KeyValueDatabaseEngine for Arc { )) } + fn cleanup(&self) -> Result<()> { + debug!("Running flush_opt"); + rocksdb::DBCommon::flush_opt(&self.rocks, &FlushOptions::default())?; + + Ok(()) + } + // TODO: figure out if this is needed for rocksdb #[allow(dead_code)] fn clear_caches(&self) {}