From 046bbea864566a6f02bc1e7cbf401f0a13c3e0e7 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Thu, 27 Feb 2025 11:51:35 +0100 Subject: [PATCH] Keep old stat format to make sure the number of documents is available during dumpless upgrade --- crates/index-scheduler/src/index_mapper/mod.rs | 5 +++++ crates/meilisearch/src/routes/indexes/mod.rs | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/index-scheduler/src/index_mapper/mod.rs b/crates/index-scheduler/src/index_mapper/mod.rs index 48e29508f..32cfa94ad 100644 --- a/crates/index-scheduler/src/index_mapper/mod.rs +++ b/crates/index-scheduler/src/index_mapper/mod.rs @@ -102,6 +102,10 @@ pub struct IndexStats { /// Stats of the documents database. #[serde(default)] pub documents_database_stats: DatabaseStats, + + #[serde(default, skip_serializing)] + pub number_of_documents: Option, + /// Size taken up by the index' DB, in bytes. /// /// This includes the size taken by both the used and free pages of the DB, and as the free pages @@ -143,6 +147,7 @@ impl IndexStats { number_of_embeddings: Some(arroy_stats.number_of_embeddings), number_of_embedded_documents: Some(arroy_stats.documents.len()), documents_database_stats: index.documents_stats(rtxn)?.unwrap_or_default(), + number_of_documents: None, database_size: index.on_disk_size()?, used_database_size: index.used_size()?, primary_key: index.primary_key(rtxn)?.map(|s| s.to_string()), diff --git a/crates/meilisearch/src/routes/indexes/mod.rs b/crates/meilisearch/src/routes/indexes/mod.rs index bbcb3674b..5aebf5cac 100644 --- a/crates/meilisearch/src/routes/indexes/mod.rs +++ b/crates/meilisearch/src/routes/indexes/mod.rs @@ -514,7 +514,10 @@ pub struct IndexStats { impl From for IndexStats { fn from(stats: index_scheduler::IndexStats) -> Self { IndexStats { - number_of_documents: stats.inner_stats.documents_database_stats.number_of_entries(), + number_of_documents: stats + .inner_stats + .number_of_documents + .unwrap_or(stats.inner_stats.documents_database_stats.number_of_entries()), raw_document_db_size: stats.inner_stats.documents_database_stats.total_value_size(), avg_document_size: stats.inner_stats.documents_database_stats.average_value_size(), is_indexing: stats.is_indexing,