pub trait StorageBackend: Send + Sync {
// Required methods
fn write_vector(
&mut self,
vector_id: &VectorId,
vector: &[f32],
) -> DiskAnnResult<()>;
fn read_vector(&self, vector_id: &VectorId) -> DiskAnnResult<Vec<f32>>;
fn write_graph(&mut self, graph: &VamanaGraph) -> DiskAnnResult<()>;
fn read_graph(&self) -> DiskAnnResult<VamanaGraph>;
fn write_metadata(
&mut self,
metadata: &StorageMetadata,
) -> DiskAnnResult<()>;
fn read_metadata(&self) -> DiskAnnResult<StorageMetadata>;
fn clear(&mut self) -> DiskAnnResult<()>;
fn flush(&mut self) -> DiskAnnResult<()>;
fn size(&self) -> DiskAnnResult<u64>;
}Expand description
Storage backend trait
Required Methods§
Sourcefn write_vector(
&mut self,
vector_id: &VectorId,
vector: &[f32],
) -> DiskAnnResult<()>
fn write_vector( &mut self, vector_id: &VectorId, vector: &[f32], ) -> DiskAnnResult<()>
Write a vector to storage
Sourcefn read_vector(&self, vector_id: &VectorId) -> DiskAnnResult<Vec<f32>>
fn read_vector(&self, vector_id: &VectorId) -> DiskAnnResult<Vec<f32>>
Read a vector from storage
Sourcefn write_graph(&mut self, graph: &VamanaGraph) -> DiskAnnResult<()>
fn write_graph(&mut self, graph: &VamanaGraph) -> DiskAnnResult<()>
Write graph structure
Sourcefn read_graph(&self) -> DiskAnnResult<VamanaGraph>
fn read_graph(&self) -> DiskAnnResult<VamanaGraph>
Read graph structure
Sourcefn write_metadata(&mut self, metadata: &StorageMetadata) -> DiskAnnResult<()>
fn write_metadata(&mut self, metadata: &StorageMetadata) -> DiskAnnResult<()>
Write metadata
Sourcefn read_metadata(&self) -> DiskAnnResult<StorageMetadata>
fn read_metadata(&self) -> DiskAnnResult<StorageMetadata>
Read metadata
Sourcefn clear(&mut self) -> DiskAnnResult<()>
fn clear(&mut self) -> DiskAnnResult<()>
Delete all data
Sourcefn flush(&mut self) -> DiskAnnResult<()>
fn flush(&mut self) -> DiskAnnResult<()>
Flush any pending writes
Sourcefn size(&self) -> DiskAnnResult<u64>
fn size(&self) -> DiskAnnResult<u64>
Get storage size in bytes