This is an automated email from the ASF dual-hosted git repository. xikai pushed a commit to branch memtable-poc in repository https://gitbox.apache.org/repos/asf/incubator-horaedb.git
commit d9cf12c20edd28f9ee21bce02824e8da0d09e117 Author: jiacai2050 <[email protected]> AuthorDate: Mon Dec 25 13:44:14 2023 +0800 skip wal encoding --- analytic_engine/src/instance/mod.rs | 1 + analytic_engine/src/instance/open.rs | 1 + analytic_engine/src/instance/write.rs | 24 ++++++++++++++++-------- analytic_engine/src/lib.rs | 1 + 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/analytic_engine/src/instance/mod.rs b/analytic_engine/src/instance/mod.rs index 85841f4c..7e50d677 100644 --- a/analytic_engine/src/instance/mod.rs +++ b/analytic_engine/src/instance/mod.rs @@ -189,6 +189,7 @@ pub struct Instance { pub(crate) iter_options: Option<IterOptions>, pub(crate) recover_mode: RecoverMode, pub(crate) wal_encode: WalEncodeConfig, + pub(crate) disable_wal: bool, } impl Instance { diff --git a/analytic_engine/src/instance/open.rs b/analytic_engine/src/instance/open.rs index 41c4a33d..c2135b55 100644 --- a/analytic_engine/src/instance/open.rs +++ b/analytic_engine/src/instance/open.rs @@ -164,6 +164,7 @@ impl Instance { scan_options, recover_mode: ctx.config.recover_mode, wal_encode: ctx.config.wal_encode, + disable_wal: ctx.config.wal.disable_data, }); Ok(instance) diff --git a/analytic_engine/src/instance/write.rs b/analytic_engine/src/instance/write.rs index 00a7eec0..22449043 100644 --- a/analytic_engine/src/instance/write.rs +++ b/analytic_engine/src/instance/write.rs @@ -428,15 +428,23 @@ impl<'a> Writer<'a> { self.preprocess_write(&mut encode_ctx).await?; - let encoded_payload = { - let _timer = self.table_data.metrics.start_table_write_encode_timer(); - let schema = self.table_data.schema(); - encode_ctx.encode(&self.instance.wal_encode, &schema)? - }; + let seq = if self.instance.disable_wal { + MIN_SEQUENCE_NUMBER + } else { + let encoded_payload = { + let _timer = self.table_data.metrics.start_table_write_encode_timer(); + let schema = self.table_data.schema(); + encode_ctx.encode(&self.instance.wal_encode, &schema)? + }; - let seq = match encoded_payload { - EncodedPayload::Rows(encoded_rows) => self.write_to_wal_in_rows(encoded_rows).await?, - EncodedPayload::Cols(encoded_cols) => self.write_to_wal_in_cols(encoded_cols).await?, + match encoded_payload { + EncodedPayload::Rows(encoded_rows) => { + self.write_to_wal_in_rows(encoded_rows).await? + } + EncodedPayload::Cols(encoded_cols) => { + self.write_to_wal_in_cols(encoded_cols).await? + } + } }; // Write the row group to the memtable and update the state in the mem. diff --git a/analytic_engine/src/lib.rs b/analytic_engine/src/lib.rs index 5782d96e..74d43333 100644 --- a/analytic_engine/src/lib.rs +++ b/analytic_engine/src/lib.rs @@ -124,6 +124,7 @@ pub struct Config { /// The interval for sampling the memory usage pub mem_usage_sampling_interval: ReadableDuration, /// The config for log in the wal. + // TODO: move this in WalConfig. pub wal_encode: WalEncodeConfig, /// Wal storage config --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
