mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 07:56:28 +00:00 
			
		
		
		
	Move crates under a sub folder to clean up the code
This commit is contained in:
		
							
								
								
									
										48
									
								
								crates/index-scheduler/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								crates/index-scheduler/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| [package] | ||||
| name = "index-scheduler" | ||||
| publish = false | ||||
|  | ||||
| version.workspace = true | ||||
| authors.workspace = true | ||||
| description.workspace = true | ||||
| homepage.workspace = true | ||||
| readme.workspace = true | ||||
| edition.workspace = true | ||||
| license.workspace = true | ||||
|  | ||||
| [dependencies] | ||||
| anyhow = "1.0.86" | ||||
| bincode = "1.3.3" | ||||
| csv = "1.3.0" | ||||
| derive_builder = "0.20.0" | ||||
| dump = { path = "../dump" } | ||||
| enum-iterator = "2.1.0" | ||||
| file-store = { path = "../file-store" } | ||||
| flate2 = "1.0.30" | ||||
| meilisearch-auth = { path = "../meilisearch-auth" } | ||||
| meilisearch-types = { path = "../meilisearch-types" } | ||||
| page_size = "0.6.0" | ||||
| rayon = "1.10.0" | ||||
| roaring = { version = "0.10.6", features = ["serde"] } | ||||
| serde = { version = "1.0.204", features = ["derive"] } | ||||
| serde_json = { version = "1.0.120", features = ["preserve_order"] } | ||||
| synchronoise = "1.0.1" | ||||
| tempfile = "3.10.1" | ||||
| thiserror = "1.0.61" | ||||
| time = { version = "0.3.36", features = [ | ||||
|     "serde-well-known", | ||||
|     "formatting", | ||||
|     "parsing", | ||||
|     "macros", | ||||
| ] } | ||||
| tracing = "0.1.40" | ||||
| ureq = "2.10.0" | ||||
| uuid = { version = "1.10.0", features = ["serde", "v4"] } | ||||
|  | ||||
| [dev-dependencies] | ||||
| arroy = { git = "https://github.com/meilisearch/arroy/", rev = "2386594dfb009ce08821a925ccc89fb8e30bf73d" } | ||||
| big_s = "1.0.2" | ||||
| crossbeam = "0.8.4" | ||||
| insta = { version = "1.39.0", features = ["json", "redactions"] } | ||||
| maplit = "1.0.2" | ||||
| meili-snap = { path = "../meili-snap" } | ||||
							
								
								
									
										1019
									
								
								crates/index-scheduler/src/autobatcher.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1019
									
								
								crates/index-scheduler/src/autobatcher.rs
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1776
									
								
								crates/index-scheduler/src/batch.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1776
									
								
								crates/index-scheduler/src/batch.rs
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										253
									
								
								crates/index-scheduler/src/error.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										253
									
								
								crates/index-scheduler/src/error.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,253 @@ | ||||
