pub struct DiskANNMemoryIndex { /* private fields */ }Expand description
A writable memory index over the same sealed-page search as persistent providers. Ordinary mutations replace canonical tensors and current changes atomically; explicit initialization and clear construct replacement physical generations. Writable snapshots retain independent roots under the same original allowance.
Implementations§
Source§impl DiskANNMemoryIndex
impl DiskANNMemoryIndex
pub fn new( dimensions: u32, options: DiskANNMemoryOptions, temporary: &DiskANNTemporaryBudget, control: &StorageReadControl, ) -> StorageBackendResult<Self>
pub fn manifest(&self) -> &DiskANNManifest
Trait Implementations§
Source§impl VectorIndex for DiskANNMemoryIndex
impl VectorIndex for DiskANNMemoryIndex
fn dimensions(&self) -> u32
fn index_kind(&self) -> &'static str
Source§fn diskann_query_metadata(
&self,
control: &StorageReadControl,
) -> StorageBackendResult<Option<DiskANNQueryMetadata>>
fn diskann_query_metadata( &self, control: &StorageReadControl, ) -> StorageBackendResult<Option<DiskANNQueryMetadata>>
Metadata from the actual selected physical/canonical view, without executing a logical vector query. Unsupported methods return None.
fn add(&mut self, document: DocId, vector: Vec<f32>) -> StorageBackendResult<()>
fn add_many( &mut self, document: DocId, vectors: Vec<Vec<f32>>, ) -> StorageBackendResult<()>
fn delete(&mut self, document: DocId) -> StorageBackendResult<()>
fn clear(&mut self) -> StorageBackendResult<()>
Source§fn initialize(&mut self) -> StorageBackendResult<()>
fn initialize(&mut self) -> StorageBackendResult<()>
Build any auxiliary physical metadata required by this index from its
current vector contents. Brute-force indexes need no extra work;
persistent IVF and HNSW implementations use this during explicit
index creation, while restore paths deliberately skip it.
fn search_knn( &self, query: &[f32], k: usize, ) -> StorageBackendResult<PostingList>
fn search_threshold( &self, query: &[f32], threshold: f32, ) -> StorageBackendResult<PostingList>
Source§fn search_knn_with_control(
&self,
query: &[f32],
k: usize,
control: &StorageReadControl,
) -> StorageBackendResult<PostingList>
fn search_knn_with_control( &self, query: &[f32], k: usize, control: &StorageReadControl, ) -> StorageBackendResult<PostingList>
Request a controlled search. The default checks cancellation and delegates to the provider’s existing read boundary; in-memory physical algorithms override it to charge query workspace to the supplied allowance.
Source§fn search_threshold_with_control(
&self,
query: &[f32],
threshold: f32,
control: &StorageReadControl,
) -> StorageBackendResult<PostingList>
fn search_threshold_with_control( &self, query: &[f32], threshold: f32, control: &StorageReadControl, ) -> StorageBackendResult<PostingList>
Controlled threshold search keeps the same result and caller-owned posting boundary as ordinary search.
Source§fn search_knn_with_statistics(
&self,
query: &[f32],
k: usize,
control: Option<&StorageReadControl>,
) -> StorageBackendResult<VectorQueryResult>
fn search_knn_with_statistics( &self, query: &[f32], k: usize, control: Option<&StorageReadControl>, ) -> StorageBackendResult<VectorQueryResult>
Run one KNN invocation and retain its measured work when supported. An optional invoking control preserves the existing controlled-search boundary; absence preserves ordinary provider dispatch. Unsupported providers execute once and return no report.
Source§fn search_threshold_with_statistics(
&self,
query: &[f32],
threshold: f32,
control: Option<&StorageReadControl>,
) -> StorageBackendResult<VectorQueryResult>
fn search_threshold_with_statistics( &self, query: &[f32], threshold: f32, control: Option<&StorageReadControl>, ) -> StorageBackendResult<VectorQueryResult>
Return exact threshold results and optional work from their one invocation. Report support must not introduce an additional scan or weaken the original provider’s controls.
fn count(&self) -> StorageBackendResult<usize>
Source§fn contains_document(&self, document: DocId) -> StorageBackendResult<bool>
fn contains_document(&self, document: DocId) -> StorageBackendResult<bool>
Test canonical membership at this handle’s visibility boundary without searching or materializing the corpus. Empty tensor replacements have no membership. This is a maintenance probe, not a logical query observation.
Source§fn diskann_read_snapshot(
&self,
control: &StorageReadControl,
) -> StorageBackendResult<Option<DiskANNReadSnapshot>>
fn diskann_read_snapshot( &self, control: &StorageReadControl, ) -> StorageBackendResult<Option<DiskANNReadSnapshot>>
Borrow an opaque retained
DiskANN canonical source for evaluated document replacements. Capturing metadata does not execute or observe a vector query; other physical methods leave this capability absent.Source§fn snapshot_with_diskann_changes(
&self,
changes: &DiskANNReadChanges,
control: &StorageReadControl,
) -> StorageBackendResult<Option<Arc<dyn VectorIndex>>>
fn snapshot_with_diskann_changes( &self, changes: &DiskANNReadChanges, control: &StorageReadControl, ) -> StorageBackendResult<Option<Arc<dyn VectorIndex>>>
Retain this physical
DiskANN generation with the selected actual canonical replacements. Wrappers preserve their original read observation and retention boundary on the returned index. Unsupported methods return None without changing physical selection.Source§fn snapshot_with_vector_read(
&self,
source: VectorReadSnapshot,
control: &StorageReadControl,
) -> StorageBackendResult<Option<Arc<dyn VectorIndex>>>
fn snapshot_with_vector_read( &self, source: VectorReadSnapshot, control: &StorageReadControl, ) -> StorageBackendResult<Option<Arc<dyn VectorIndex>>>
Keep this selected physical
DiskANN generation while reading a different fixed canonical field view. The query owner verifies raw coverage without inventing mutation origins.Source§fn snapshot(&self) -> StorageBackendResult<Arc<dyn VectorIndex>>
fn snapshot(&self) -> StorageBackendResult<Arc<dyn VectorIndex>>
Read-only handle suitable for an
ExecutionContext.Source§fn snapshot_with_control(
&self,
control: &StorageReadControl,
) -> StorageBackendResult<Arc<dyn VectorIndex>>
fn snapshot_with_control( &self, control: &StorageReadControl, ) -> StorageBackendResult<Arc<dyn VectorIndex>>
Capture using the caller’s retention allowance and cancellation. Owners that copy index data override this method to reserve construction before allocation. The default preserves the provider’s existing snapshot and its independently retained control.
Source§fn writable_snapshot(&self) -> StorageBackendResult<Box<dyn VectorIndex>>
fn writable_snapshot(&self) -> StorageBackendResult<Box<dyn VectorIndex>>
Independent writable copy used by in-memory engine rollback. The
default keeps third-party and persistent implementations source
compatible; only indexes hosted by a memory engine need to support it.
Source§fn vector_read_snapshot(
&self,
control: &StorageReadControl,
) -> StorageBackendResult<Option<VectorReadSnapshot>>
fn vector_read_snapshot( &self, control: &StorageReadControl, ) -> StorageBackendResult<Option<VectorReadSnapshot>>
Retain the actual canonical values independently of physical mutation provenance. Capturing this source is metadata access, not a logical vector query.
Source§fn matches_document_vectors(
&self,
document: DocId,
vectors: &[Vec<f32>],
control: &StorageReadControl,
) -> StorageBackendResult<bool>
fn matches_document_vectors( &self, document: DocId, vectors: &[Vec<f32>], control: &StorageReadControl, ) -> StorageBackendResult<bool>
Check whether a SQL replacement can retain this document’s canonical vectors. Unsupported providers return false and keep the normal replacement path. Live memory indexes override this to borrow their canonical data without cloning the entire index.
Auto Trait Implementations§
impl !RefUnwindSafe for DiskANNMemoryIndex
impl !UnwindSafe for DiskANNMemoryIndex
impl Freeze for DiskANNMemoryIndex
impl Send for DiskANNMemoryIndex
impl Sync for DiskANNMemoryIndex
impl Unpin for DiskANNMemoryIndex
impl UnsafeUnpin for DiskANNMemoryIndex
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more