Skip to main content

DiskProvider

Struct DiskProvider 

Source
pub struct DiskProvider<Data>
where Data: GraphDataType<VectorIdType = u32>,
{ /* private fields */ }
Expand description

The DiskProvider is a data provider that loads data from disk using the disk readers The data format for disk is different from that of the in-memory providers. The disk format stores both the vectors and the adjacency list next to each other for better locality for quicker access. Please refer to the RFC documentation at [docs\rfcs\cy2025\disk_provider_for_async_index.md] for design details.

Trait Implementations§

Source§

impl<Data> DataProvider for DiskProvider<Data>
where Data: GraphDataType<VectorIdType = u32>,

Source§

fn to_internal_id( &self, _context: &DefaultContext, gid: &Self::ExternalId, ) -> Result<Self::InternalId, Self::Error>

Translate an external id to its corresponding internal id.

Source§

fn to_external_id( &self, _context: &DefaultContext, id: Self::InternalId, ) -> Result<Self::ExternalId, Self::Error>

Translate an internal id its corresponding external id.

Source§

type Context = DefaultContext

Source§

type InternalId = u32

Source§

type ExternalId = u32

Source§

type Error = ANNError

Source§

impl<Data> LoadWith<AsyncDiskLoadContext> for DiskProvider<Data>
where Data: GraphDataType<VectorIdType = u32>,

Source§

type Error = ANNError

The error type if deserialization is unsuccessful.
Source§

async fn load_with<P>( provider: &P, ctx: &AsyncDiskLoadContext, ) -> ANNResult<Self>

Load self form disk using provider for IO-related needs. Argument auxiliary can be arbitrary metadata required for a successful operation, such as file paths.
Source§

impl<'this, Data, ProviderFactory> SearchStrategy<DiskProvider<Data>, [<Data as GraphDataType>::VectorDataType], (<DiskProvider<Data> as DataProvider>::InternalId, <Data as GraphDataType>::AssociatedDataType)> for DiskSearchStrategy<'this, Data, ProviderFactory>
where Data: GraphDataType<VectorIdType = u32>, ProviderFactory: VertexProviderFactory<Data>,

Source§

type QueryComputer = DiskQueryComputer

The computer used by the associated accessor. Read more
Source§

type SearchAccessor<'a> = DiskAccessor<'a, Data, <ProviderFactory as VertexProviderFactory<Data>>::VertexProviderType>

The concrete type of the accessor that is used to access Self during the greedy graph search. The query will be provided to the accessor exactly once during search to construct the query computer.
Source§

type SearchAccessorError = ANNError

An error that can occur when getting a search_accessor.
Source§

type PostProcessor = RerankAndFilter<'this>

The associated SearchPostProcessor for the final results.
Source§

fn search_accessor<'a>( &'a self, provider: &'a DiskProvider<Data>, _context: &DefaultContext, ) -> Result<Self::SearchAccessor<'a>, Self::SearchAccessorError>

Construct and return the search accessor.
Source§

fn post_processor(&self) -> Self::PostProcessor

Construct the SearchPostProcess struct to post-process the results of search and store them into the output container.

Auto Trait Implementations§

§

impl<Data> Freeze for DiskProvider<Data>

§

impl<Data> RefUnwindSafe for DiskProvider<Data>

§

impl<Data> Send for DiskProvider<Data>

§

impl<Data> Sync for DiskProvider<Data>

§

impl<Data> Unpin for DiskProvider<Data>

§

impl<Data> UnsafeUnpin for DiskProvider<Data>

§

impl<Data> UnwindSafe for DiskProvider<Data>

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> ByRef<T> for T

Source§

fn by_ref(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> AsyncFriendly for T
where T: Send + Sync + 'static,