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]

Reply via email to