Skip to main content

KeyValueDiskANNCanonical

Struct KeyValueDiskANNCanonical 

Source
pub struct KeyValueDiskANNCanonical { /* private fields */ }
Expand description

Canonical tensor mutation owner for the Key/Value layout. Public DiskANN catalog routing remains unavailable until publication and recovery are integrated.

Implementations§

Source§

impl KeyValueDiskANNCanonical

Source

pub fn retire_index( &self, index: &RelationIdentity, resolver: &dyn DiskANNIndexResolver, control: &StorageReadControl, ) -> StorageBackendResult<()>

Retire the selected generation before removing its SQL catalog definition. Raw vectors remain available to the replacement exact index, while stale writers and the old live handle can no longer mutate this field through its retired selection.

Source

pub fn create_index( &self, index: &RelationIdentity, resolver: &dyn DiskANNIndexResolver, options: DiskANNIndexOptions, temporary: &DiskANNTemporaryBudget, control: &StorageReadControl, ) -> StorageBackendResult<()>

Adopt the complete existing raw field and publish its first generation. The actual private catalog definition must already exist, and the caller must retain the enclosing definition transaction.

Source

pub fn rebuild_index( &self, index: &RelationIdentity, resolver: &dyn DiskANNIndexResolver, options: DiskANNIndexOptions, temporary: &DiskANNTemporaryBudget, control: &StorageReadControl, ) -> StorageBackendResult<()>

Rebuild from one actual retained source. Publication keeps the original head expectation and never completes the caller’s transaction.

Source§

impl KeyValueDiskANNCanonical

Source

pub fn bind( self, index: RelationIdentity, resolver: Arc<dyn DiskANNIndexResolver + Send + Sync>, limits: DiskANNReadLimits, control: &StorageReadControl, ) -> StorageBackendResult<KeyValueDiskANNHandle>

Open a live handle through the actual catalog and published head. Missing or invalid publication is an error; this never creates or adopts an index implicitly.

Source§

impl KeyValueDiskANNCanonical

Source

pub fn journal_pruner( self, index: &RelationIdentity, resolver: Arc<dyn DiskANNIndexResolver + Send + Sync>, max_record_bytes: usize, control: &StorageReadControl, ) -> StorageBackendResult<Box<dyn DiskANNJournalPruner>>

Source

pub fn maintenance_source( self, index: &RelationIdentity, resolver: Arc<dyn DiskANNIndexResolver + Send + Sync>, max_record_bytes: usize, control: &StorageReadControl, ) -> StorageBackendResult<Box<dyn DiskANNMaintenanceSource>>

Source§

impl KeyValueDiskANNCanonical

Source

pub fn new( store: Arc<dyn KeyValueStore>, table: impl Into<String>, field: impl Into<String>, dimensions: u32, ) -> StorageBackendResult<Self>

Source

pub fn replace( &self, document: DocId, vectors: &[Vec<f32>], control: &StorageReadControl, ) -> StorageBackendResult<DiskANNVectorVersion>

Atomically replace every ordinal and its origin; an empty tensor persists an explicit zero-count replacement. The publishing transaction is also used for private origins, without assigning commit order.

Source

pub fn retain( &self, control: &StorageReadControl, ) -> StorageBackendResult<RetainedDiskANNCanonical>

Retain the exact private/committed boundary without enumerating canonical values.

Source

pub fn retain_for_index( &self, index: &RelationIdentity, control: &StorageReadControl, ) -> StorageBackendResult<RetainedDiskANNCanonical>

Capture the real table/index definitions with canonical input on one fixed view. Ordinary unbound sources cannot authorize a later catalog publication.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.