mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-11-22 04:36:32 +00:00
Make the limit batched tasks total size default to half of max indexing
memory
This commit is contained in:
committed by
Clément Renault
parent
89006fd4b3
commit
c9726674a0
@@ -195,7 +195,7 @@ struct Infos {
|
|||||||
experimental_enable_logs_route: bool,
|
experimental_enable_logs_route: bool,
|
||||||
experimental_reduce_indexing_memory_usage: bool,
|
experimental_reduce_indexing_memory_usage: bool,
|
||||||
experimental_max_number_of_batched_tasks: usize,
|
experimental_max_number_of_batched_tasks: usize,
|
||||||
experimental_limit_batched_tasks_total_size: u64,
|
experimental_limit_batched_tasks_total_size: Option<u64>,
|
||||||
experimental_network: bool,
|
experimental_network: bool,
|
||||||
experimental_multimodal: bool,
|
experimental_multimodal: bool,
|
||||||
experimental_chat_completions: bool,
|
experimental_chat_completions: bool,
|
||||||
@@ -359,7 +359,7 @@ impl Infos {
|
|||||||
http_payload_size_limit,
|
http_payload_size_limit,
|
||||||
experimental_max_number_of_batched_tasks,
|
experimental_max_number_of_batched_tasks,
|
||||||
experimental_limit_batched_tasks_total_size:
|
experimental_limit_batched_tasks_total_size:
|
||||||
experimental_limit_batched_tasks_total_size.into(),
|
experimental_limit_batched_tasks_total_size.map(|size| size.as_u64()),
|
||||||
task_queue_webhook: task_webhook_url.is_some(),
|
task_queue_webhook: task_webhook_url.is_some(),
|
||||||
task_webhook_authorization_header: task_webhook_authorization_header.is_some(),
|
task_webhook_authorization_header: task_webhook_authorization_header.is_some(),
|
||||||
log_level: log_level.to_string(),
|
log_level: log_level.to_string(),
|
||||||
|
|||||||
@@ -230,7 +230,11 @@ pub fn setup_meilisearch(
|
|||||||
cleanup_enabled: !opt.experimental_replication_parameters,
|
cleanup_enabled: !opt.experimental_replication_parameters,
|
||||||
max_number_of_tasks: 1_000_000,
|
max_number_of_tasks: 1_000_000,
|
||||||
max_number_of_batched_tasks: opt.experimental_max_number_of_batched_tasks,
|
max_number_of_batched_tasks: opt.experimental_max_number_of_batched_tasks,
|
||||||
batched_tasks_size_limit: opt.experimental_limit_batched_tasks_total_size.into(),
|
batched_tasks_size_limit: opt.experimental_limit_batched_tasks_total_size.map_or_else(
|
||||||
|
// By default, we use half of the available memory to determine the size of batched tasks
|
||||||
|
|| opt.indexer_options.max_indexing_memory.map_or(u64::MAX, |mem| mem.as_u64() / 2),
|
||||||
|
|size| size.as_u64(),
|
||||||
|
),
|
||||||
index_growth_amount: byte_unit::Byte::from_str("10GiB").unwrap().as_u64() as usize,
|
index_growth_amount: byte_unit::Byte::from_str("10GiB").unwrap().as_u64() as usize,
|
||||||
index_count: DEFAULT_INDEX_COUNT,
|
index_count: DEFAULT_INDEX_COUNT,
|
||||||
instance_features: opt.to_instance_features(),
|
instance_features: opt.to_instance_features(),
|
||||||
|
|||||||
@@ -473,11 +473,13 @@ pub struct Opt {
|
|||||||
#[serde(default = "default_limit_batched_tasks")]
|
#[serde(default = "default_limit_batched_tasks")]
|
||||||
pub experimental_max_number_of_batched_tasks: usize,
|
pub experimental_max_number_of_batched_tasks: usize,
|
||||||
|
|
||||||
/// Experimentally reduces the maximum total size, in bytes, of tasks that will be processed at once,
|
/// Experimentally controls the maximum total size, in bytes, of tasks that will be processed
|
||||||
/// see: <https://github.com/orgs/meilisearch/discussions/801>
|
/// simultaneously. When unspecified, defaults to half of the maximum indexing memory.
|
||||||
#[clap(long, env = MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE, default_value_t = default_limit_batched_tasks_total_size())]
|
///
|
||||||
#[serde(default = "default_limit_batched_tasks_total_size")]
|
/// See: <https://github.com/orgs/meilisearch/discussions/801>
|
||||||
pub experimental_limit_batched_tasks_total_size: Byte,
|
#[clap(long, env = MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE)]
|
||||||
|
#[serde(default)]
|
||||||
|
pub experimental_limit_batched_tasks_total_size: Option<Byte>,
|
||||||
|
|
||||||
/// Enables experimental caching of search query embeddings. The value represents the maximal number of entries in the cache of each
|
/// Enables experimental caching of search query embeddings. The value represents the maximal number of entries in the cache of each
|
||||||
/// distinct embedder.
|
/// distinct embedder.
|
||||||
@@ -701,10 +703,12 @@ impl Opt {
|
|||||||
MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS,
|
MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS,
|
||||||
experimental_max_number_of_batched_tasks.to_string(),
|
experimental_max_number_of_batched_tasks.to_string(),
|
||||||
);
|
);
|
||||||
export_to_env_if_not_present(
|
if let Some(limit) = experimental_limit_batched_tasks_total_size {
|
||||||
MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE,
|
export_to_env_if_not_present(
|
||||||
experimental_limit_batched_tasks_total_size.to_string(),
|
MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE,
|
||||||
);
|
limit.to_string(),
|
||||||
|
);
|
||||||
|
}
|
||||||
export_to_env_if_not_present(
|
export_to_env_if_not_present(
|
||||||
MEILI_EXPERIMENTAL_EMBEDDING_CACHE_ENTRIES,
|
MEILI_EXPERIMENTAL_EMBEDDING_CACHE_ENTRIES,
|
||||||
experimental_embedding_cache_entries.to_string(),
|
experimental_embedding_cache_entries.to_string(),
|
||||||
@@ -1273,10 +1277,6 @@ fn default_limit_batched_tasks() -> usize {
|
|||||||
usize::MAX
|
usize::MAX
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_limit_batched_tasks_total_size() -> Byte {
|
|
||||||
Byte::from_u64(u64::MAX)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn default_embedding_cache_entries() -> usize {
|
fn default_embedding_cache_entries() -> usize {
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user