From 70e378d9fa9be98effbc108b760dbe0b72af994e Mon Sep 17 00:00:00 2001 From: Adrien Guillo Date: Tue, 2 Jan 2024 17:32:38 +0100 Subject: [PATCH] Skip serializing empty shards --- .../file_backed_metastore/file_backed_index/mod.rs | 4 ++-- .../file_backed_index/serialize.rs | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/mod.rs b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/mod.rs index 440765aa21d..6d9d3d817dc 100644 --- a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/mod.rs +++ b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/mod.rs @@ -476,8 +476,8 @@ impl FileBackedIndex { self.metadata.add_source(source_config)?; - self.per_source_shards - .insert(source_id.clone(), Shards::empty(index_uid, source_id)); + let shards = Shards::empty(index_uid, source_id.clone()); + self.per_source_shards.insert(source_id, shards); Ok(()) } diff --git a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs index f00847ef9e4..44ada9cba3b 100644 --- a/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs +++ b/quickwit/quickwit-metastore/src/metastore/file_backed_metastore/file_backed_index/serialize.rs @@ -73,7 +73,16 @@ impl From for FileBackedIndexV0_6 { let shards = index .per_source_shards .into_iter() - .map(|(source_id, shards)| (source_id, SerdeShards::from(shards))) + .filter_map(|(source_id, shards)| { + // Skip serializing empty shards since the feature is hidden and disabled by + // default. This way, we can still modify the serialization format without worrying + // about backward compatibility post `0.7`. + if shards.next_shard_id > 1 { + Some((source_id, SerdeShards::from(shards))) + } else { + None + } + }) .collect(); let delete_tasks = index .delete_tasks