diff --git a/config/config.md b/config/config.md
index d50501b040..07301b79a4 100644
--- a/config/config.md
+++ b/config/config.md
@@ -132,10 +132,10 @@
| `region_engine.mito.vector_cache_size` | String | Auto | Cache size for vectors and arrow arrays. Setting it to 0 to disable the cache. If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. |
| `region_engine.mito.page_cache_size` | String | Auto | Cache size for pages of SST row groups. Setting it to 0 to disable the cache. If not set, it's default to 1/8 of OS memory. |
| `region_engine.mito.selector_result_cache_size` | String | Auto | Cache size for time series selector (e.g. `last_value()`). Setting it to 0 to disable the cache. If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. |
-| `region_engine.mito.enable_experimental_write_cache` | Bool | `false` | Whether to enable the experimental write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance. |
-| `region_engine.mito.experimental_write_cache_path` | String | `""` | File system path for write cache, defaults to `{data_home}/object_cache/write`. |
-| `region_engine.mito.experimental_write_cache_size` | String | `5GiB` | Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger. |
-| `region_engine.mito.experimental_write_cache_ttl` | String | Unset | TTL for write cache. |
+| `region_engine.mito.enable_write_cache` | Bool | `false` | Whether to enable the write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance. |
+| `region_engine.mito.write_cache_path` | String | `""` | File system path for write cache, defaults to `{data_home}/object_cache/write`. |
+| `region_engine.mito.write_cache_size` | String | `5GiB` | Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger. |
+| `region_engine.mito.write_cache_ttl` | String | Unset | TTL for write cache. |
| `region_engine.mito.sst_write_buffer_size` | String | `8MB` | Buffer size for SST writing. |
| `region_engine.mito.parallel_scan_channel_size` | Integer | `32` | Capacity of the channel to send data from parallel scan tasks to the main task. |
| `region_engine.mito.allow_stale_entries` | Bool | `false` | Whether to allow stale WAL entries read during replay. |
@@ -466,10 +466,10 @@
| `region_engine.mito.vector_cache_size` | String | Auto | Cache size for vectors and arrow arrays. Setting it to 0 to disable the cache. If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. |
| `region_engine.mito.page_cache_size` | String | Auto | Cache size for pages of SST row groups. Setting it to 0 to disable the cache. If not set, it's default to 1/8 of OS memory. |
| `region_engine.mito.selector_result_cache_size` | String | Auto | Cache size for time series selector (e.g. `last_value()`). Setting it to 0 to disable the cache. If not set, it's default to 1/16 of OS memory with a max limitation of 512MB. |
-| `region_engine.mito.enable_experimental_write_cache` | Bool | `false` | Whether to enable the experimental write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance. |
-| `region_engine.mito.experimental_write_cache_path` | String | `""` | File system path for write cache, defaults to `{data_home}`. |
-| `region_engine.mito.experimental_write_cache_size` | String | `5GiB` | Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger. |
-| `region_engine.mito.experimental_write_cache_ttl` | String | Unset | TTL for write cache. |
+| `region_engine.mito.enable_write_cache` | Bool | `false` | Whether to enable the write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance. |
+| `region_engine.mito.write_cache_path` | String | `""` | File system path for write cache, defaults to `{data_home}`. |
+| `region_engine.mito.write_cache_size` | String | `5GiB` | Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger. |
+| `region_engine.mito.write_cache_ttl` | String | Unset | TTL for write cache. |
| `region_engine.mito.sst_write_buffer_size` | String | `8MB` | Buffer size for SST writing. |
| `region_engine.mito.parallel_scan_channel_size` | Integer | `32` | Capacity of the channel to send data from parallel scan tasks to the main task. |
| `region_engine.mito.allow_stale_entries` | Bool | `false` | Whether to allow stale WAL entries read during replay. |
diff --git a/config/datanode.example.toml b/config/datanode.example.toml
index c15f3b1c26..a329cb4f3a 100644
--- a/config/datanode.example.toml
+++ b/config/datanode.example.toml
@@ -475,18 +475,18 @@ auto_flush_interval = "1h"
## @toml2docs:none-default="Auto"
#+ selector_result_cache_size = "512MB"
-## Whether to enable the experimental write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance.
-enable_experimental_write_cache = false
+## Whether to enable the write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance.
+enable_write_cache = false
## File system path for write cache, defaults to `{data_home}`.
-experimental_write_cache_path = ""
+write_cache_path = ""
## Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger.
-experimental_write_cache_size = "5GiB"
+write_cache_size = "5GiB"
## TTL for write cache.
## @toml2docs:none-default
-experimental_write_cache_ttl = "8h"
+write_cache_ttl = "8h"
## Buffer size for SST writing.
sst_write_buffer_size = "8MB"
diff --git a/config/standalone.example.toml b/config/standalone.example.toml
index ad89cea76d..e1bc4a90b9 100644
--- a/config/standalone.example.toml
+++ b/config/standalone.example.toml
@@ -518,18 +518,18 @@ auto_flush_interval = "1h"
## @toml2docs:none-default="Auto"
#+ selector_result_cache_size = "512MB"
-## Whether to enable the experimental write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance.
-enable_experimental_write_cache = false
+## Whether to enable the write cache, it's enabled by default when using object storage. It is recommended to enable it when using object storage for better performance.
+enable_write_cache = false
## File system path for write cache, defaults to `{data_home}/object_cache/write`.
-experimental_write_cache_path = ""
+write_cache_path = ""
## Capacity for write cache. If your disk space is sufficient, it is recommended to set it larger.
-experimental_write_cache_size = "5GiB"
+write_cache_size = "5GiB"
## TTL for write cache.
## @toml2docs:none-default
-experimental_write_cache_ttl = "8h"
+write_cache_ttl = "8h"
## Buffer size for SST writing.
sst_write_buffer_size = "8MB"
diff --git a/src/cmd/tests/load_config_test.rs b/src/cmd/tests/load_config_test.rs
index c5f1111d37..e142a0b4a6 100644
--- a/src/cmd/tests/load_config_test.rs
+++ b/src/cmd/tests/load_config_test.rs
@@ -69,7 +69,7 @@ fn test_load_datanode_example_config() {
region_engine: vec![
RegionEngineConfig::Mito(MitoConfig {
auto_flush_interval: Duration::from_secs(3600),
- experimental_write_cache_ttl: Some(Duration::from_secs(60 * 60 * 8)),
+ write_cache_ttl: Some(Duration::from_secs(60 * 60 * 8)),
..Default::default()
}),
RegionEngineConfig::File(EngineConfig {}),
@@ -203,7 +203,7 @@ fn test_load_standalone_example_config() {
region_engine: vec![
RegionEngineConfig::Mito(MitoConfig {
auto_flush_interval: Duration::from_secs(3600),
- experimental_write_cache_ttl: Some(Duration::from_secs(60 * 60 * 8)),
+ write_cache_ttl: Some(Duration::from_secs(60 * 60 * 8)),
..Default::default()
}),
RegionEngineConfig::File(EngineConfig {}),
diff --git a/src/datanode/src/datanode.rs b/src/datanode/src/datanode.rs
index b3763801b4..01e1e072c0 100644
--- a/src/datanode/src/datanode.rs
+++ b/src/datanode/src/datanode.rs
@@ -433,8 +433,8 @@ impl DatanodeBuilder {
) -> Result {
if opts.storage.is_object_storage() {
// Enable the write cache when setting object storage
- config.enable_experimental_write_cache = true;
- info!("Configured 'enable_experimental_write_cache=true' for mito engine.");
+ config.enable_write_cache = true;
+ info!("Configured 'enable_write_cache=true' for mito engine.");
}
let mito_engine = match &opts.wal {
diff --git a/src/mito2/src/config.rs b/src/mito2/src/config.rs
index 6c74efcc8a..6208424a41 100644
--- a/src/mito2/src/config.rs
+++ b/src/mito2/src/config.rs
@@ -93,15 +93,15 @@ pub struct MitoConfig {
pub page_cache_size: ReadableSize,
/// Cache size for time series selector (e.g. `last_value()`). Setting it to 0 to disable the cache.
pub selector_result_cache_size: ReadableSize,
- /// Whether to enable the experimental write cache.
- pub enable_experimental_write_cache: bool,
+ /// Whether to enable the write cache.
+ pub enable_write_cache: bool,
/// File system path for write cache dir's root, defaults to `{data_home}`.
- pub experimental_write_cache_path: String,
+ pub write_cache_path: String,
/// Capacity for write cache.
- pub experimental_write_cache_size: ReadableSize,
+ pub write_cache_size: ReadableSize,
/// TTL for write cache.
#[serde(with = "humantime_serde")]
- pub experimental_write_cache_ttl: Option,
+ pub write_cache_ttl: Option,
// Other configs:
/// Buffer size for SST writing.
@@ -147,10 +147,10 @@ impl Default for MitoConfig {
vector_cache_size: ReadableSize::mb(512),
page_cache_size: ReadableSize::mb(512),
selector_result_cache_size: ReadableSize::mb(512),
- enable_experimental_write_cache: false,
- experimental_write_cache_path: String::new(),
- experimental_write_cache_size: ReadableSize::gb(5),
- experimental_write_cache_ttl: None,
+ enable_write_cache: false,
+ write_cache_path: String::new(),
+ write_cache_size: ReadableSize::gb(5),
+ write_cache_ttl: None,
sst_write_buffer_size: DEFAULT_WRITE_BUFFER_SIZE,
parallel_scan_channel_size: DEFAULT_SCAN_CHANNEL_SIZE,
allow_stale_entries: false,
@@ -234,8 +234,8 @@ impl MitoConfig {
}
// Sets write cache path if it is empty.
- if self.experimental_write_cache_path.trim().is_empty() {
- self.experimental_write_cache_path = data_home.to_string();
+ if self.write_cache_path.trim().is_empty() {
+ self.write_cache_path = data_home.to_string();
}
self.index.sanitize(data_home, &self.inverted_index)?;
@@ -268,7 +268,7 @@ impl MitoConfig {
self.selector_result_cache_size = mem_cache_size;
}
- /// Enable experimental write cache.
+ /// Enable write cache.
#[cfg(test)]
pub fn enable_write_cache(
mut self,
@@ -276,10 +276,10 @@ impl MitoConfig {
size: ReadableSize,
ttl: Option,
) -> Self {
- self.enable_experimental_write_cache = true;
- self.experimental_write_cache_path = path;
- self.experimental_write_cache_size = size;
- self.experimental_write_cache_ttl = ttl;
+ self.enable_write_cache = true;
+ self.write_cache_path = path;
+ self.write_cache_size = size;
+ self.write_cache_ttl = ttl;
self
}
}
diff --git a/src/mito2/src/engine/edit_region_test.rs b/src/mito2/src/engine/edit_region_test.rs
index bb9588f1cc..2b66422f06 100644
--- a/src/mito2/src/engine/edit_region_test.rs
+++ b/src/mito2/src/engine/edit_region_test.rs
@@ -140,7 +140,7 @@ async fn test_edit_region_fill_cache() {
.create_engine_with(
MitoConfig {
// Write cache must be enabled to download the ingested SST file.
- enable_experimental_write_cache: true,
+ enable_write_cache: true,
..Default::default()
},
None,
diff --git a/src/mito2/src/worker.rs b/src/mito2/src/worker.rs
index 62ad59f070..55dc11521f 100644
--- a/src/mito2/src/worker.rs
+++ b/src/mito2/src/worker.rs
@@ -365,23 +365,20 @@ async fn write_cache_from_config(
puffin_manager_factory: PuffinManagerFactory,
intermediate_manager: IntermediateManager,
) -> Result