update the error message + update the task db size to 20GiB with a limit at 50%

This commit is contained in:
Tamo 2023-04-12 18:46:24 +02:00
parent 9350a7b017
commit b4fabce36d
No known key found for this signature in database
GPG Key ID: 20CD8020AFA88D69
4 changed files with 6 additions and 6 deletions

View File

@ -61,7 +61,7 @@ pub enum Error {
SwapDuplicateIndexesFound(Vec<String>), SwapDuplicateIndexesFound(Vec<String>),
#[error("Index `{0}` not found.")] #[error("Index `{0}` not found.")]
SwapIndexNotFound(String), SwapIndexNotFound(String),
#[error("No space left in database. Free some space by deleting tasks.")] #[error("Meilisearch cannot receive write operations because the limit of the task database has been reached. Please delete tasks to continue performing write operations.")]
NoSpaceLeftInTaskQueue, NoSpaceLeftInTaskQueue,
#[error( #[error(
"Indexes {} not found.", "Indexes {} not found.",

View File

@ -820,9 +820,9 @@ impl IndexScheduler {
pub fn register(&self, kind: KindWithContent) -> Result<Task> { pub fn register(&self, kind: KindWithContent) -> Result<Task> {
let mut wtxn = self.env.write_txn()?; let mut wtxn = self.env.write_txn()?;
// if the task doesn't delete anything and 90% of the task queue is full, we must refuse to enqueue the incomming task // if the task doesn't delete anything and 50% of the task queue is full, we must refuse to enqueue the incomming task
if !matches!(&kind, KindWithContent::TaskDeletion { tasks, .. } if !tasks.is_empty()) if !matches!(&kind, KindWithContent::TaskDeletion { tasks, .. } if !tasks.is_empty())
&& (self.env.real_disk_size()? * 100) / self.env.map_size()? as u64 > 90 && (self.env.real_disk_size()? * 100) / self.env.map_size()? as u64 > 50
{ {
return Err(Error::NoSpaceLeftInTaskQueue); return Err(Error::NoSpaceLeftInTaskQueue);
} }

View File

@ -68,7 +68,7 @@ const DEFAULT_LOG_EVERY_N: usize = 100_000;
// The actual size of the virtual address space is computed at startup to determine how many 2TiB indexes can be // The actual size of the virtual address space is computed at startup to determine how many 2TiB indexes can be
// opened simultaneously. // opened simultaneously.
pub const INDEX_SIZE: u64 = 2 * 1024 * 1024 * 1024 * 1024; // 2 TiB pub const INDEX_SIZE: u64 = 2 * 1024 * 1024 * 1024 * 1024; // 2 TiB
pub const TASK_DB_SIZE: u64 = 11 * 1024 * 1024 * 1024; // 11 GiB pub const TASK_DB_SIZE: u64 = 20 * 1024 * 1024 * 1024; // 20 GiB
#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize)] #[derive(Debug, Default, Clone, Copy, Serialize, Deserialize)]
#[serde(rename_all = "UPPERCASE")] #[serde(rename_all = "UPPERCASE")]

View File

@ -1042,7 +1042,7 @@ async fn test_task_queue_is_full() {
snapshot!(code, @"422 Unprocessable Entity"); snapshot!(code, @"422 Unprocessable Entity");
snapshot!(json_string!(result), @r###" snapshot!(json_string!(result), @r###"
{ {
"message": "No space left in database. Free some space by deleting tasks.", "message": "Meilisearch cannot receive write operations because the limit of the task database has been reached. Please delete tasks to continue performing write operations.",
"code": "no_space_left_on_device", "code": "no_space_left_on_device",
"type": "system", "type": "system",
"link": "https://docs.meilisearch.com/errors#no_space_left_on_device" "link": "https://docs.meilisearch.com/errors#no_space_left_on_device"
@ -1081,7 +1081,7 @@ async fn test_task_queue_is_full() {
snapshot!(code, @"422 Unprocessable Entity"); snapshot!(code, @"422 Unprocessable Entity");
snapshot!(json_string!(result), @r###" snapshot!(json_string!(result), @r###"
{ {
"message": "No space left in database. Free some space by deleting tasks.", "message": "Meilisearch cannot receive write operations because the limit of the task database has been reached. Please delete tasks to continue performing write operations.",
"code": "no_space_left_on_device", "code": "no_space_left_on_device",
"type": "system", "type": "system",
"link": "https://docs.meilisearch.com/errors#no_space_left_on_device" "link": "https://docs.meilisearch.com/errors#no_space_left_on_device"