| use std::fmt::Display; | ||||
|  | ||||
| use meilisearch_types::error::{Code, ErrorCode}; | ||||
| use meilisearch_types::tasks::{Kind, Status}; | ||||
| use meilisearch_types::{heed, milli}; | ||||
| use thiserror::Error; | ||||
|  | ||||
| use crate::TaskId; | ||||
|  | ||||
| #[derive(Copy, Clone, Debug, PartialEq, Eq)] | ||||
| pub enum DateField { | ||||
|     BeforeEnqueuedAt, | ||||
|     AfterEnqueuedAt, | ||||
|     BeforeStartedAt, | ||||
|     AfterStartedAt, | ||||
|     BeforeFinishedAt, | ||||
|     AfterFinishedAt, | ||||
| } | ||||
|  | ||||
| impl Display for DateField { | ||||
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|         match self { | ||||
|             DateField::BeforeEnqueuedAt => write!(f, "beforeEnqueuedAt"), | ||||
|             DateField::AfterEnqueuedAt => write!(f, "afterEnqueuedAt"), | ||||
|             DateField::BeforeStartedAt => write!(f, "beforeStartedAt"), | ||||
|             DateField::AfterStartedAt => write!(f, "afterStartedAt"), | ||||
|             DateField::BeforeFinishedAt => write!(f, "beforeFinishedAt"), | ||||
|             DateField::AfterFinishedAt => write!(f, "afterFinishedAt"), | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl From<DateField> for Code { | ||||
|     fn from(date: DateField) -> Self { | ||||
|         match date { | ||||
|             DateField::BeforeEnqueuedAt => Code::InvalidTaskBeforeEnqueuedAt, | ||||
|             DateField::AfterEnqueuedAt => Code::InvalidTaskAfterEnqueuedAt, | ||||
|             DateField::BeforeStartedAt => Code::InvalidTaskBeforeStartedAt, | ||||
|             DateField::AfterStartedAt => Code::InvalidTaskAfterStartedAt, | ||||
|             DateField::BeforeFinishedAt => Code::InvalidTaskBeforeFinishedAt, | ||||
|             DateField::AfterFinishedAt => Code::InvalidTaskAfterFinishedAt, | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[allow(clippy::large_enum_variant)] | ||||
| #[derive(Error, Debug)] | ||||
| pub enum Error { | ||||
|     #[error("{1}")] | ||||
|     WithCustomErrorCode(Code, Box<Self>), | ||||
|     #[error("Received bad task id: {received} should be >= to {expected}.")] | ||||
|     BadTaskId { received: TaskId, expected: TaskId }, | ||||
|     #[error("Index `{0}` not found.")] | ||||
|     IndexNotFound(String), | ||||
|     #[error("Index `{0}` already exists.")] | ||||
|     IndexAlreadyExists(String), | ||||
|     #[error( | ||||
|         "Indexes must be declared only once during a swap. `{0}` was specified several times." | ||||
|     )] | ||||
|     SwapDuplicateIndexFound(String), | ||||
|     #[error( | ||||
|         "Indexes must be declared only once during a swap. {} were specified several times.", | ||||
|         .0.iter().map(|s| format!("`{}`", s)).collect::<Vec<_>>().join(", ") | ||||
|     )] | ||||
|     SwapDuplicateIndexesFound(Vec<String>), | ||||
|     #[error("Index `{0}` not found.")] | ||||
|     SwapIndexNotFound(String), | ||||
|     #[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, | ||||
|     #[error( | ||||
|         "Indexes {} not found.", | ||||
|         .0.iter().map(|s| format!("`{}`", s)).collect::<Vec<_>>().join(", ") | ||||
|     )] | ||||
|     SwapIndexesNotFound(Vec<String>), | ||||
|     #[error("Corrupted dump.")] | ||||
|     CorruptedDump, | ||||
|     #[error( | ||||
|         "Task `{field}` `{date}` is invalid. It should follow the YYYY-MM-DD or RFC 3339 date-time format." | ||||
|     )] | ||||
|     InvalidTaskDate { field: DateField, date: String }, | ||||
|     #[error("Task uid `{task_uid}` is invalid. It should only contain numeric characters.")] | ||||
|     InvalidTaskUids { task_uid: String }, | ||||
|     #[error( | ||||
|         "Task status `{status}` is invalid. Available task statuses are {}.", | ||||
|             enum_iterator::all::<Status>() | ||||
|                 .map(|s| format!("`{s}`")) | ||||
|                 .collect::<Vec<String>>() | ||||
|                 .join(", ") | ||||
|     )] | ||||
|     InvalidTaskStatuses { status: String }, | ||||
|     #[error( | ||||
|         "Task type `{type_}` is invalid. Available task types are {}", | ||||
|             enum_iterator::all::<Kind>() | ||||
|                 .map(|s| format!("`{s}`")) | ||||
|                 .collect::<Vec<String>>() | ||||
|                 .join(", ") | ||||
|     )] | ||||
|     InvalidTaskTypes { type_: String }, | ||||
|     #[error( | ||||
|         "Task canceledBy `{canceled_by}` is invalid. It should only contains numeric characters separated by `,` character." | ||||
|     )] | ||||
|     InvalidTaskCanceledBy { canceled_by: String }, | ||||
|     #[error( | ||||
|         "{index_uid} is not a valid index uid. Index uid can be an integer or a string containing only alphanumeric characters, hyphens (-) and underscores (_), and can not be more than 512 bytes." | ||||
|     )] | ||||
|     InvalidIndexUid { index_uid: String }, | ||||
|     #[error("Task `{0}` not found.")] | ||||
|     TaskNotFound(TaskId), | ||||
|     #[error("Query parameters to filter the tasks to delete are missing. Available query parameters are: `uids`, `indexUids`, `statuses`, `types`, `canceledBy`, `beforeEnqueuedAt`, `afterEnqueuedAt`, `beforeStartedAt`, `afterStartedAt`, `beforeFinishedAt`, `afterFinishedAt`.")] | ||||
|     TaskDeletionWithEmptyQuery, | ||||
|     #[error("Query parameters to filter the tasks to cancel are missing. Available query parameters are: `uids`, `indexUids`, `statuses`, `types`, `canceledBy`, `beforeEnqueuedAt`, `afterEnqueuedAt`, `beforeStartedAt`, `afterStartedAt`, `beforeFinishedAt`, `afterFinishedAt`.")] | ||||
|     TaskCancelationWithEmptyQuery, | ||||
|     #[error("Aborted task")] | ||||
|     AbortedTask, | ||||
|  | ||||
|     #[error(transparent)] | ||||
|     Dump(#[from] dump::Error), | ||||
|     #[error(transparent)] | ||||
|     Heed(#[from] heed::Error), | ||||
|     #[error(transparent)] | ||||
|     Milli(#[from] milli::Error), | ||||
|     #[error("An unexpected crash occurred when processing the task.")] | ||||
|     ProcessBatchPanicked, | ||||
|     #[error(transparent)] | ||||
|     FileStore(#[from] file_store::Error), | ||||
|     #[error(transparent)] | ||||
|     IoError(#[from] std::io::Error), | ||||
|     #[error(transparent)] | ||||
|     Persist(#[from] tempfile::PersistError), | ||||
|     #[error(transparent)] | ||||
|     FeatureNotEnabled(#[from] FeatureNotEnabledError), | ||||
|  | ||||
|     #[error(transparent)] | ||||
|     Anyhow(#[from] anyhow::Error), | ||||
|  | ||||
|     // Irrecoverable errors: | ||||
|     #[error(transparent)] | ||||
|     CreateBatch(Box<Self>), | ||||
|     #[error("Corrupted task queue.")] | ||||
|     CorruptedTaskQueue, | ||||
|     #[error(transparent)] | ||||
|     TaskDatabaseUpdate(Box<Self>), | ||||
|     #[error(transparent)] | ||||
|     HeedTransaction(heed::Error), | ||||
|  | ||||
|     #[cfg(test)] | ||||
|     #[error("Planned failure for tests.")] | ||||
|     PlannedFailure, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, thiserror::Error)] | ||||
| #[error( | ||||
|     "{disabled_action} requires enabling the `{feature}` experimental feature. See {issue_link}" | ||||
| )] | ||||
| pub struct FeatureNotEnabledError { | ||||
|     pub disabled_action: &'static str, | ||||
|     pub feature: &'static str, | ||||
|     pub issue_link: &'static str, | ||||
| } | ||||
|  | ||||
| impl Error { | ||||
|     pub fn is_recoverable(&self) -> bool { | ||||
|         match self { | ||||
|             Error::IndexNotFound(_) | ||||
|             | Error::WithCustomErrorCode(_, _) | ||||
|             | Error::BadTaskId { .. } | ||||
|             | Error::IndexAlreadyExists(_) | ||||
|             | Error::SwapDuplicateIndexFound(_) | ||||
|             | Error::SwapDuplicateIndexesFound(_) | ||||
|             | Error::SwapIndexNotFound(_) | ||||
|             | Error::NoSpaceLeftInTaskQueue | ||||
|             | Error::SwapIndexesNotFound(_) | ||||
|             | Error::CorruptedDump | ||||
|             | Error::InvalidTaskDate { .. } | ||||
|             | Error::InvalidTaskUids { .. } | ||||
|             | Error::InvalidTaskStatuses { .. } | ||||
|             | Error::InvalidTaskTypes { .. } | ||||
|             | Error::InvalidTaskCanceledBy { .. } | ||||
|             | Error::InvalidIndexUid { .. } | ||||
|             | Error::TaskNotFound(_) | ||||
|             | Error::TaskDeletionWithEmptyQuery | ||||
|             | Error::TaskCancelationWithEmptyQuery | ||||
|             | Error::AbortedTask | ||||
|             | Error::Dump(_) | ||||
|             | Error::Heed(_) | ||||
|             | Error::Milli(_) | ||||
|             | Error::ProcessBatchPanicked | ||||
|             | Error::FileStore(_) | ||||
|             | Error::IoError(_) | ||||
|             | Error::Persist(_) | ||||
|             | Error::FeatureNotEnabled(_) | ||||
|             | Error::Anyhow(_) => true, | ||||
|             Error::CreateBatch(_) | ||||
|             | Error::CorruptedTaskQueue | ||||
|             | Error::TaskDatabaseUpdate(_) | ||||
|             | Error::HeedTransaction(_) => false, | ||||
|             #[cfg(test)] | ||||
|             Error::PlannedFailure => false, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn with_custom_error_code(self, code: Code) -> Self { | ||||
|         Self::WithCustomErrorCode(code, Box::new(self)) | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl ErrorCode for Error { | ||||
|     fn error_code(&self) -> Code { | ||||
|         match self { | ||||
|             Error::WithCustomErrorCode(code, _) => *code, | ||||
|             Error::BadTaskId { .. } => Code::BadRequest, | ||||
|             Error::IndexNotFound(_) => Code::IndexNotFound, | ||||
|             Error::IndexAlreadyExists(_) => Code::IndexAlreadyExists, | ||||
|             Error::SwapDuplicateIndexesFound(_) => Code::InvalidSwapDuplicateIndexFound, | ||||
|             Error::SwapDuplicateIndexFound(_) => Code::InvalidSwapDuplicateIndexFound, | ||||
|             Error::SwapIndexNotFound(_) => Code::IndexNotFound, | ||||
|             Error::SwapIndexesNotFound(_) => Code::IndexNotFound, | ||||
|             Error::InvalidTaskDate { field, .. } => (*field).into(), | ||||
|             Error::InvalidTaskUids { .. } => Code::InvalidTaskUids, | ||||
|             Error::InvalidTaskStatuses { .. } => Code::InvalidTaskStatuses, | ||||
|             Error::InvalidTaskTypes { .. } => Code::InvalidTaskTypes, | ||||
|             Error::InvalidTaskCanceledBy { .. } => Code::InvalidTaskCanceledBy, | ||||
|             Error::InvalidIndexUid { .. } => Code::InvalidIndexUid, | ||||
|             Error::TaskNotFound(_) => Code::TaskNotFound, | ||||
|             Error::TaskDeletionWithEmptyQuery => Code::MissingTaskFilters, | ||||
|             Error::TaskCancelationWithEmptyQuery => Code::MissingTaskFilters, | ||||
|             // TODO: not sure of the Code to use | ||||
|             Error::NoSpaceLeftInTaskQueue => Code::NoSpaceLeftOnDevice, | ||||
|             Error::Dump(e) => e.error_code(), | ||||
|             Error::Milli(e) => e.error_code(), | ||||
|             Error::ProcessBatchPanicked => Code::Internal, | ||||
|             Error::Heed(e) => e.error_code(), | ||||
|             Error::HeedTransaction(e) => e.error_code(), | ||||
|             Error::FileStore(e) => e.error_code(), | ||||
|             Error::IoError(e) => e.error_code(), | ||||
|             Error::Persist(e) => e.error_code(), | ||||
|             Error::FeatureNotEnabled(_) => Code::FeatureNotEnabled, | ||||
|  | ||||
|             // Irrecoverable errors | ||||
|             Error::Anyhow(_) => Code::Internal, | ||||
|             Error::CorruptedTaskQueue => Code::Internal, | ||||
|             Error::CorruptedDump => Code::Internal, | ||||
|             Error::TaskDatabaseUpdate(_) => Code::Internal, | ||||
|             Error::CreateBatch(_) => Code::Internal, | ||||
|  | ||||
|             // This one should never be seen by the end user | ||||
|             Error::AbortedTask => Code::Internal, | ||||
|  | ||||
|             #[cfg(test)] | ||||
|             Error::PlannedFailure => Code::Internal, | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										145
									
								
								crates/index-scheduler/src/features.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								crates/index-scheduler/src/features.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,145 @@ | ||||
| use std::sync::{Arc, RwLock}; | ||||
|  | ||||
| use meilisearch_types::features::{InstanceTogglableFeatures, RuntimeTogglableFeatures}; | ||||
| use meilisearch_types::heed::types::{SerdeJson, Str}; | ||||
| use meilisearch_types::heed::{Database, Env, RwTxn}; | ||||
|  | ||||
| use crate::error::FeatureNotEnabledError; | ||||
| use crate::Result; | ||||
|  | ||||
| const EXPERIMENTAL_FEATURES: &str = "experimental-features"; | ||||
|  | ||||
| #[derive(Clone)] | ||||
| pub(crate) struct FeatureData { | ||||
|     persisted: Database<Str, SerdeJson<RuntimeTogglableFeatures>>, | ||||
|     runtime: Arc<RwLock<RuntimeTogglableFeatures>>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Clone, Copy)] | ||||
| pub struct RoFeatures { | ||||
|     runtime: RuntimeTogglableFeatures, | ||||
| } | ||||
|  | ||||
| impl RoFeatures { | ||||
|     fn new(data: &FeatureData) -> Self { | ||||
|         let runtime = data.runtime_features(); | ||||
|         Self { runtime } | ||||
|     } | ||||
|  | ||||
|     pub fn runtime_features(&self) -> RuntimeTogglableFeatures { | ||||
|         self.runtime | ||||
|     } | ||||
|  | ||||
|     pub fn check_metrics(&self) -> Result<()> { | ||||
|         if self.runtime.metrics { | ||||
|             Ok(()) | ||||
|         } else { | ||||
|             Err(FeatureNotEnabledError { | ||||
|                 disabled_action: "Getting metrics", | ||||
|                 feature: "metrics", | ||||
|                 issue_link: "https://github.com/meilisearch/product/discussions/625", | ||||
|             } | ||||
|             .into()) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn check_logs_route(&self) -> Result<()> { | ||||
|         if self.runtime.logs_route { | ||||
|             Ok(()) | ||||
|         } else { | ||||
|             Err(FeatureNotEnabledError { | ||||
|                 disabled_action: "Modifying logs through the `/logs/*` routes", | ||||
|                 feature: "logs route", | ||||
|                 issue_link: "https://github.com/orgs/meilisearch/discussions/721", | ||||
|             } | ||||
|             .into()) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn check_vector(&self, disabled_action: &'static str) -> Result<()> { | ||||
|         if self.runtime.vector_store { | ||||
|             Ok(()) | ||||
|         } else { | ||||
|             Err(FeatureNotEnabledError { | ||||
|                 disabled_action, | ||||
|                 feature: "vector store", | ||||
|                 issue_link: "https://github.com/meilisearch/product/discussions/677", | ||||
|             } | ||||
|             .into()) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn check_edit_documents_by_function(&self, disabled_action: &'static str) -> Result<()> { | ||||
|         if self.runtime.edit_documents_by_function { | ||||
|             Ok(()) | ||||
|         } else { | ||||
|             Err(FeatureNotEnabledError { | ||||
|                 disabled_action, | ||||
|                 feature: "edit documents by function", | ||||
|                 issue_link: "https://github.com/orgs/meilisearch/discussions/762", | ||||
|             } | ||||
|             .into()) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn check_contains_filter(&self) -> Result<()> { | ||||
|         if self.runtime.contains_filter { | ||||
|             Ok(()) | ||||
|         } else { | ||||
|             Err(FeatureNotEnabledError { | ||||
|                 disabled_action: "Using `CONTAINS` or `STARTS WITH` in a filter", | ||||
|                 feature: "contains filter", | ||||
|                 issue_link: "https://github.com/orgs/meilisearch/discussions/763", | ||||
|             } | ||||
|             .into()) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl FeatureData { | ||||
|     pub fn new(env: &Env, instance_features: InstanceTogglableFeatures) -> Result<Self> { | ||||
|         let mut wtxn = env.write_txn()?; | ||||
|         let runtime_features_db = env.create_database(&mut wtxn, Some(EXPERIMENTAL_FEATURES))?; | ||||
|         wtxn.commit()?; | ||||
|  | ||||
|         let txn = env.read_txn()?; | ||||
|         let persisted_features: RuntimeTogglableFeatures = | ||||
|             runtime_features_db.get(&txn, EXPERIMENTAL_FEATURES)?.unwrap_or_default(); | ||||
|         let InstanceTogglableFeatures { metrics, logs_route, contains_filter } = instance_features; | ||||
|         let runtime = Arc::new(RwLock::new(RuntimeTogglableFeatures { | ||||
|             metrics: metrics || persisted_features.metrics, | ||||
|             logs_route: logs_route || persisted_features.logs_route, | ||||
|             contains_filter: contains_filter || persisted_features.contains_filter, | ||||
|             ..persisted_features | ||||
|         })); | ||||
|  | ||||
|         Ok(Self { persisted: runtime_features_db, runtime }) | ||||
|     } | ||||
|  | ||||
|     pub fn put_runtime_features( | ||||
|         &self, | ||||
|         mut wtxn: RwTxn, | ||||
|         features: RuntimeTogglableFeatures, | ||||
|     ) -> Result<()> { | ||||
|         self.persisted.put(&mut wtxn, EXPERIMENTAL_FEATURES, &features)?; | ||||
|         wtxn.commit()?; | ||||
|  | ||||
|         // safe to unwrap, the lock will only fail if: | ||||
|         // 1. requested by the same thread concurrently -> it is called and released in methods that don't call each other | ||||
|         // 2. there's a panic while the thread is held -> it is only used for an assignment here. | ||||
|         let mut toggled_features = self.runtime.write().unwrap(); | ||||
|         *toggled_features = features; | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     fn runtime_features(&self) -> RuntimeTogglableFeatures { | ||||
|         // sound to unwrap, the lock will only fail if: | ||||
|         // 1. requested by the same thread concurrently -> it is called and released in methods that don't call each other | ||||
|         // 2. there's a panic while the thread is held -> it is only used for copying the data here | ||||
|         *self.runtime.read().unwrap() | ||||
|     } | ||||
|  | ||||
|     pub fn features(&self) -> RoFeatures { | ||||
|         RoFeatures::new(self) | ||||
|     } | ||||
| } | ||||
							
								
								
									
										390
									
								
								crates/index-scheduler/src/index_mapper/index_map.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										390
									
								
								crates/index-scheduler/src/index_mapper/index_map.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,390 @@ | ||||
| use std::collections::BTreeMap; | ||||
| use std::path::Path; | ||||
| use std::time::Duration; | ||||
|  | ||||
| use meilisearch_types::heed::{EnvClosingEvent, EnvFlags, EnvOpenOptions}; | ||||
| use meilisearch_types::milli::Index; | ||||
| use time::OffsetDateTime; | ||||
| use uuid::Uuid; | ||||
|  | ||||
| use super::IndexStatus::{self, Available, BeingDeleted, Closing, Missing}; | ||||
| use crate::lru::{InsertionOutcome, LruMap}; | ||||
| use crate::{clamp_to_page_size, Result}; | ||||
|  | ||||
| /// Keep an internally consistent view of the open indexes in memory. | ||||
| /// | ||||
| /// This view is made of an LRU cache that will evict the least frequently used indexes when new indexes are opened. | ||||
| /// Indexes that are being closed (for resizing or due to cache eviction) or deleted cannot be evicted from the cache and | ||||
| /// are stored separately. | ||||
| /// | ||||
| /// This view provides operations to change the state of the index as it is known in memory: | ||||
| /// open an index (making it available for queries), close an index (specifying the new size it should be opened with), | ||||
| /// delete an index. | ||||
| /// | ||||
| /// External consistency with the other bits of data of an index is provided by the `IndexMapper` parent structure. | ||||
| pub struct IndexMap { | ||||
|     /// A LRU map of indexes that are in the open state and available for queries. | ||||
|     available: LruMap<Uuid, Index>, | ||||
|     /// A map of indexes that are not available for queries, either because they are being deleted | ||||
|     /// or because they are being closed. | ||||
|     /// | ||||
|     /// If they are being deleted, the UUID points to `None`. | ||||
|     unavailable: BTreeMap<Uuid, Option<ClosingIndex>>, | ||||
|  | ||||
|     /// A monotonically increasing generation number, used to differentiate between multiple successive index closing requests. | ||||
|     /// | ||||
|     /// Because multiple readers could be waiting on an index to close, the following could theoretically happen: | ||||
|     /// | ||||
|     /// 1. Multiple readers wait for the index closing to occur. | ||||
|     /// 2. One of them "wins the race", takes the lock and then removes the index that finished closing from the map. | ||||
|     /// 3. The index is reopened, but must be closed again (such as being resized again). | ||||
|     /// 4. One reader that "lost the race" in (2) wakes up and tries to take the lock and remove the index from the map. | ||||
|     /// | ||||
|     /// In that situation, the index may or may not have finished closing. The `generation` field allows to remember which | ||||
|     /// closing request was made, so the reader that "lost the race" has the old generation and will need to wait again for the index | ||||
|     /// to close. | ||||
|     generation: usize, | ||||
| } | ||||
|  | ||||
| #[derive(Clone)] | ||||
| pub struct ClosingIndex { | ||||
|     uuid: Uuid, | ||||
|     closing_event: EnvClosingEvent, | ||||
|     enable_mdb_writemap: bool, | ||||
|     map_size: usize, | ||||
|     generation: usize, | ||||
| } | ||||
|  | ||||
| impl ClosingIndex { | ||||
|     /// Waits for the index to be definitely closed. | ||||
|     /// | ||||
|     /// To avoid blocking, users should relinquish their locks to the IndexMap before calling this function. | ||||
|     /// | ||||
|     /// After the index is physically closed, the in memory map must still be updated to take this into account. | ||||
|     /// To do so, a `ReopenableIndex` is returned, that can be used to either definitely close or definitely open | ||||
|     /// the index without waiting anymore. | ||||
|     pub fn wait_timeout(self, timeout: Duration) -> Option<ReopenableIndex> { | ||||
|         self.closing_event.wait_timeout(timeout).then_some(ReopenableIndex { | ||||
|             uuid: self.uuid, | ||||
|             enable_mdb_writemap: self.enable_mdb_writemap, | ||||
|             map_size: self.map_size, | ||||
|             generation: self.generation, | ||||
|         }) | ||||
|     } | ||||
| } | ||||
|  | ||||
| pub struct ReopenableIndex { | ||||
|     uuid: Uuid, | ||||
|     enable_mdb_writemap: bool, | ||||
|     map_size: usize, | ||||
|     generation: usize, | ||||
| } | ||||
|  | ||||
| impl ReopenableIndex { | ||||
|     /// Attempts to reopen the index, which can result in the index being reopened again or not | ||||
|     /// (e.g. if another thread already opened and closed the index again). | ||||
|     /// | ||||
|     /// Use get again on the IndexMap to get the updated status. | ||||
|     /// | ||||
|     /// Fails if the underlying index creation fails. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status                                   | | ||||
|     /// |-----------------|----------------------------------------------| | ||||
|     /// | Missing         | Missing                                      | | ||||
|     /// | BeingDeleted    | BeingDeleted                                 | | ||||
|     /// | Closing         | Available or Closing depending on generation | | ||||
|     /// | Available       | Available                                    | | ||||
|     /// | ||||
|     pub fn reopen(self, map: &mut IndexMap, path: &Path) -> Result<()> { | ||||
|         if let Closing(reopen) = map.get(&self.uuid) { | ||||
|             if reopen.generation != self.generation { | ||||
|                 return Ok(()); | ||||
|             } | ||||
|             map.unavailable.remove(&self.uuid); | ||||
|             map.create(&self.uuid, path, None, self.enable_mdb_writemap, self.map_size)?; | ||||
|         } | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     /// Attempts to close the index, which may or may not result in the index being closed | ||||
|     /// (e.g. if another thread already reopened the index again). | ||||
|     /// | ||||
|     /// Use get again on the IndexMap to get the updated status. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status                                 | | ||||
|     /// |-----------------|--------------------------------------------| | ||||
|     /// | Missing         | Missing                                    | | ||||
|     /// | BeingDeleted    | BeingDeleted                               | | ||||
|     /// | Closing         | Missing or Closing depending on generation | | ||||
|     /// | Available       | Available                                  | | ||||
|     pub fn close(self, map: &mut IndexMap) { | ||||
|         if let Closing(reopen) = map.get(&self.uuid) { | ||||
|             if reopen.generation != self.generation { | ||||
|                 return; | ||||
|             } | ||||
|             map.unavailable.remove(&self.uuid); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl IndexMap { | ||||
|     pub fn new(cap: usize) -> IndexMap { | ||||
|         Self { unavailable: Default::default(), available: LruMap::new(cap), generation: 0 } | ||||
|     } | ||||
|  | ||||
|     /// Gets the current status of an index in the map. | ||||
|     /// | ||||
|     /// If the index is available it can be accessed from the returned status. | ||||
|     pub fn get(&self, uuid: &Uuid) -> IndexStatus { | ||||
|         self.available | ||||
|             .get(uuid) | ||||
|             .map(|index| Available(index.clone())) | ||||
|             .unwrap_or_else(|| self.get_unavailable(uuid)) | ||||
|     } | ||||
|  | ||||
|     fn get_unavailable(&self, uuid: &Uuid) -> IndexStatus { | ||||
|         match self.unavailable.get(uuid) { | ||||
|             Some(Some(reopen)) => Closing(reopen.clone()), | ||||
|             Some(None) => BeingDeleted, | ||||
|             None => Missing, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Attempts to create a new index that wasn't existing before. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status | | ||||
|     /// |-----------------|------------| | ||||
|     /// | Missing         | Available  | | ||||
|     /// | BeingDeleted    | panics     | | ||||
|     /// | Closing         | panics     | | ||||
|     /// | Available       | panics     | | ||||
|     /// | ||||
|     pub fn create( | ||||
|         &mut self, | ||||
|         uuid: &Uuid, | ||||
|         path: &Path, | ||||
|         date: Option<(OffsetDateTime, OffsetDateTime)>, | ||||
|         enable_mdb_writemap: bool, | ||||
|         map_size: usize, | ||||
|     ) -> Result<Index> { | ||||
|         if !matches!(self.get_unavailable(uuid), Missing) { | ||||
|             panic!("Attempt to open an index that was unavailable"); | ||||
|         } | ||||
|         let index = create_or_open_index(path, date, enable_mdb_writemap, map_size)?; | ||||
|         match self.available.insert(*uuid, index.clone()) { | ||||
|             InsertionOutcome::InsertedNew => (), | ||||
|             InsertionOutcome::Evicted(evicted_uuid, evicted_index) => { | ||||
|                 self.close(evicted_uuid, evicted_index, enable_mdb_writemap, 0); | ||||
|             } | ||||
|             InsertionOutcome::Replaced(_) => { | ||||
|                 panic!("Attempt to open an index that was already opened") | ||||
|             } | ||||
|         } | ||||
|         Ok(index) | ||||
|     } | ||||
|  | ||||
|     /// Increases the current generation. See documentation for this field. | ||||
|     /// | ||||
|     /// In the unlikely event that the 2^64 generations would have been exhausted, we simply wrap-around. | ||||
|     /// | ||||
|     /// For this to cause an issue, one should be able to stop a reader in time after it got a `ReopenableIndex` and before it takes the lock | ||||
|     /// to remove it from the unavailable map, and keep the reader in this frozen state for 2^64 closing of other indexes. | ||||
|     /// | ||||
|     /// This seems overwhelmingly impossible to achieve in practice. | ||||
|     fn next_generation(&mut self) -> usize { | ||||
|         self.generation = self.generation.wrapping_add(1); | ||||
|         self.generation | ||||
|     } | ||||
|  | ||||
|     /// Attempts to close an index. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status    | | ||||
|     /// |-----------------|---------------| | ||||
|     /// | Missing         | Missing       | | ||||
|     /// | BeingDeleted    | BeingDeleted  | | ||||
|     /// | Closing         | Closing       | | ||||
|     /// | Available       | Closing       | | ||||
|     /// | ||||
|     pub fn close_for_resize( | ||||
|         &mut self, | ||||
|         uuid: &Uuid, | ||||
|         enable_mdb_writemap: bool, | ||||
|         map_size_growth: usize, | ||||
|     ) { | ||||
|         let Some(index) = self.available.remove(uuid) else { | ||||
|             return; | ||||
|         }; | ||||
|         self.close(*uuid, index, enable_mdb_writemap, map_size_growth); | ||||
|     } | ||||
|  | ||||
|     fn close( | ||||
|         &mut self, | ||||
|         uuid: Uuid, | ||||
|         index: Index, | ||||
|         enable_mdb_writemap: bool, | ||||
|         map_size_growth: usize, | ||||
|     ) { | ||||
|         let map_size = index.map_size() + map_size_growth; | ||||
|         let closing_event = index.prepare_for_closing(); | ||||
|         let generation = self.next_generation(); | ||||
|         self.unavailable.insert( | ||||
|             uuid, | ||||
|             Some(ClosingIndex { uuid, closing_event, enable_mdb_writemap, map_size, generation }), | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /// Attempts to delete and index. | ||||
|     /// | ||||
|     ///  `end_deletion` must be called just after. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status   | Return value                | | ||||
|     /// |-----------------|--------------|-----------------------------| | ||||
|     /// | Missing         | BeingDeleted | Ok(None)                    | | ||||
|     /// | BeingDeleted    | BeingDeleted | Err(None)                   | | ||||
|     /// | Closing         | Closing      | Err(Some(reopen))           | | ||||
|     /// | Available       | BeingDeleted | Ok(Some(env_closing_event)) | | ||||
|     pub fn start_deletion( | ||||
|         &mut self, | ||||
|         uuid: &Uuid, | ||||
|     ) -> std::result::Result<Option<EnvClosingEvent>, Option<ClosingIndex>> { | ||||
|         if let Some(index) = self.available.remove(uuid) { | ||||
|             self.unavailable.insert(*uuid, None); | ||||
|             return Ok(Some(index.prepare_for_closing())); | ||||
|         } | ||||
|         match self.unavailable.remove(uuid) { | ||||
|             Some(Some(reopen)) => Err(Some(reopen)), | ||||
|             Some(None) => Err(None), | ||||
|             None => Ok(None), | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Marks that an index deletion finished. | ||||
|     /// | ||||
|     /// Must be used after calling `start_deletion`. | ||||
|     /// | ||||
|     /// # Status table | ||||
|     /// | ||||
|     /// | Previous Status | New Status | | ||||
|     /// |-----------------|------------| | ||||
|     /// | Missing         | Missing    | | ||||
|     /// | BeingDeleted    | Missing    | | ||||
|     /// | Closing         | panics     | | ||||
|     /// | Available       | panics     | | ||||
|     pub fn end_deletion(&mut self, uuid: &Uuid) { | ||||
|         assert!( | ||||
|             self.available.get(uuid).is_none(), | ||||
|             "Attempt to finish deletion of an index that was not being deleted" | ||||
|         ); | ||||
|         // Do not panic if the index was Missing or BeingDeleted | ||||
|         assert!( | ||||
|             !matches!(self.unavailable.remove(uuid), Some(Some(_))), | ||||
|             "Attempt to finish deletion of an index that was being closed" | ||||
|         ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| /// Create or open an index in the specified path. | ||||
| /// The path *must* exist or an error will be thrown. | ||||
| fn create_or_open_index( | ||||
|     path: &Path, | ||||
|     date: Option<(OffsetDateTime, OffsetDateTime)>, | ||||
|     enable_mdb_writemap: bool, | ||||
|     map_size: usize, | ||||
| ) -> Result<Index> { | ||||
|     let mut options = EnvOpenOptions::new(); | ||||
|     options.map_size(clamp_to_page_size(map_size)); | ||||
|     options.max_readers(1024); | ||||
|     if enable_mdb_writemap { | ||||
|         unsafe { options.flags(EnvFlags::WRITE_MAP) }; | ||||
|     } | ||||
|  | ||||
|     if let Some((created, updated)) = date { | ||||
|         Ok(Index::new_with_creation_dates(options, path, created, updated)?) | ||||
|     } else { | ||||
|         Ok(Index::new(options, path)?) | ||||
|     } | ||||
| } | ||||
|  | ||||
| /// Putting the tests of the LRU down there so we have access to the cache's private members | ||||
| #[cfg(test)] | ||||
| mod tests { | ||||
|  | ||||
|     use meilisearch_types::heed::Env; | ||||
|     use meilisearch_types::Index; | ||||
|     use uuid::Uuid; | ||||
|  | ||||
|     use super::super::IndexMapper; | ||||
|     use crate::tests::IndexSchedulerHandle; | ||||
|     use crate::utils::clamp_to_page_size; | ||||
|     use crate::IndexScheduler; | ||||
|  | ||||
|     impl IndexMapper { | ||||
|         fn test() -> (Self, Env, IndexSchedulerHandle) { | ||||
|             let (index_scheduler, handle) = IndexScheduler::test(true, vec![]); | ||||
|             (index_scheduler.index_mapper, index_scheduler.env, handle) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     fn check_first_unavailable(mapper: &IndexMapper, expected_uuid: Uuid, is_closing: bool) { | ||||
|         let index_map = mapper.index_map.read().unwrap(); | ||||
|         let (uuid, state) = index_map.unavailable.first_key_value().unwrap(); | ||||
|         assert_eq!(uuid, &expected_uuid); | ||||
|         assert_eq!(state.is_some(), is_closing); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn evict_indexes() { | ||||
|         let (mapper, env, _handle) = IndexMapper::test(); | ||||
|         let mut uuids = vec![]; | ||||
|         // LRU cap + 1 | ||||
|         for i in 0..(5 + 1) { | ||||
|             let index_name = format!("index-{i}"); | ||||
|             let wtxn = env.write_txn().unwrap(); | ||||
|             mapper.create_index(wtxn, &index_name, None).unwrap(); | ||||
|             let txn = env.read_txn().unwrap(); | ||||
|             uuids.push(mapper.index_mapping.get(&txn, &index_name).unwrap().unwrap()); | ||||
|         } | ||||
|         // index-0 was evicted | ||||
|         check_first_unavailable(&mapper, uuids[0], true); | ||||
|  | ||||
|         // get back the evicted index | ||||
|         let wtxn = env.write_txn().unwrap(); | ||||
|         mapper.create_index(wtxn, "index-0", None).unwrap(); | ||||
|  | ||||
|         // Least recently used is now index-1 | ||||
|         check_first_unavailable(&mapper, uuids[1], true); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn resize_index() { | ||||
|         let (mapper, env, _handle) = IndexMapper::test(); | ||||
|         let index = mapper.create_index(env.write_txn().unwrap(), "index", None).unwrap(); | ||||
|         assert_index_size(index, mapper.index_base_map_size); | ||||
|  | ||||
|         mapper.resize_index(&env.read_txn().unwrap(), "index").unwrap(); | ||||
|  | ||||
|         let index = mapper.create_index(env.write_txn().unwrap(), "index", None).unwrap(); | ||||
|         assert_index_size(index, mapper.index_base_map_size + mapper.index_growth_amount); | ||||
|  | ||||
|         mapper.resize_index(&env.read_txn().unwrap(), "index").unwrap(); | ||||
|  | ||||
|         let index = mapper.create_index(env.write_txn().unwrap(), "index", None).unwrap(); | ||||
|         assert_index_size(index, mapper.index_base_map_size + mapper.index_growth_amount * 2); | ||||
|     } | ||||
|  | ||||
|     fn assert_index_size(index: Index, expected: usize) { | ||||
|         let expected = clamp_to_page_size(expected); | ||||
|         let index_map_size = index.map_size(); | ||||
|         assert_eq!(index_map_size, expected); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										496
									
								
								crates/index-scheduler/src/index_mapper/mod.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										496
									
								
								crates/index-scheduler/src/index_mapper/mod.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,496 @@ | ||||
| use std::path::PathBuf; | ||||
| use std::sync::{Arc, RwLock}; | ||||
| use std::time::Duration; | ||||
| use std::{fs, thread}; | ||||
|  | ||||
| use meilisearch_types::heed::types::{SerdeJson, Str}; | ||||
| use meilisearch_types::heed::{Database, Env, RoTxn, RwTxn}; | ||||
| use meilisearch_types::milli::update::IndexerConfig; | ||||
| use meilisearch_types::milli::{FieldDistribution, Index}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use time::OffsetDateTime; | ||||
| use tracing::error; | ||||
| use uuid::Uuid; | ||||
|  | ||||
| use self::index_map::IndexMap; | ||||
| use self::IndexStatus::{Available, BeingDeleted, Closing, Missing}; | ||||
| use crate::uuid_codec::UuidCodec; | ||||
| use crate::{Error, Result}; | ||||
|  | ||||
| mod index_map; | ||||
|  | ||||
| const INDEX_MAPPING: &str = "index-mapping"; | ||||
| const INDEX_STATS: &str = "index-stats"; | ||||
|  | ||||
| /// Structure managing meilisearch's indexes. | ||||
| /// | ||||
| /// It is responsible for: | ||||
| /// 1. Creating new indexes | ||||
| /// 2. Opening indexes and storing references to these opened indexes | ||||
| /// 3. Accessing indexes through their uuid | ||||
| /// 4. Mapping a user-defined name to each index uuid. | ||||
| /// | ||||
| /// # Implementation notes | ||||
| /// | ||||
| /// An index exists as 3 bits of data: | ||||
| /// 1. The index data on disk, that can exist in 3 states: Missing, Present, or BeingDeleted. | ||||
| /// 2. The persistent database containing the association between the index' name and its UUID, | ||||
| ///    that can exist in 2 states: Missing or Present. | ||||
| /// 3. The state of the index in the in-memory `IndexMap`, that can exist in multiple states: | ||||
| ///   - Missing | ||||
| ///   - Available | ||||
| ///   - Closing (because an index needs resizing or was evicted from the cache) | ||||
| ///   - BeingDeleted | ||||
| /// | ||||
| /// All of this data should be kept consistent between index operations, which is achieved by the `IndexMapper` | ||||
| /// with the use of the following primitives: | ||||
| /// - A RwLock on the `IndexMap`. | ||||
| /// - Transactions on the association database. | ||||
| /// - ClosingEvent signals emitted when closing an environment. | ||||
| #[derive(Clone)] | ||||
| pub struct IndexMapper { | ||||
|     /// Keep track of the opened indexes. Used mainly by the index resolver. | ||||
|     index_map: Arc<RwLock<IndexMap>>, | ||||
|  | ||||
|     /// Map an index name with an index uuid currently available on disk. | ||||
|     pub(crate) index_mapping: Database<Str, UuidCodec>, | ||||
|     /// Map an index UUID with the cached stats associated to the index. | ||||
|     /// | ||||
|     /// Using an UUID forces to use the index_mapping table to recover the index behind a name, ensuring | ||||
|     /// consistency wrt index swapping. | ||||
|     pub(crate) index_stats: Database<UuidCodec, SerdeJson<IndexStats>>, | ||||
|  | ||||
|     /// Path to the folder where the LMDB environments of each index are. | ||||
|     base_path: PathBuf, | ||||
|     /// The map size an index is opened with on the first time. | ||||
|     index_base_map_size: usize, | ||||
|     /// The quantity by which the map size of an index is incremented upon reopening, in bytes. | ||||
|     index_growth_amount: usize, | ||||
|     /// Whether we open a meilisearch index with the MDB_WRITEMAP option or not. | ||||
|     enable_mdb_writemap: bool, | ||||
|     pub indexer_config: Arc<IndexerConfig>, | ||||
|  | ||||
|     /// A few types of long running batches of tasks that act on a single index set this field | ||||
|     /// so that a handle to the index is available from other threads (search) in an optimized manner. | ||||
|     currently_updating_index: Arc<RwLock<Option<(String, Index)>>>, | ||||
| } | ||||
|  | ||||
| /// Whether the index is available for use or is forbidden to be inserted back in the index map | ||||
| #[allow(clippy::large_enum_variant)] | ||||
| #[derive(Clone)] | ||||
| pub enum IndexStatus { | ||||
|     /// Not currently in the index map. | ||||
|     Missing, | ||||
|     /// Do not insert it back in the index map as it is currently being deleted. | ||||
|     BeingDeleted, | ||||
|     /// Temporarily do not insert the index in the index map as it is currently being resized/evicted from the map. | ||||
|     Closing(index_map::ClosingIndex), | ||||
|     /// You can use the index without worrying about anything. | ||||
|     Available(Index), | ||||
| } | ||||
|  | ||||
| /// The statistics that can be computed from an `Index` object. | ||||
| #[derive(Serialize, Deserialize, Debug)] | ||||
| pub struct IndexStats { | ||||
|     /// Number of documents in the index. | ||||
|     pub number_of_documents: u64, | ||||
|     /// 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 | ||||
|     /// are not returned to the disk after a deletion, this number is typically larger than | ||||
|     /// `used_database_size` that only includes the size of the used pages. | ||||
|     pub database_size: u64, | ||||
|     /// Size taken by the used pages of the index' DB, in bytes. | ||||
|     /// | ||||
|     /// As the DB backend does not return to the disk the pages that are not currently used by the DB, | ||||
|     /// this value is typically smaller than `database_size`. | ||||
|     pub used_database_size: u64, | ||||
|     /// Association of every field name with the number of times it occurs in the documents. | ||||
|     pub field_distribution: FieldDistribution, | ||||
|     /// Creation date of the index. | ||||
|     #[serde(with = "time::serde::rfc3339")] | ||||
|     pub created_at: OffsetDateTime, | ||||
|     /// Date of the last update of the index. | ||||
|     #[serde(with = "time::serde::rfc3339")] | ||||
|     pub updated_at: OffsetDateTime, | ||||
| } | ||||
|  | ||||
| impl IndexStats { | ||||
|     /// Compute the stats of an index | ||||
|     /// | ||||
|     /// # Parameters | ||||
|     /// | ||||
|     /// - rtxn: a RO transaction for the index, obtained from `Index::read_txn()`. | ||||
|     pub fn new(index: &Index, rtxn: &RoTxn) -> Result<Self> { | ||||
|         Ok(IndexStats { | ||||
|             number_of_documents: index.number_of_documents(rtxn)?, | ||||
|             database_size: index.on_disk_size()?, | ||||
|             used_database_size: index.used_size()?, | ||||
|             field_distribution: index.field_distribution(rtxn)?, | ||||
|             created_at: index.created_at(rtxn)?, | ||||
|             updated_at: index.updated_at(rtxn)?, | ||||
|         }) | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl IndexMapper { | ||||
|     pub fn new( | ||||
|         env: &Env, | ||||
|         base_path: PathBuf, | ||||
|         index_base_map_size: usize, | ||||
|         index_growth_amount: usize, | ||||
|         index_count: usize, | ||||
|         enable_mdb_writemap: bool, | ||||
|         indexer_config: IndexerConfig, | ||||
|     ) -> Result<Self> { | ||||
|         let mut wtxn = env.write_txn()?; | ||||
|         let index_mapping = env.create_database(&mut wtxn, Some(INDEX_MAPPING))?; | ||||
|         let index_stats = env.create_database(&mut wtxn, Some(INDEX_STATS))?; | ||||
|         wtxn.commit()?; | ||||
|  | ||||
|         Ok(Self { | ||||
|             index_map: Arc::new(RwLock::new(IndexMap::new(index_count))), | ||||
|             index_mapping, | ||||
|             index_stats, | ||||
|             base_path, | ||||
|             index_base_map_size, | ||||
|             index_growth_amount, | ||||
|             enable_mdb_writemap, | ||||
|             indexer_config: Arc::new(indexer_config), | ||||
|             currently_updating_index: Default::default(), | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     /// Get or create the index. | ||||
|     pub fn create_index( | ||||
|         &self, | ||||
|         mut wtxn: RwTxn, | ||||
|         name: &str, | ||||
|         date: Option<(OffsetDateTime, OffsetDateTime)>, | ||||
|     ) -> Result<Index> { | ||||
|         match self.index(&wtxn, name) { | ||||
|             Ok(index) => { | ||||
|                 wtxn.commit()?; | ||||
|                 Ok(index) | ||||
|             } | ||||
|             Err(Error::IndexNotFound(_)) => { | ||||
|                 let uuid = Uuid::new_v4(); | ||||
|                 self.index_mapping.put(&mut wtxn, name, &uuid)?; | ||||
|  | ||||
|                 let index_path = self.base_path.join(uuid.to_string()); | ||||
|                 fs::create_dir_all(&index_path)?; | ||||
|  | ||||
|                 // Error if the UUIDv4 somehow already exists in the map, since it should be fresh. | ||||
|                 // This is very unlikely to happen in practice. | ||||
|                 // TODO: it would be better to lazily create the index. But we need an Index::open function for milli. | ||||
|                 let index = self.index_map.write().unwrap().create( | ||||
|                     &uuid, | ||||
|                     &index_path, | ||||
|                     date, | ||||
|                     self.enable_mdb_writemap, | ||||
|                     self.index_base_map_size, | ||||
|                 )?; | ||||
|  | ||||
|                 wtxn.commit()?; | ||||
|  | ||||
|                 Ok(index) | ||||
|             } | ||||
|             error => error, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Removes the index from the mapping table and the in-memory index map | ||||
|     /// but keeps the associated tasks. | ||||
|     pub fn delete_index(&self, mut wtxn: RwTxn, name: &str) -> Result<()> { | ||||
|         let uuid = self | ||||
|             .index_mapping | ||||
|             .get(&wtxn, name)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(name.to_string()))?; | ||||
|  | ||||
|         // Not an error if the index had no stats in cache. | ||||
|         self.index_stats.delete(&mut wtxn, &uuid)?; | ||||
|  | ||||
|         // Once we retrieved the UUID of the index we remove it from the mapping table. | ||||
|         assert!(self.index_mapping.delete(&mut wtxn, name)?); | ||||
|  | ||||
|         wtxn.commit()?; | ||||
|  | ||||
|         let mut tries = 0; | ||||
|         // Attempts to remove the index from the in-memory index map in a loop. | ||||
|         // | ||||
|         // If the index is currently being closed, we will wait for it to be closed and retry getting it in a subsequent | ||||
|         // loop iteration. | ||||
|         // | ||||
|         // We make 100 attempts before giving up. | ||||
|         // This could happen in the following situations: | ||||
|         // | ||||
|         // 1. There is a bug preventing the index from being correctly closed, or us from detecting this. | ||||
|         // 2. A user of the index is keeping it open for more than 600 seconds. This could happen e.g. during a pathological search. | ||||
|         //    This can not be caused by indexation because deleting an index happens in the scheduler itself, so cannot be concurrent with indexation. | ||||
|         // | ||||
|         // In these situations, reporting the error through a panic is in order. | ||||
|         let closing_event = loop { | ||||
|             let mut lock = self.index_map.write().unwrap(); | ||||
|             match lock.start_deletion(&uuid) { | ||||
|                 Ok(env_closing) => break env_closing, | ||||
|                 Err(Some(reopen)) => { | ||||
|                     // drop the lock here so that we don't synchronously wait for the index to close. | ||||
|                     drop(lock); | ||||
|                     tries += 1; | ||||
|                     if tries >= 100 { | ||||
|                         panic!("Too many attempts to close index {name} prior to deletion.") | ||||
|                     } | ||||
|                     let reopen = if let Some(reopen) = reopen.wait_timeout(Duration::from_secs(6)) { | ||||
|                         reopen | ||||
|                     } else { | ||||
|                         continue; | ||||
|                     }; | ||||
|                     reopen.close(&mut self.index_map.write().unwrap()); | ||||
|                     continue; | ||||
|                 } | ||||
|                 Err(None) => return Ok(()), | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         let index_map = self.index_map.clone(); | ||||
|         let index_path = self.base_path.join(uuid.to_string()); | ||||
|         let index_name = name.to_string(); | ||||
|         thread::Builder::new() | ||||
|             .name(String::from("index_deleter")) | ||||
|             .spawn(move || { | ||||
|                 // We first wait to be sure that the previously opened index is effectively closed. | ||||
|                 // This can take a lot of time, this is why we do that in a separate thread. | ||||
|                 if let Some(closing_event) = closing_event { | ||||
|                     closing_event.wait(); | ||||
|                 } | ||||
|  | ||||
|                 // Then we remove the content from disk. | ||||
|                 if let Err(e) = fs::remove_dir_all(&index_path) { | ||||
|                     error!( | ||||
|                         "An error happened when deleting the index {} ({}): {}", | ||||
|                         index_name, uuid, e | ||||
|                     ); | ||||
|                 } | ||||
|  | ||||
|                 // Finally we remove the entry from the index map. | ||||
|                 index_map.write().unwrap().end_deletion(&uuid); | ||||
|             }) | ||||
|             .unwrap(); | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     pub fn exists(&self, rtxn: &RoTxn, name: &str) -> Result<bool> { | ||||
|         Ok(self.index_mapping.get(rtxn, name)?.is_some()) | ||||
|     } | ||||
|  | ||||
|     /// Resizes the maximum size of the specified index to the double of its current maximum size. | ||||
|     /// | ||||
|     /// This operation involves closing the underlying environment and so can take a long time to complete. | ||||
|     /// | ||||
|     /// # Panics | ||||
|     /// | ||||
|     /// - If the Index corresponding to the passed name is concurrently being deleted/resized or cannot be found in the | ||||
|     ///   in memory hash map. | ||||
|     pub fn resize_index(&self, rtxn: &RoTxn, name: &str) -> Result<()> { | ||||
|         let uuid = self | ||||
|             .index_mapping | ||||
|             .get(rtxn, name)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(name.to_string()))?; | ||||
|  | ||||
|         // We remove the index from the in-memory index map. | ||||
|         self.index_map.write().unwrap().close_for_resize( | ||||
|             &uuid, | ||||
|             self.enable_mdb_writemap, | ||||
|             self.index_growth_amount, | ||||
|         ); | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     /// Return an index, may open it if it wasn't already opened. | ||||
|     pub fn index(&self, rtxn: &RoTxn, name: &str) -> Result<Index> { | ||||
|         if let Some((current_name, current_index)) = | ||||
|             self.currently_updating_index.read().unwrap().as_ref() | ||||
|         { | ||||
|             if current_name == name { | ||||
|                 return Ok(current_index.clone()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         let uuid = self | ||||
|             .index_mapping | ||||
|             .get(rtxn, name)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(name.to_string()))?; | ||||
|  | ||||
|         let mut tries = 0; | ||||
|         // attempts to open the index in a loop. | ||||
|         // | ||||
|         // If the index is currently being closed, we will wait for it to be closed and retry getting it in a subsequent | ||||
|         // loop iteration. | ||||
|         // | ||||
|         // We make 100 attempts before giving up. | ||||
|         // This could happen in the following situations: | ||||
|         // | ||||
|         // 1. There is a bug preventing the index from being correctly closed, or us from detecting it was. | ||||
|         // 2. A user of the index is keeping it open for more than 600 seconds. This could happen e.g. during a long indexation, | ||||
|         //    a pathological search, and so on. | ||||
|         // | ||||
|         // In these situations, reporting the error through a panic is in order. | ||||
|         let index = loop { | ||||
|             tries += 1; | ||||
|             if tries > 100 { | ||||
|                 panic!("Too many spurious wake ups while trying to open the index {name}"); | ||||
|             } | ||||
|  | ||||
|             // we get the index here to drop the lock before entering the match | ||||
|             let index = self.index_map.read().unwrap().get(&uuid); | ||||
|  | ||||
|             match index { | ||||
|                 Available(index) => break index, | ||||
|                 Closing(reopen) => { | ||||
|                     // Avoiding deadlocks: no lock taken while doing this operation. | ||||
|                     let reopen = if let Some(reopen) = reopen.wait_timeout(Duration::from_secs(6)) { | ||||
|                         reopen | ||||
|                     } else { | ||||
|                         continue; | ||||
|                     }; | ||||
|                     let index_path = self.base_path.join(uuid.to_string()); | ||||
|                     // take the lock to reopen the environment. | ||||
|                     reopen.reopen(&mut self.index_map.write().unwrap(), &index_path)?; | ||||
|                     continue; | ||||
|                 } | ||||
|                 BeingDeleted => return Err(Error::IndexNotFound(name.to_string())), | ||||
|                 // since we're lazy, it's possible that the index has not been opened yet. | ||||
|                 Missing => { | ||||
|                     let mut index_map = self.index_map.write().unwrap(); | ||||
|                     // between the read lock and the write lock it's not impossible | ||||
|                     // that someone already opened the index (eg if two searches happen | ||||
|                     // at the same time), thus before opening it we check a second time | ||||
|                     // if it's not already there. | ||||
|                     match index_map.get(&uuid) { | ||||
|                         Missing => { | ||||
|                             let index_path = self.base_path.join(uuid.to_string()); | ||||
|  | ||||
|                             break index_map.create( | ||||
|                                 &uuid, | ||||
|                                 &index_path, | ||||
|                                 None, | ||||
|                                 self.enable_mdb_writemap, | ||||
|                                 self.index_base_map_size, | ||||
|                             )?; | ||||
|                         } | ||||
|                         Available(index) => break index, | ||||
|                         Closing(_) => { | ||||
|                             // the reopening will be handled in the next loop operation | ||||
|                             continue; | ||||
|                         } | ||||
|                         BeingDeleted => return Err(Error::IndexNotFound(name.to_string())), | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         Ok(index) | ||||
|     } | ||||
|  | ||||
|     /// Attempts `f` for each index that exists in the index mapper. | ||||
|     /// | ||||
|     /// It is preferable to use this function rather than a loop that opens all indexes, as a way to avoid having all indexes opened, | ||||
|     /// which is unsupported in general. | ||||
|     /// | ||||
|     /// Since `f` is allowed to return a result, and `Index` is cloneable, it is still possible to wrongly build e.g. a vector of | ||||
|     /// all the indexes, but this function makes it harder and so less likely to do accidentally. | ||||
|     pub fn try_for_each_index<U, V>( | ||||
|         &self, | ||||
|         rtxn: &RoTxn, | ||||
|         mut f: impl FnMut(&str, &Index) -> Result<U>, | ||||
|     ) -> Result<V> | ||||
|     where | ||||
|         V: FromIterator<U>, | ||||
|     { | ||||
|         self.index_mapping | ||||
|             .iter(rtxn)? | ||||
|             .map(|res| { | ||||
|                 res.map_err(Error::from) | ||||
|                     .and_then(|(name, _)| self.index(rtxn, name).and_then(|index| f(name, &index))) | ||||
|             }) | ||||
|             .collect() | ||||
|     } | ||||
|  | ||||
|     /// Return the name of all indexes without opening them. | ||||
|     pub fn index_names(&self, rtxn: &RoTxn) -> Result<Vec<String>> { | ||||
|         self.index_mapping | ||||
|             .iter(rtxn)? | ||||
|             .map(|res| res.map_err(Error::from).map(|(name, _)| name.to_string())) | ||||
|             .collect() | ||||
|     } | ||||
|  | ||||
|     /// Swap two index names. | ||||
|     pub fn swap(&self, wtxn: &mut RwTxn, lhs: &str, rhs: &str) -> Result<()> { | ||||
|         let lhs_uuid = self | ||||
|             .index_mapping | ||||
|             .get(wtxn, lhs)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(lhs.to_string()))?; | ||||
|         let rhs_uuid = self | ||||
|             .index_mapping | ||||
|             .get(wtxn, rhs)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(rhs.to_string()))?; | ||||
|  | ||||
|         self.index_mapping.put(wtxn, lhs, &rhs_uuid)?; | ||||
|         self.index_mapping.put(wtxn, rhs, &lhs_uuid)?; | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     /// The stats of an index. | ||||
|     /// | ||||
|     /// If available in the cache, they are directly returned. | ||||
|     /// Otherwise, the `Index` is opened to compute the stats on the fly (the result is not cached). | ||||
|     /// The stats for an index are cached after each `Index` update. | ||||
|     pub fn stats_of(&self, rtxn: &RoTxn, index_uid: &str) -> Result<IndexStats> { | ||||
|         let uuid = self | ||||
|             .index_mapping | ||||
|             .get(rtxn, index_uid)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(index_uid.to_string()))?; | ||||
|  | ||||
|         match self.index_stats.get(rtxn, &uuid)? { | ||||
|             Some(stats) => Ok(stats), | ||||
|             None => { | ||||
|                 let index = self.index(rtxn, index_uid)?; | ||||
|                 let index_rtxn = index.read_txn()?; | ||||
|                 IndexStats::new(&index, &index_rtxn) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Stores the new stats for an index. | ||||
|     /// | ||||
|     /// Expected usage is to compute the stats the index using `IndexStats::new`, the pass it to this function. | ||||
|     pub fn store_stats_of( | ||||
|         &self, | ||||
|         wtxn: &mut RwTxn, | ||||
|         index_uid: &str, | ||||
|         stats: &IndexStats, | ||||
|     ) -> Result<()> { | ||||
|         let uuid = self | ||||
|             .index_mapping | ||||
|             .get(wtxn, index_uid)? | ||||
|             .ok_or_else(|| Error::IndexNotFound(index_uid.to_string()))?; | ||||
|  | ||||
|         self.index_stats.put(wtxn, &uuid, stats)?; | ||||
|         Ok(()) | ||||
|     } | ||||
|  | ||||
|     pub fn index_exists(&self, rtxn: &RoTxn, name: &str) -> Result<bool> { | ||||
|         Ok(self.index_mapping.get(rtxn, name)?.is_some()) | ||||
|     } | ||||
|  | ||||
|     pub fn indexer_config(&self) -> &IndexerConfig { | ||||
|         &self.indexer_config | ||||
|     } | ||||
|  | ||||
|     pub fn set_currently_updating_index(&self, index: Option<(String, Index)>) { | ||||
|         *self.currently_updating_index.write().unwrap() = index; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										287
									
								
								crates/index-scheduler/src/insta_snapshot.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										287
									
								
								crates/index-scheduler/src/insta_snapshot.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,287 @@ | ||||
| use std::collections::BTreeSet; | ||||
| use std::fmt::Write; | ||||
|  | ||||
| use meilisearch_types::heed::types::{SerdeBincode, SerdeJson, Str}; | ||||
| use meilisearch_types::heed::{Database, RoTxn}; | ||||
| use meilisearch_types::milli::{CboRoaringBitmapCodec, RoaringBitmapCodec, BEU32}; | ||||
| use meilisearch_types::tasks::{Details, Task}; | ||||
| use roaring::RoaringBitmap; | ||||
|  | ||||
| use crate::index_mapper::IndexMapper; | ||||
| use crate::{IndexScheduler, Kind, Status, BEI128}; | ||||
|  | ||||
| pub fn snapshot_index_scheduler(scheduler: &IndexScheduler) -> String { | ||||
|     // Since we'll snapshot the index right afterward, we don't need to ensure it's internally consistent for every run. | ||||
|     // We can only do it for the release run, where the function runs way faster. | ||||
|     #[cfg(not(debug_assertions))] | ||||
|     scheduler.assert_internally_consistent(); | ||||
|  | ||||
|     let IndexScheduler { | ||||
|         autobatching_enabled, | ||||
|         cleanup_enabled: _, | ||||
|         must_stop_processing: _, | ||||
|         processing_tasks, | ||||
|         file_store, | ||||
|         env, | ||||
|         all_tasks, | ||||
|         status, | ||||
|         kind, | ||||
|         index_tasks, | ||||
|         canceled_by, | ||||
|         enqueued_at, | ||||
|         started_at, | ||||
|         finished_at, | ||||
|         index_mapper, | ||||
|         features: _, | ||||
|         max_number_of_tasks: _, | ||||
|         max_number_of_batched_tasks: _, | ||||
|         wake_up: _, | ||||
|         dumps_path: _, | ||||
|         snapshots_path: _, | ||||
|         auth_path: _, | ||||
|         version_file_path: _, | ||||
|         webhook_url: _, | ||||
|         webhook_authorization_header: _, | ||||
|         test_breakpoint_sdr: _, | ||||
|         planned_failures: _, | ||||
|         run_loop_iteration: _, | ||||
|         embedders: _, | ||||
|     } = scheduler; | ||||
|  | ||||
|     let rtxn = env.read_txn().unwrap(); | ||||
|  | ||||
|     let mut snap = String::new(); | ||||
|  | ||||
|     let processing_tasks = processing_tasks.read().unwrap().processing.clone(); | ||||
|     snap.push_str(&format!("### Autobatching Enabled = {autobatching_enabled}\n")); | ||||
|     snap.push_str("### Processing Tasks:\n"); | ||||
|     snap.push_str(&snapshot_bitmap(&processing_tasks)); | ||||
|     snap.push_str("\n----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### All Tasks:\n"); | ||||
|     snap.push_str(&snapshot_all_tasks(&rtxn, *all_tasks)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Status:\n"); | ||||
|     snap.push_str(&snapshot_status(&rtxn, *status)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Kind:\n"); | ||||
|     snap.push_str(&snapshot_kind(&rtxn, *kind)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Index Tasks:\n"); | ||||
|     snap.push_str(&snapshot_index_tasks(&rtxn, *index_tasks)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Index Mapper:\n"); | ||||
|     snap.push_str(&snapshot_index_mapper(&rtxn, index_mapper)); | ||||
|     snap.push_str("\n----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Canceled By:\n"); | ||||
|     snap.push_str(&snapshot_canceled_by(&rtxn, *canceled_by)); | ||||
|     snap.push_str("\n----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Enqueued At:\n"); | ||||
|     snap.push_str(&snapshot_date_db(&rtxn, *enqueued_at)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Started At:\n"); | ||||
|     snap.push_str(&snapshot_date_db(&rtxn, *started_at)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### Finished At:\n"); | ||||
|     snap.push_str(&snapshot_date_db(&rtxn, *finished_at)); | ||||
|     snap.push_str("----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap.push_str("### File Store:\n"); | ||||
|     snap.push_str(&snapshot_file_store(file_store)); | ||||
|     snap.push_str("\n----------------------------------------------------------------------\n"); | ||||
|  | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_file_store(file_store: &file_store::FileStore) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     // we store the uuid in a `BTreeSet` to keep them ordered. | ||||
|     let all_uuids = file_store.all_uuids().unwrap().collect::<Result<BTreeSet<_>, _>>().unwrap(); | ||||
|     for uuid in all_uuids { | ||||
|         snap.push_str(&format!("{uuid}\n")); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_bitmap(r: &RoaringBitmap) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     snap.push('['); | ||||
|     for x in r { | ||||
|         snap.push_str(&format!("{x},")); | ||||
|     } | ||||
|     snap.push(']'); | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_all_tasks(rtxn: &RoTxn, db: Database<BEU32, SerdeJson<Task>>) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (task_id, task) = next.unwrap(); | ||||
|         snap.push_str(&format!("{task_id} {}\n", snapshot_task(&task))); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_date_db(rtxn: &RoTxn, db: Database<BEI128, CboRoaringBitmapCodec>) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (_timestamp, task_ids) = next.unwrap(); | ||||
|         snap.push_str(&format!("[timestamp] {}\n", snapshot_bitmap(&task_ids))); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_task(task: &Task) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let Task { | ||||
|         uid, | ||||
|         enqueued_at: _, | ||||
|         started_at: _, | ||||
|         finished_at: _, | ||||
|         error, | ||||
|         canceled_by, | ||||
|         details, | ||||
|         status, | ||||
|         kind, | ||||
|     } = task; | ||||
|     snap.push('{'); | ||||
|     snap.push_str(&format!("uid: {uid}, ")); | ||||
|     snap.push_str(&format!("status: {status}, ")); | ||||
|     if let Some(canceled_by) = canceled_by { | ||||
|         snap.push_str(&format!("canceled_by: {canceled_by}, ")); | ||||
|     } | ||||
|     if let Some(error) = error { | ||||
|         snap.push_str(&format!("error: {error:?}, ")); | ||||
|     } | ||||
|     if let Some(details) = details { | ||||
|         snap.push_str(&format!("details: {}, ", &snapshot_details(details))); | ||||
|     } | ||||
|     snap.push_str(&format!("kind: {kind:?}")); | ||||
|  | ||||
|     snap.push('}'); | ||||
|     snap | ||||
| } | ||||
|  | ||||
| fn snapshot_details(d: &Details) -> String { | ||||
|     match d { | ||||
|         Details::DocumentAdditionOrUpdate { | ||||
|             received_documents, | ||||
|             indexed_documents, | ||||
|         } => { | ||||
|             format!("{{ received_documents: {received_documents}, indexed_documents: {indexed_documents:?} }}") | ||||
|         } | ||||
|         Details::DocumentEdition { | ||||
|             deleted_documents, | ||||
|             edited_documents, | ||||
|             original_filter, | ||||
|             context, | ||||
|             function, | ||||
|         } => { | ||||
|             format!( | ||||
|                 "{{ deleted_documents: {deleted_documents:?}, edited_documents: {edited_documents:?}, context: {context:?}, function: {function:?}, original_filter: {original_filter:?} }}" | ||||
|             ) | ||||
|         } | ||||
|         Details::SettingsUpdate { settings } => { | ||||
|             format!("{{ settings: {settings:?} }}") | ||||
|         } | ||||
|         Details::IndexInfo { primary_key } => { | ||||
|             format!("{{ primary_key: {primary_key:?} }}") | ||||
|         } | ||||
|         Details::DocumentDeletion { | ||||
|             provided_ids: received_document_ids, | ||||
|             deleted_documents, | ||||
|         } => format!("{{ received_document_ids: {received_document_ids}, deleted_documents: {deleted_documents:?} }}"), | ||||
|         Details::DocumentDeletionByFilter { original_filter, deleted_documents } => format!( | ||||
|            "{{ original_filter: {original_filter}, deleted_documents: {deleted_documents:?} }}" | ||||
|         ), | ||||
|         Details::ClearAll { deleted_documents } => { | ||||
|             format!("{{ deleted_documents: {deleted_documents:?} }}") | ||||
|         }, | ||||
|         Details::TaskCancelation { | ||||
|             matched_tasks, | ||||
|             canceled_tasks, | ||||
|             original_filter, | ||||
|         } => { | ||||
|             format!("{{ matched_tasks: {matched_tasks:?}, canceled_tasks: {canceled_tasks:?}, original_filter: {original_filter:?} }}") | ||||
|         } | ||||
|         Details::TaskDeletion { | ||||
|             matched_tasks, | ||||
|             deleted_tasks, | ||||
|             original_filter, | ||||
|         } => { | ||||
|             format!("{{ matched_tasks: {matched_tasks:?}, deleted_tasks: {deleted_tasks:?}, original_filter: {original_filter:?} }}") | ||||
|         }, | ||||
|         Details::Dump { dump_uid } => { | ||||
|             format!("{{ dump_uid: {dump_uid:?} }}") | ||||
|         }, | ||||
|         Details::IndexSwap { swaps } => { | ||||
|             format!("{{ swaps: {swaps:?} }}") | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| pub fn snapshot_status( | ||||
|     rtxn: &RoTxn, | ||||
|     db: Database<SerdeBincode<Status>, RoaringBitmapCodec>, | ||||
| ) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (status, task_ids) = next.unwrap(); | ||||
|         writeln!(snap, "{status} {}", snapshot_bitmap(&task_ids)).unwrap(); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
| pub fn snapshot_kind(rtxn: &RoTxn, db: Database<SerdeBincode<Kind>, RoaringBitmapCodec>) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (kind, task_ids) = next.unwrap(); | ||||
|         let kind = serde_json::to_string(&kind).unwrap(); | ||||
|         writeln!(snap, "{kind} {}", snapshot_bitmap(&task_ids)).unwrap(); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
|  | ||||
| pub fn snapshot_index_tasks(rtxn: &RoTxn, db: Database<Str, RoaringBitmapCodec>) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (index, task_ids) = next.unwrap(); | ||||
|         writeln!(snap, "{index} {}", snapshot_bitmap(&task_ids)).unwrap(); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
| pub fn snapshot_canceled_by(rtxn: &RoTxn, db: Database<BEU32, RoaringBitmapCodec>) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let iter = db.iter(rtxn).unwrap(); | ||||
|     for next in iter { | ||||
|         let (kind, task_ids) = next.unwrap(); | ||||
|         writeln!(snap, "{kind} {}", snapshot_bitmap(&task_ids)).unwrap(); | ||||
|     } | ||||
|     snap | ||||
| } | ||||
| pub fn snapshot_index_mapper(rtxn: &RoTxn, mapper: &IndexMapper) -> String { | ||||
|     let mut s = String::new(); | ||||
|     let names = mapper.index_names(rtxn).unwrap(); | ||||
|  | ||||
|     for name in names { | ||||
|         let stats = mapper.stats_of(rtxn, &name).unwrap(); | ||||
|         s.push_str(&format!( | ||||
|             "{name}: {{ number_of_documents: {}, field_distribution: {:?} }}\n", | ||||
|             stats.number_of_documents, stats.field_distribution | ||||
|         )); | ||||
|     } | ||||
|  | ||||
|     s | ||||
| } | ||||
							
								
								
									
										5942
									
								
								crates/index-scheduler/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5942
									
								
								crates/index-scheduler/src/lib.rs
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										203
									
								
								crates/index-scheduler/src/lru.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								crates/index-scheduler/src/lru.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,203 @@ | ||||
| //! Thread-safe `Vec`-backend LRU cache using [`std::sync::atomic::AtomicU64`] for synchronization. | ||||
|  | ||||
| use std::sync::atomic::{AtomicU64, Ordering}; | ||||
|  | ||||
| /// Thread-safe `Vec`-backend LRU cache | ||||
| #[derive(Debug)] | ||||
| pub struct Lru<T> { | ||||
|     data: Vec<(AtomicU64, T)>, | ||||
|     generation: AtomicU64, | ||||
|     cap: usize, | ||||
| } | ||||
|  | ||||
| impl<T> Lru<T> { | ||||
|     /// Creates a new LRU cache with the specified capacity. | ||||
|     /// | ||||
|     /// The capacity is allocated up-front, and will never change through a [`Self::put`] operation. | ||||
|     /// | ||||
|     /// # Panics | ||||
|     /// | ||||
|     /// - If the capacity is 0. | ||||
|     /// - If the capacity exceeds `isize::MAX` bytes. | ||||
|     pub fn new(cap: usize) -> Self { | ||||
|         assert_ne!(cap, 0, "The capacity of a cache cannot be 0"); | ||||
|         Self { | ||||
|             // Note: since the element of the vector contains an AtomicU64, it is definitely not zero-sized so cap will never be usize::MAX. | ||||
|             data: Vec::with_capacity(cap), | ||||
|             generation: AtomicU64::new(0), | ||||
|             cap, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// The capacity of this LRU cache, that is the maximum number of elements it can hold before evicting elements from the cache. | ||||
|     /// | ||||
|     /// The cache will contain at most this number of elements at any given time. | ||||
|     pub fn capacity(&self) -> usize { | ||||
|         self.cap | ||||
|     } | ||||
|  | ||||
|     fn next_generation(&self) -> u64 { | ||||
|         // Acquire so this "happens-before" any potential store to a data cell (with Release ordering) | ||||
|         let generation = self.generation.fetch_add(1, Ordering::Acquire); | ||||
|         generation + 1 | ||||
|     } | ||||
|  | ||||
|     fn next_generation_mut(&mut self) -> u64 { | ||||
|         let generation = self.generation.get_mut(); | ||||
|         *generation += 1; | ||||
|         *generation | ||||
|     } | ||||
|  | ||||
|     /// Add a value in the cache, evicting an older value if necessary. | ||||
|     /// | ||||
|     /// If a value was evicted from the cache, it is returned. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - If the cache is full, then linear in the capacity. | ||||
|     /// - Otherwise constant. | ||||
|     pub fn put(&mut self, value: T) -> Option<T> { | ||||
|         // no need for a memory fence: we assume that whichever mechanism provides us synchronization | ||||
|         // (very probably, a RwLock) takes care of fencing for us. | ||||
|  | ||||
|         let next_generation = self.next_generation_mut(); | ||||
|         let evicted = if self.is_full() { self.pop() } else { None }; | ||||
|         self.data.push((AtomicU64::new(next_generation), value)); | ||||
|         evicted | ||||
|     } | ||||
|  | ||||
|     /// Evict the oldest value from the cache. | ||||
|     /// | ||||
|     /// If the cache is empty, `None` will be returned. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - Linear in the capacity of the cache. | ||||
|     pub fn pop(&mut self) -> Option<T> { | ||||
|         // Don't use `Iterator::min_by_key` that provides shared references to its elements, | ||||
|         // so that we can get an exclusive one. | ||||
|         // This allows to handles the `AtomicU64`s as normal integers without using atomic instructions. | ||||
|         let mut min_generation_index = None; | ||||
|         for (index, (generation, _)) in self.data.iter_mut().enumerate() { | ||||
|             let generation = *generation.get_mut(); | ||||
|             if let Some((_, min_generation)) = min_generation_index { | ||||
|                 if min_generation > generation { | ||||
|                     min_generation_index = Some((index, generation)); | ||||
|                 } | ||||
|             } else { | ||||
|                 min_generation_index = Some((index, generation)) | ||||
|             } | ||||
|         } | ||||
|         min_generation_index.map(|(min_index, _)| self.data.swap_remove(min_index).1) | ||||
|     } | ||||
|  | ||||
|     /// The current number of elements in the cache. | ||||
|     /// | ||||
|     /// This value is guaranteed to be less than or equal to [`Self::capacity`]. | ||||
|     pub fn len(&self) -> usize { | ||||
|         self.data.len() | ||||
|     } | ||||
|  | ||||
|     /// Returns `true` if putting any additional element in the cache would cause the eviction of an element. | ||||
|     pub fn is_full(&self) -> bool { | ||||
|         self.len() == self.capacity() | ||||
|     } | ||||
| } | ||||
|  | ||||
| pub struct LruMap<K, V>(Lru<(K, V)>); | ||||
|  | ||||
| impl<K, V> LruMap<K, V> | ||||
| where | ||||
|     K: Eq, | ||||
| { | ||||
|     /// Creates a new LRU cache map with the specified capacity. | ||||
|     /// | ||||
|     /// The capacity is allocated up-front, and will never change through a [`Self::insert`] operation. | ||||
|     /// | ||||
|     /// # Panics | ||||
|     /// | ||||
|     /// - If the capacity is 0. | ||||
|     /// - If the capacity exceeds `isize::MAX` bytes. | ||||
|     pub fn new(cap: usize) -> Self { | ||||
|         Self(Lru::new(cap)) | ||||
|     } | ||||
|  | ||||
|     /// Gets a value in the cache map by its key. | ||||
|     /// | ||||
|     /// If no value matches, `None` will be returned. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - Linear in the capacity of the cache. | ||||
|     pub fn get(&self, key: &K) -> Option<&V> { | ||||
|         for (generation, (candidate, value)) in self.0.data.iter() { | ||||
|             if key == candidate { | ||||
|                 generation.store(self.0.next_generation(), Ordering::Release); | ||||
|                 return Some(value); | ||||
|             } | ||||
|         } | ||||
|         None | ||||
|     } | ||||
|  | ||||
|     /// Gets a value in the cache map by its key. | ||||
|     /// | ||||
|     /// If no value matches, `None` will be returned. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - Linear in the capacity of the cache. | ||||
|     pub fn get_mut(&mut self, key: &K) -> Option<&mut V> { | ||||
|         let next_generation = self.0.next_generation_mut(); | ||||
|         for (generation, (candidate, value)) in self.0.data.iter_mut() { | ||||
|             if key == candidate { | ||||
|                 *generation.get_mut() = next_generation; | ||||
|                 return Some(value); | ||||
|             } | ||||
|         } | ||||
|         None | ||||
|     } | ||||
|  | ||||
|     /// Inserts a value in the cache map by its key, replacing any existing value and returning any evicted value. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - Linear in the capacity of the cache. | ||||
|     pub fn insert(&mut self, key: K, mut value: V) -> InsertionOutcome<K, V> { | ||||
|         match self.get_mut(&key) { | ||||
|             Some(old_value) => { | ||||
|                 std::mem::swap(old_value, &mut value); | ||||
|                 InsertionOutcome::Replaced(value) | ||||
|             } | ||||
|             None => match self.0.put((key, value)) { | ||||
|                 Some((key, value)) => InsertionOutcome::Evicted(key, value), | ||||
|                 None => InsertionOutcome::InsertedNew, | ||||
|             }, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Removes an element from the cache map by its key, returning its value. | ||||
|     /// | ||||
|     /// Returns `None` if there was no element with this key in the cache. | ||||
|     /// | ||||
|     /// # Complexity | ||||
|     /// | ||||
|     /// - Linear in the capacity of the cache. | ||||
|     pub fn remove(&mut self, key: &K) -> Option<V> { | ||||
|         for (index, (_, (candidate, _))) in self.0.data.iter_mut().enumerate() { | ||||
|             if key == candidate { | ||||
|                 return Some(self.0.data.swap_remove(index).1 .1); | ||||
|             } | ||||
|         } | ||||
|         None | ||||
|     } | ||||
| } | ||||
|  | ||||
| /// The result of an insertion in a LRU map. | ||||
| pub enum InsertionOutcome<K, V> { | ||||
|     /// The key was not in the cache, the key-value pair has been inserted. | ||||
|     InsertedNew, | ||||
|     /// The key was not in the cache and an old key-value pair was evicted from the cache to make room for its insertions. | ||||
|     Evicted(K, V), | ||||
|     /// The key was already in the cache map, its value has been updated. | ||||
|     Replaced(V), | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: doc | ||||
| --- | ||||
| { | ||||
|   "doggo": "Intel", | ||||
|   "breed": "beagle", | ||||
|   "_vectors": { | ||||
|     "noise": [ | ||||
|       0.1, | ||||
|       0.2, | ||||
|       0.3 | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: task.details | ||||
| --- | ||||
| { | ||||
|   "embedders": { | ||||
|     "A_fakerest": { | ||||
|       "source": "rest", | ||||
|       "apiKey": "MyXXXX...", | ||||
|       "dimensions": 384, | ||||
|       "url": "http://localhost:7777", | ||||
|       "request": "{{text}}", | ||||
|       "response": "{{embedding}}" | ||||
|     }, | ||||
|     "B_small_hf": { | ||||
|       "source": "huggingFace", | ||||
|       "model": "sentence-transformers/all-MiniLM-L6-v2", | ||||
|       "revision": "e4ce9877abf3edfe10b0d82785e83bdcb973e22e", | ||||
|       "documentTemplate": "{{doc.doggo}} the {{doc.breed}} best doggo" | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: doc | ||||
| --- | ||||
| { | ||||
|   "doggo": "kefir", | ||||
|   "breed": "patou", | ||||
|   "_vectors": { | ||||
|     "noise": [ | ||||
|       0.1, | ||||
|       0.2, | ||||
|       0.3 | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: fakerest_config.embedder_options | ||||
| --- | ||||
| { | ||||
|   "Rest": { | ||||
|     "api_key": "My super secret", | ||||
|     "distribution": null, | ||||
|     "dimensions": 384, | ||||
|     "url": "http://localhost:7777", | ||||
|     "request": "{{text}}", | ||||
|     "response": "{{embedding}}", | ||||
|     "headers": {} | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,11 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: simple_hf_config.embedder_options | ||||
| --- | ||||
| { | ||||
|   "HuggingFace": { | ||||
|     "model": "sentence-transformers/all-MiniLM-L6-v2", | ||||
|     "revision": "e4ce9877abf3edfe10b0d82785e83bdcb973e22e", | ||||
|     "distribution": null | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: task.details | ||||
| --- | ||||
| { | ||||
|   "embedders": { | ||||
|     "A_fakerest": { | ||||
|       "source": "rest", | ||||
|       "apiKey": "MyXXXX...", | ||||
|       "dimensions": 384, | ||||
|       "url": "http://localhost:7777", | ||||
|       "request": "{{text}}", | ||||
|       "response": "{{embedding}}" | ||||
|     }, | ||||
|     "B_small_hf": { | ||||
|       "source": "huggingFace", | ||||
|       "model": "sentence-transformers/all-MiniLM-L6-v2", | ||||
|       "revision": "e4ce9877abf3edfe10b0d82785e83bdcb973e22e", | ||||
|       "documentTemplate": "{{doc.doggo}} the {{doc.breed}} best doggo" | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: task.details | ||||
| --- | ||||
| { | ||||
|   "embedders": { | ||||
|     "default": { | ||||
|       "source": "rest", | ||||
|       "apiKey": "MyXXXX...", | ||||
|       "dimensions": 4, | ||||
|       "url": "http://localhost:7777", | ||||
|       "request": "{{text}}", | ||||
|       "response": "{{embedding}}" | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: config.embedder_options | ||||
| --- | ||||
| { | ||||
|   "Rest": { | ||||
|     "api_key": "My super secret", | ||||
|     "distribution": null, | ||||
|     "dimensions": 4, | ||||
|     "url": "http://localhost:7777", | ||||
|     "request": "{{text}}", | ||||
|     "response": "{{embedding}}", | ||||
|     "headers": {} | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| expression: task.details | ||||
| --- | ||||
| { | ||||
|   "embedders": { | ||||
|     "default": { | ||||
|       "source": "rest", | ||||
|       "apiKey": "MyXXXX...", | ||||
|       "dimensions": 4, | ||||
|       "url": "http://localhost:7777", | ||||
|       "request": "{{text}}", | ||||
|       "response": "{{embedding}}" | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,45 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: canceled, canceled_by: 1, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { matched_tasks: 1, canceled_tasks: Some(1), original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [1,] | ||||
| canceled [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| 1 [0,] | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { matched_tasks: 1, canceled_tasks: None, original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "beavero", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "wolfo", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, status: enqueued, details: { matched_tasks: 3, canceled_tasks: None, original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0, 1, 2]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,3,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| "taskCancelation" [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| beavero [1,] | ||||
| catto [0,] | ||||
| wolfo [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| beavero: { number_of_documents: 0, field_distribution: {} } | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000001 | ||||
| 00000000-0000-0000-0000-000000000002 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: canceled, canceled_by: 3, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "beavero", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: canceled, canceled_by: 3, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "wolfo", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, status: succeeded, details: { matched_tasks: 3, canceled_tasks: Some(2), original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0, 1, 2]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,3,] | ||||
| canceled [1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| "taskCancelation" [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| beavero [1,] | ||||
| catto [0,] | ||||
| wolfo [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| beavero: { number_of_documents: 0, field_distribution: {} } | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| 3 [1,2,] | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,48 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "beavero", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "wolfo", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| beavero [1,] | ||||
| catto [0,] | ||||
| wolfo [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000001 | ||||
| 00000000-0000-0000-0000-000000000002 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,51 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "beavero", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "wolfo", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, status: enqueued, details: { matched_tasks: 3, canceled_tasks: None, original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0, 1, 2]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,3,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| "taskCancelation" [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| beavero [1,] | ||||
| catto [0,] | ||||
| wolfo [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000001 | ||||
| 00000000-0000-0000-0000-000000000002 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,35 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { dump_uid: None }, kind: DumpCreation { keys: [], instance_uid: None }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "dumpCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,45 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: canceled, canceled_by: 1, details: { dump_uid: None }, kind: DumpCreation { keys: [], instance_uid: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { matched_tasks: 1, canceled_tasks: Some(0), original_filter: "cancel dump" }, kind: TaskCancelation { query: "cancel dump", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [1,] | ||||
| canceled [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "taskCancelation" [1,] | ||||
| "dumpCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| 1 [0,] | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,38 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { dump_uid: None }, kind: DumpCreation { keys: [], instance_uid: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { matched_tasks: 1, canceled_tasks: None, original_filter: "cancel dump" }, kind: TaskCancelation { query: "cancel dump", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "taskCancelation" [1,] | ||||
| "dumpCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,41 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { matched_tasks: 1, canceled_tasks: None, original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,47 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: canceled, canceled_by: 1, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { matched_tasks: 1, canceled_tasks: Some(1), original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [1,] | ||||
| canceled [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| 1 [0,] | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { matched_tasks: 1, canceled_tasks: None, original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,46 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { matched_tasks: 1, canceled_tasks: Some(0), original_filter: "test_query" }, kind: TaskCancelation { query: "test_query", tasks: RoaringBitmap<[0]> }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "taskCancelation" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| 1 [] | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,65 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| 2 {uid: 2, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "girafos", primary_key: None }} | ||||
| 3 {uid: 3, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 4 {uid: 4, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "cattos" }} | ||||
| 5 {uid: 5, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "girafos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [3,4,5,] | ||||
| "indexCreation" [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,4,] | ||||
| doggos [0,3,] | ||||
| girafos [2,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| cattos: { number_of_documents: 0, field_distribution: {} } | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| girafos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [4,] | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [4,] | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [4,] | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 3, indexed_documents: Some(3) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_document_ids: 2, deleted_documents: Some(2) }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "documentDeletion" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,9 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| [ | ||||
|   { | ||||
|     "id": 3, | ||||
|     "doggo": "bork" | ||||
|   } | ||||
| ] | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_document_ids: 2, deleted_documents: None }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "documentDeletion" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,47 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "indexCreation" [0,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,47 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: succeeded, details: { deleted_documents: Some(0) }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "indexCreation" [0,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "indexCreation" [0,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "indexDeletion" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,42 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { deleted_documents: Some(0) }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| "indexDeletion" [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: failed, error: ResponseError { code: 200, message: "Index `doggos` not found.", error_code: "index_not_found", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_not_found" }, details: { received_document_ids: 2, deleted_documents: Some(0) }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,] | ||||
| failed [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "documentDeletion" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,46 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: failed, error: ResponseError { code: 200, message: "Index `doggos` not found.", error_code: "index_not_found", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_not_found" }, details: { received_document_ids: 2, deleted_documents: Some(0) }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 3, indexed_documents: Some(3) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [1,] | ||||
| failed [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "documentDeletion" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 3, field_distribution: {"catto": 1, "doggo": 2, "id": 3} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,17 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| [ | ||||
|   { | ||||
|     "id": 1, | ||||
|     "doggo": "jean bob" | ||||
|   }, | ||||
|   { | ||||
|     "id": 2, | ||||
|     "catto": "jorts" | ||||
|   }, | ||||
|   { | ||||
|     "id": 3, | ||||
|     "doggo": "bork" | ||||
|   } | ||||
| ] | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_document_ids: 2, deleted_documents: None }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_document_ids: 2, deleted_documents: None }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1", "2"] }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "documentDeletion" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: failed, error: ResponseError { code: 200, message: "Planned failure for tests.", error_code: "internal", error_type: "internal", error_link: "https://docs.meilisearch.com/errors#internal" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| failed [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,44 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 3, indexed_documents: Some(3) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 3, field_distribution: {"catto": 1, "doggo": 2, "id": 3} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 3, indexed_documents: Some(3) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: succeeded, details: { received_document_ids: 1, deleted_documents: Some(1) }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1"] }} | ||||
| 3 {uid: 3, status: failed, error: ResponseError { code: 200, message: "Invalid type for filter subexpression: expected: String, Array, found: true.", error_code: "invalid_document_filter", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#invalid_document_filter" }, details: { original_filter: true, deleted_documents: Some(0) }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: Bool(true) }} | ||||
| 4 {uid: 4, status: failed, error: ResponseError { code: 200, message: "Attribute `id` is not filterable. Available filterable attributes are: `catto`.\n1:3 id = 2", error_code: "invalid_document_filter", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#invalid_document_filter" }, details: { original_filter: "id = 2", deleted_documents: Some(0) }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: String("id = 2") }} | ||||
| 5 {uid: 5, status: succeeded, details: { original_filter: "catto EXISTS", deleted_documents: Some(1) }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: String("catto EXISTS") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,5,] | ||||
| failed [3,4,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "documentDeletion" [2,3,4,5,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [4,] | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,9 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| [ | ||||
|   { | ||||
|     "id": 3, | ||||
|     "doggo": "bork" | ||||
|   } | ||||
| ] | ||||
| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 3, indexed_documents: Some(3) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { received_document_ids: 1, deleted_documents: None }, kind: DocumentDeletion { index_uid: "doggos", documents_ids: ["1"] }} | ||||
| 3 {uid: 3, status: enqueued, details: { original_filter: true, deleted_documents: None }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: Bool(true) }} | ||||
| 4 {uid: 4, status: enqueued, details: { original_filter: "id = 2", deleted_documents: None }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: String("id = 2") }} | ||||
| 5 {uid: 5, status: enqueued, details: { original_filter: "catto EXISTS", deleted_documents: None }, kind: DocumentDeletionByFilter { index_uid: "doggos", filter_expr: String("catto EXISTS") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [2,3,4,5,] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "documentDeletion" [2,3,4,5,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 3, field_distribution: {"catto": 1, "doggo": 2, "id": 3} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [4,] | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: Set({"catto"}), sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: NotSet, search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 3, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 3, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: failed, error: ResponseError { code: 200, message: "Planned failure for tests.", error_code: "internal", error_type: "internal", error_link: "https://docs.meilisearch.com/errors#internal" }, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| failed [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,38 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,38 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,40 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,48 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,2,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"_vectors": 1, "breed": 1, "doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,47 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [2,] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,2,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"_vectors": 1, "breed": 1, "doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000001 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,44 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"_vectors": 1, "breed": 1, "doggo": 1, "id": 1} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| 1 {uid: 1, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: UpdateDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentAdditionOrUpdate" [1,] | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000000 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,35 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> } }, kind: SettingsUpdate { index_uid: "doggos", new_settings: Settings { displayed_attributes: WildcardSetting(NotSet), searchable_attributes: WildcardSetting(NotSet), filterable_attributes: NotSet, sortable_attributes: NotSet, ranking_rules: NotSet, stop_words: NotSet, non_separator_tokens: NotSet, separator_tokens: NotSet, dictionary: NotSet, synonyms: NotSet, distinct_attribute: NotSet, proximity_precision: NotSet, typo_tolerance: NotSet, faceting: NotSet, pagination: NotSet, embedders: Set({"A_fakerest": Set(EmbeddingSettings { source: Set(Rest), model: NotSet, revision: NotSet, api_key: Set("My super secret"), dimensions: Set(384), binary_quantized: NotSet, document_template: NotSet, document_template_max_bytes: NotSet, url: Set("http://localhost:7777"), request: Set(String("{{text}}")), response: Set(String("{{embedding}}")), headers: NotSet, distribution: NotSet }), "B_small_hf": Set(EmbeddingSettings { source: Set(HuggingFace), model: Set("sentence-transformers/all-MiniLM-L6-v2"), revision: Set("e4ce9877abf3edfe10b0d82785e83bdcb973e22e"), api_key: NotSet, dimensions: NotSet, binary_quantized: NotSet, document_template: Set("{{doc.doggo}} the {{doc.breed}} best doggo"), document_template_max_bytes: NotSet, url: NotSet, request: NotSet, response: NotSet, headers: NotSet, distribution: NotSet })}), search_cutoff_ms: NotSet, localized_attributes: NotSet, _kind: PhantomData<meilisearch_types::settings::Unchecked> }, is_deletion: false, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "settingsUpdate" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| index_a [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| index_a [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
| 1 {uid: 1, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_b", primary_key: Some("id") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| index_a [0,] | ||||
| index_b [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,42 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
| 1 {uid: 1, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_b", primary_key: Some("id") }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "index_a" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| index_a [0,2,] | ||||
| index_b [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: failed, error: ResponseError { code: 200, message: "An unexpected crash occurred when processing the task.", error_code: "internal", error_type: "internal", error_link: "https://docs.meilisearch.com/errors#internal" }, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| failed [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| catto [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,46 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,] | ||||
| doggos [0,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,49 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [2,] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,] | ||||
| doggos [0,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| cattos: { number_of_documents: 0, field_distribution: {} } | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,50 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| 2 {uid: 2, status: succeeded, details: { deleted_documents: Some(0) }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,] | ||||
| doggos [0,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| cattos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,] | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,42 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "cattos", primary_key: None }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: IndexDeletion { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,1,] | ||||
| "indexDeletion" [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| cattos [1,] | ||||
| doggos [0,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,47 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 3 {uid: 3, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [1,2,3,] | ||||
| succeeded [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,3,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 3 {uid: 3, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| succeeded [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,3,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,43 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 3 {uid: 3, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,3,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,39 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,41 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,49 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 3 {uid: 3, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [2,3,] | ||||
| succeeded [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,3,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
| @@ -0,0 +1,51 @@ | ||||
| --- | ||||
| source: index-scheduler/src/lib.rs | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing Tasks: | ||||
| [] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: succeeded, details: { primary_key: None }, kind: IndexCreation { index_uid: "doggos", primary_key: None }} | ||||
| 1 {uid: 1, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 2 {uid: 2, status: succeeded, details: { deleted_documents: Some(0) }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| 3 {uid: 3, status: enqueued, details: { deleted_documents: None }, kind: DocumentClear { index_uid: "doggos" }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [3,] | ||||
| succeeded [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| "documentDeletion" [1,2,3,] | ||||
| "indexCreation" [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 0, field_distribution: {} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user