rename put_blocks_max_parallel to block_max_concurrent_writes_per_request and update configuration.md

This commit is contained in:
perrynzhou@gmail.com 2025-12-12 07:09:38 +08:00
parent 4d124e1c76
commit e3a5ec6ef6
3 changed files with 14 additions and 5 deletions

View file

@ -25,7 +25,7 @@ db_engine = "lmdb"
block_size = "1M"
block_ram_buffer_max = "256MiB"
block_max_concurrent_reads = 16
block_max_concurrent_writes_per_request =10
lmdb_map_size = "1T"
compression_level = 1
@ -99,6 +99,7 @@ Top-level configuration options, in alphabetical order:
[`allow_world_readable_secrets`](#allow_world_readable_secrets),
[`block_max_concurrent_reads`](`block_max_concurrent_reads),
[`block_ram_buffer_max`](#block_ram_buffer_max),
[`block_max_concurrent_writes_per_request`](#block_max_concurrent_writes_per_request),
[`block_size`](#block_size),
[`bootstrap_peers`](#bootstrap_peers),
[`compression_level`](#compression_level),
@ -547,6 +548,14 @@ metric in Prometheus: a non-zero number of such events indicates an I/O
bottleneck on HDD read speed.
#### `block_max_concurrent_writes_per_request` (since `v2.1.0`) {#block_max_concurrent_writes_per_request}
This parameter is designed to adapt to the concurrent write performance of
different storage media.Maximum number of parallel block writes per put request
Higher values improve throughput but increase memory usage.
Default: 3, Recommended: 10-30 for NVMe, 3-10 for HDD
#### `lmdb_map_size` {#lmdb_map_size}
This parameters can be used to set the map size used by LMDB,

View file

@ -491,7 +491,7 @@ pub(crate) async fn read_and_put_blocks<S: Stream<Item = Result<Bytes, Error>> +
};
let recv_next = async {
// If more than a maximum number of writes are in progress, don't add more for now
if currently_running >= ctx.garage.config.put_blocks_max_parallel {
if currently_running >= ctx.garage.config.block_max_concurrent_writes_per_request {
futures::future::pending().await
} else {
block_rx3.recv().await

View file

@ -48,8 +48,8 @@ pub struct Config {
/// Maximum number of parallel block writes per PUT request
/// Higher values improve throughput but increase memory usage
/// Default: 3, Recommended: 10-30 for NVMe, 3-10 for HDD
#[serde(default = "default_put_blocks_max_parallel")]
pub put_blocks_max_parallel: usize,
#[serde(default = "default_block_max_concurrent_writes_per_request")]
pub block_max_concurrent_writes_per_request: usize,
/// Number of replicas. Can be any positive integer, but uneven numbers are more favorable.
/// - 1 for single-node clusters, or to disable replication
/// - 3 is the recommended and supported setting.
@ -272,7 +272,7 @@ pub struct KubernetesDiscoveryConfig {
pub skip_crd: bool,
}
pub fn default_put_blocks_max_parallel() -> usize {
pub fn default_block_max_concurrent_writes_per_request() -> usize {
3
}
/// Read and parse configuration