From 5a0a0468df7bc733f03b605f64eb1172bffcdb01 Mon Sep 17 00:00:00 2001 From: amab8901 Date: Fri, 16 Dec 2022 08:11:12 +0100 Subject: [PATCH] Combine created and added into date --- index-scheduler/src/batch.rs | 4 ++-- index-scheduler/src/index_mapper.rs | 31 ++++++++--------------------- index-scheduler/src/lib.rs | 5 ++--- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/index-scheduler/src/batch.rs b/index-scheduler/src/batch.rs index 903a58bf1..6eac926c4 100644 --- a/index-scheduler/src/batch.rs +++ b/index-scheduler/src/batch.rs @@ -788,7 +788,7 @@ impl IndexScheduler { let index = if must_create_index { // create the index if it doesn't already exist let wtxn = self.env.write_txn()?; - self.index_mapper.create_index(wtxn, index_uid, None, None)? + self.index_mapper.create_index(wtxn, index_uid, None)? } else { let rtxn = self.env.read_txn()?; self.index_mapper.index(&rtxn, index_uid)? @@ -805,7 +805,7 @@ impl IndexScheduler { if self.index_mapper.exists(&wtxn, &index_uid)? { return Err(Error::IndexAlreadyExists(index_uid)); } - self.index_mapper.create_index(wtxn, &index_uid, None, None)?; + self.index_mapper.create_index(wtxn, &index_uid, None)?; self.process_batch(Batch::IndexUpdate { index_uid, primary_key, task }) } diff --git a/index-scheduler/src/index_mapper.rs b/index-scheduler/src/index_mapper.rs index 82bf0ceb4..8979dd6ce 100644 --- a/index-scheduler/src/index_mapper.rs +++ b/index-scheduler/src/index_mapper.rs @@ -66,30 +66,18 @@ impl IndexMapper { /// Create or open an index in the specified path. /// The path *must* exists or an error will be thrown. - fn create_or_open_index(&self, path: &Path, created: Option, updated: Option) -> Result { + fn create_or_open_index(&self, path: &Path, date: Option<(time::OffsetDateTime, time::OffsetDateTime)>) -> Result { let mut options = EnvOpenOptions::new(); options.map_size(clamp_to_page_size(self.index_size)); options.max_readers(1024); + + let (created, updated) = date.unwrap(); - let created_at; - if created == None { - created_at = time::OffsetDateTime::now_utc(); - } else { - created_at = created.unwrap(); - } - - let updated_at; - if updated == None { - updated_at = time::OffsetDateTime::now_utc(); - } else { - updated_at = updated.unwrap(); - } - - Ok(Index::new_with_creation_dates(options, path, created_at, updated_at)?) + Ok(Index::new_with_creation_dates(options, path, created, updated)?) } /// Get or create the index. - pub fn create_index(&self, mut wtxn: RwTxn, name: &str, created_at: Option, updated_at: Option) -> Result { + pub fn create_index(&self, mut wtxn: RwTxn, name: &str, date: Option<(time::OffsetDateTime, time::OffsetDateTime)>) -> Result { match self.index(&wtxn, name) { Ok(index) => { wtxn.commit()?; @@ -102,9 +90,7 @@ impl IndexMapper { let index_path = self.base_path.join(uuid.to_string()); fs::create_dir_all(&index_path)?; - //let created_at = Some(time::OffsetDateTime::now_utc()); - //let updated_at = Some(time::OffsetDateTime::now_utc()); - let index = self.create_or_open_index(&index_path, created_at, updated_at)?; + let index = self.create_or_open_index(&index_path, date)?; wtxn.commit()?; // TODO: it would be better to lazily create the index. But we need an Index::open function for milli. @@ -198,9 +184,8 @@ impl IndexMapper { Entry::Vacant(entry) => { let index_path = self.base_path.join(uuid.to_string()); - let created_at = Some(time::OffsetDateTime::now_utc()); - let updated_at = Some(time::OffsetDateTime::now_utc()); - let index = self.create_or_open_index(&index_path, created_at, updated_at)?; + let date = Some(( time::OffsetDateTime::now_utc(), time::OffsetDateTime::now_utc() )); + let index = self.create_or_open_index(&index_path, date)?; entry.insert(Available(index.clone())); index } diff --git a/index-scheduler/src/lib.rs b/index-scheduler/src/lib.rs index 8b207165b..9e39b4cf3 100644 --- a/index-scheduler/src/lib.rs +++ b/index-scheduler/src/lib.rs @@ -867,9 +867,8 @@ impl IndexScheduler { /// Create a new index without any associated task. pub fn create_raw_index(&self, name: &str) -> Result { let wtxn = self.env.write_txn()?; - let created_at = Some(time::OffsetDateTime::now_utc()); - let updated_at = Some(time::OffsetDateTime::now_utc()); - let index = self.index_mapper.create_index(wtxn, name, created_at, updated_at)?; + let date = Some(( time::OffsetDateTime::now_utc(), time::OffsetDateTime::now_utc() )); + let index = self.index_mapper.create_index(wtxn, name, date)?; Ok(index) }