Documentation
¶
Index ¶
- Constants
- type BackupState
- type Config
- type DB
- func (db *DB) AbortReplication(class, shard, requestID string) interface{}
- func (db *DB) AddBatchReferences(ctx context.Context, references objects.BatchReferences) (objects.BatchReferences, error)
- func (d *DB) AddReference(ctx context.Context, className string, source strfmt.UUID, propName string, ...) error
- func (db *DB) Aggregate(ctx context.Context, params aggregation.Params) (*aggregation.Result, error)
- func (db *DB) AggregateNeighbors(ctx context.Context, vector []float32, class string, properties []string, ...) ([]classification.NeighborRef, error)
- func (db *DB) BackupDescriptors(ctx context.Context, bakid string, classes []string) <-chan backup.ClassDescriptor
- func (db *DB) Backupable(ctx context.Context, classes []string) error
- func (db *DB) BatchDeleteObjects(ctx context.Context, params objects.BatchDeleteParams) (objects.BatchDeleteResult, error)
- func (db *DB) BatchPutObjects(ctx context.Context, objects objects.BatchObjects) (objects.BatchObjects, error)
- func (db *DB) ClassExists(name string) bool
- func (db *DB) ClassObjectSearch(ctx context.Context, params traverser.GetParams) ([]*storobj.Object, []float32, error)
- func (db *DB) ClassObjectVectorSearch(ctx context.Context, class string, vector []float32, offset, limit int, ...) ([]*storobj.Object, []float32, error)
- func (db *DB) ClassSearch(ctx context.Context, params traverser.GetParams) ([]search.Result, error)
- func (db *DB) ClassVectorSearch(ctx context.Context, class string, vector []float32, offset, limit int, ...) ([]search.Result, error)
- func (db *DB) CommitReplication(class, shard, requestID string) interface{}
- func (d *DB) DeleteIndex(className schema.ClassName) error
- func (d *DB) DeleteObject(ctx context.Context, class string, id strfmt.UUID) error
- func (d *DB) Exists(ctx context.Context, class string, id strfmt.UUID) (bool, error)
- func (d *DB) GetIndex(className schema.ClassName) *Index
- func (d *DB) GetIndexForIncoming(className schema.ClassName) sharding.RemoteIndexIncomingRepo
- func (db *DB) GetNodeStatuses(ctx context.Context) ([]*models.NodeStatus, error)
- func (db *DB) GetQueryMaximumResults() int
- func (db *DB) GetUnclassified(ctx context.Context, class string, properties []string, ...) ([]search.Result, error)
- func (db *DB) IncomingGetNodeStatus(ctx context.Context) (*models.NodeStatus, error)
- func (db *DB) ListBackupable() []string
- func (db *DB) ListClasses(ctx context.Context) []string
- func (d *DB) Merge(ctx context.Context, merge objects.MergeDocument) error
- func (d *DB) MultiGet(ctx context.Context, query []multi.Identifier, ...) ([]search.Result, error)
- func (d *DB) Object(ctx context.Context, class string, id strfmt.UUID, ...) (*search.Result, error)
- func (d *DB) ObjectByID(ctx context.Context, id strfmt.UUID, props search.SelectProperties, ...) (*search.Result, error)
- func (d *DB) ObjectSearch(ctx context.Context, offset, limit int, filters *filters.LocalFilter, ...) (search.Results, error)
- func (d *DB) ObjectsByID(ctx context.Context, id strfmt.UUID, props search.SelectProperties, ...) (search.Results, error)
- func (d *DB) PutObject(ctx context.Context, obj *models.Object, vector []float32) error
- func (d *DB) Query(ctx context.Context, q *objects.QueryInput) (search.Results, *objects.Error)
- func (db *DB) ReleaseBackup(ctx context.Context, bakID, class string) error
- func (db *DB) ReplicateDeletion(ctx context.Context, class, shard, requestID string, uuid strfmt.UUID) replica.SimpleResponse
- func (db *DB) ReplicateDeletions(ctx context.Context, class, shard, requestID string, docIDs []uint64, ...) replica.SimpleResponse
- func (db *DB) ReplicateObject(ctx context.Context, class, shard, requestID string, object *storobj.Object) replica.SimpleResponse
- func (db *DB) ReplicateObjects(ctx context.Context, class, shard, requestID string, objects []*storobj.Object) replica.SimpleResponse
- func (db *DB) ReplicateReferences(ctx context.Context, class, shard, requestID string, ...) replica.SimpleResponse
- func (db *DB) ReplicateUpdate(ctx context.Context, class, shard, requestID string, ...) replica.SimpleResponse
- func (d *DB) ResolveReferences(ctx context.Context, objs search.Results, props search.SelectProperties, ...) (search.Results, error)
- func (d *DB) SetSchemaGetter(sg schemaUC.SchemaGetter)
- func (db *DB) Shards(ctx context.Context, class string) []string
- func (db *DB) ShardsBackup(ctx context.Context, bakID, class string, shards []string) (_ backup.ClassDescriptor, err error)
- func (d *DB) Shutdown(ctx context.Context) error
- func (d *DB) StartupComplete() bool
- func (db *DB) VectorClassSearch(ctx context.Context, params traverser.GetParams) ([]search.Result, error)
- func (db *DB) VectorSearch(ctx context.Context, vector []float32, offset, limit int, ...) ([]search.Result, error)
- func (d *DB) WaitForStartup(ctx context.Context) error
- func (db *DB) ZeroShotSearch(ctx context.Context, vector []float32, class string, properties []string, ...) ([]search.Result, error)
- type Index
- func (i *Index) AbortReplication(shard, requestID string) interface{}
- func (i *Index) CommitReplication(shard, requestID string) interface{}
- func (i *Index) ID() string
- func (i *Index) IncomingAggregate(ctx context.Context, shardName string, params aggregation.Params) (*aggregation.Result, error)
- func (i *Index) IncomingBatchAddReferences(ctx context.Context, shardName string, refs objects.BatchReferences) []error
- func (i *Index) IncomingBatchPutObjects(ctx context.Context, shardName string, objects []*storobj.Object) []error
- func (i *Index) IncomingCreateShard(ctx context.Context, shardName string) error
- func (i *Index) IncomingDeleteObject(ctx context.Context, shardName string, id strfmt.UUID) error
- func (i *Index) IncomingDeleteObjectBatch(ctx context.Context, shardName string, docIDs []uint64, dryRun bool) objects.BatchSimpleObjects
- func (i *Index) IncomingExists(ctx context.Context, shardName string, id strfmt.UUID) (bool, error)
- func (i *Index) IncomingFilePutter(ctx context.Context, shardName, filePath string) (io.WriteCloser, error)
- func (i *Index) IncomingFindDocIDs(ctx context.Context, shardName string, filters *filters.LocalFilter) ([]uint64, error)
- func (i *Index) IncomingGetObject(ctx context.Context, shardName string, id strfmt.UUID, ...) (*storobj.Object, error)
- func (i *Index) IncomingGetShardStatus(ctx context.Context, shardName string) (string, error)
- func (i *Index) IncomingMergeObject(ctx context.Context, shardName string, mergeDoc objects.MergeDocument) error
- func (i *Index) IncomingMultiGetObjects(ctx context.Context, shardName string, ids []strfmt.UUID) ([]*storobj.Object, error)
- func (i *Index) IncomingPutObject(ctx context.Context, shardName string, object *storobj.Object) error
- func (i *Index) IncomingReinitShard(ctx context.Context, shardName string) error
- func (i *Index) IncomingSearch(ctx context.Context, shardName string, searchVector []float32, ...) ([]*storobj.Object, []float32, error)
- func (i *Index) IncomingUpdateShardStatus(ctx context.Context, shardName, targetStatus string) error
- func (i *Index) IterateObjects(ctx context.Context, ...) error
- func (i *Index) ReleaseBackup(ctx context.Context, id string) error
- func (i *Index) ReplicateDeletion(ctx context.Context, shard, requestID string, uuid strfmt.UUID) replica.SimpleResponse
- func (i *Index) ReplicateDeletions(ctx context.Context, shard, requestID string, docIDs []uint64, dryRun bool) replica.SimpleResponse
- func (i *Index) ReplicateObject(ctx context.Context, shard, requestID string, object *storobj.Object) replica.SimpleResponse
- func (i *Index) ReplicateObjects(ctx context.Context, shard, requestID string, objects []*storobj.Object) replica.SimpleResponse
- func (i *Index) ReplicateReferences(ctx context.Context, shard, requestID string, refs []objects.BatchReference) replica.SimpleResponse
- func (i *Index) ReplicateUpdate(ctx context.Context, shard, requestID string, doc *objects.MergeDocument) replica.SimpleResponse
- func (i *Index) Shutdown(ctx context.Context) error
- type IndexConfig
- type KnnAggregator
- type Metrics
- func (m *Metrics) BatchDelete(start time.Time, op string)
- func (m *Metrics) BatchObject(start time.Time, size int)
- func (m *Metrics) InvertedDeleteDelta(start time.Time)
- func (m *Metrics) InvertedDeleteOld(start time.Time)
- func (m *Metrics) InvertedExtend(start time.Time, propCount int)
- func (m *Metrics) ObjectStore(start time.Time)
- func (m *Metrics) PutObject(start time.Time)
- func (m *Metrics) PutObjectDetermineStatus(start time.Time)
- func (m *Metrics) PutObjectUpdateInverted(start time.Time)
- func (m *Metrics) PutObjectUpsertObject(start time.Time)
- func (m *Metrics) ShardStartup(start time.Time)
- func (m *Metrics) VectorIndex(start time.Time)
- type Migrator
- func (m *Migrator) AddClass(ctx context.Context, class *models.Class, shardState *sharding.State) error
- func (m *Migrator) AddProperty(ctx context.Context, className string, prop *models.Property) error
- func (m *Migrator) DropClass(ctx context.Context, className string) error
- func (m *Migrator) DropProperty(ctx context.Context, className string, propertyName string) error
- func (m *Migrator) GetShardsStatus(ctx context.Context, className string) (map[string]string, error)
- func (m *Migrator) RecalculateVectorDimensions(ctx context.Context) error
- func (m *Migrator) UpdateClass(ctx context.Context, className string, newClassName *string) error
- func (m *Migrator) UpdateInvertedIndexConfig(ctx context.Context, className string, updated *models.InvertedIndexConfig) error
- func (m *Migrator) UpdateProperty(ctx context.Context, className string, propName string, newName *string) error
- func (m *Migrator) UpdateShardStatus(ctx context.Context, className, shardName, targetStatus string) error
- func (m *Migrator) UpdateVectorIndexConfig(ctx context.Context, className string, updated schema.VectorIndexConfig) error
- func (m *Migrator) ValidateInvertedIndexConfigUpdate(ctx context.Context, old, updated *models.InvertedIndexConfig) error
- func (m *Migrator) ValidateVectorIndexConfigUpdate(ctx context.Context, old, updated schema.VectorIndexConfig) error
- type Replicator
- type Shard
- type VectorIndex
Constants ¶
const ( ShardCodeBaseVersion = uint16(2) ShardCodeBaseMinimumVersionForStartup = uint16(1) )
ShardCodeBaseVersion must be increased whenever there are breaking changes - including those that we can handle in a non-breaking way the version checker can then decide on init if it should prevent startup completely. If it does not prevent startup, but there is still a version mismatch, the version can be used to make specific decisions
CHANGELOG
- Version 1 - Everything up until Weaviate v1.10.1 inclusive
- Version 2 - Inverted Index is now stored in an always sorted fashion and doc ids are stored as BigEndian. To make this backward-compatible with v1, doc ids need to be read and written as Little Endian. In addition, an additional sort step is required in three places: during a MapList call, during a Map Cursor and during Map Compactions. BM25 is entirely disabled prior to this version
const IdLockPoolSize = 128
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BackupState ¶
type Config ¶
type Config struct { RootPath string QueryLimit int64 QueryMaximumResults int64 ResourceUsage config.ResourceUsage MaxImportGoroutinesFactor float64 MemtablesFlushIdleAfter int MemtablesInitialSizeMB int MemtablesMaxSizeMB int MemtablesMinActiveSeconds int MemtablesMaxActiveSeconds int TrackVectorDimensions bool ReindexVectorDimensionsAtStartup bool ServerVersion string GitHash string }
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
func New ¶
func New(logger logrus.FieldLogger, config Config, remoteIndex sharding.RemoteIndexClient, nodeResolver nodeResolver, remoteNodesClient sharding.RemoteNodeClient, replicaClient replica.Client, promMetrics *monitoring.PrometheusMetrics, ) *DB
func (*DB) AbortReplication ¶
func (*DB) AddBatchReferences ¶
func (db *DB) AddBatchReferences(ctx context.Context, references objects.BatchReferences) (objects.BatchReferences, error)
func (*DB) AddReference ¶
func (*DB) Aggregate ¶
func (db *DB) Aggregate(ctx context.Context, params aggregation.Params, ) (*aggregation.Result, error)
func (*DB) AggregateNeighbors ¶
func (db *DB) AggregateNeighbors(ctx context.Context, vector []float32, class string, properties []string, k int, filter *libfilters.LocalFilter, ) ([]classification.NeighborRef, error)
TODO: why is this logic in the persistence package? This is business-logic, move out of here!
func (*DB) BackupDescriptors ¶
func (db *DB) BackupDescriptors(ctx context.Context, bakid string, classes []string, ) <-chan backup.ClassDescriptor
BackupDescriptors returns a channel of class descriptors. Class descriptor records everything needed to restore a class If an error happens a descriptor with an error will be written to the channel just before closing it.
func (*DB) Backupable ¶
Backupable returns whether all given class can be backed up.
func (*DB) BatchDeleteObjects ¶
func (db *DB) BatchDeleteObjects(ctx context.Context, params objects.BatchDeleteParams) (objects.BatchDeleteResult, error)
func (*DB) BatchPutObjects ¶
func (db *DB) BatchPutObjects(ctx context.Context, objects objects.BatchObjects) (objects.BatchObjects, error)
func (*DB) ClassExists ¶
func (*DB) ClassObjectSearch ¶
func (db *DB) ClassObjectSearch(ctx context.Context, params traverser.GetParams, ) ([]*storobj.Object, []float32, error)
ClassObjectSearch is used to perform an inverted index search on the db
Earlier use cases required only []search.Result as a return value from the db, and the Class ClassSearch method fit this need. Later on, other use cases presented the need for the raw storage objects, such as hybrid search.
func (*DB) ClassObjectVectorSearch ¶
func (db *DB) ClassObjectVectorSearch(ctx context.Context, class string, vector []float32, offset, limit int, filters *filters.LocalFilter, ) ([]*storobj.Object, []float32, error)
ClassObjectVectorSearch is used to perform a vector search on the db
Earlier use cases required only []search.Result as a return value from the db, and the Class VectorSearch method fit this need. Later on, other use cases presented the need for the raw storage objects, such as hybrid search.
func (*DB) ClassSearch ¶
func (*DB) ClassVectorSearch ¶
func (*DB) CommitReplication ¶
func (*DB) DeleteIndex ¶
DeleteIndex deletes the index
func (*DB) DeleteObject ¶
DeleteObject from of a specific class giving its ID
func (*DB) GetIndexForIncoming ¶
func (d *DB) GetIndexForIncoming(className schema.ClassName) sharding.RemoteIndexIncomingRepo
GetIndexForIncoming returns the index if it exists or nil if it doesn't
func (*DB) GetNodeStatuses ¶
GetNodeStatuses returns the status of all Weaviate nodes.
func (*DB) GetQueryMaximumResults ¶
func (*DB) GetUnclassified ¶
func (db *DB) GetUnclassified(ctx context.Context, class string, properties []string, filter *libfilters.LocalFilter, ) ([]search.Result, error)
TODO: why is this logic in the persistence package? This is business-logic, move out of here!
func (*DB) IncomingGetNodeStatus ¶
IncomingGetNodeStatus returns the index if it exists or nil if it doesn't
func (*DB) ListBackupable ¶
ListBackupable returns a list of all classes which can be backed up.
func (*DB) MultiGet ¶
func (d *DB) MultiGet(ctx context.Context, query []multi.Identifier, additional additional.Properties, ) ([]search.Result, error)
func (*DB) Object ¶
func (d *DB) Object(ctx context.Context, class string, id strfmt.UUID, props search.SelectProperties, adds additional.Properties, repl *additional.ReplicationProperties, ) (*search.Result, error)
Object gets object with id from index of specified class.
func (*DB) ObjectByID ¶
func (d *DB) ObjectByID(ctx context.Context, id strfmt.UUID, props search.SelectProperties, additional additional.Properties, ) (*search.Result, error)
ObjectByID checks every index of the particular kind for the ID
@warning: this function is deprecated by Object()
func (*DB) ObjectSearch ¶
func (d *DB) ObjectSearch(ctx context.Context, offset, limit int, filters *filters.LocalFilter, sort []filters.Sort, additional additional.Properties, ) (search.Results, error)
ObjectSearch search each index. Deprecated by Query which searches a specific index
func (*DB) ObjectsByID ¶
func (d *DB) ObjectsByID(ctx context.Context, id strfmt.UUID, props search.SelectProperties, additional additional.Properties, ) (search.Results, error)
ObjectsByID checks every index of the particular kind for the ID this method is only used for Explore queries where we don't have a class context
func (*DB) ReleaseBackup ¶
ReleaseBackup release resources acquired by the index during backup
func (*DB) ReplicateDeletion ¶
func (*DB) ReplicateDeletions ¶
func (*DB) ReplicateObject ¶
func (*DB) ReplicateObjects ¶
func (*DB) ReplicateReferences ¶
func (db *DB) ReplicateReferences(ctx context.Context, class, shard, requestID string, refs []objects.BatchReference, ) replica.SimpleResponse
func (*DB) ReplicateUpdate ¶
func (db *DB) ReplicateUpdate(ctx context.Context, class, shard, requestID string, mergeDoc *objects.MergeDocument, ) replica.SimpleResponse
func (*DB) ResolveReferences ¶
func (d *DB) ResolveReferences(ctx context.Context, objs search.Results, props search.SelectProperties, additional additional.Properties, ) (search.Results, error)
ResolveReferences takes a list of search results and enriches them with any referenced objects
func (*DB) SetSchemaGetter ¶
func (d *DB) SetSchemaGetter(sg schemaUC.SchemaGetter)
func (*DB) ShardsBackup ¶
func (*DB) StartupComplete ¶
func (*DB) VectorClassSearch ¶
func (*DB) VectorSearch ¶
func (*DB) ZeroShotSearch ¶
func (db *DB) ZeroShotSearch(ctx context.Context, vector []float32, class string, properties []string, filter *libfilters.LocalFilter, ) ([]search.Result, error)
TODO: why is this logic in the persistence package? This is business-logic, move out of here!
type Index ¶
type Index struct { Shards map[string]*Shard Config IndexConfig // contains filtered or unexported fields }
Index is the logical unit which contains all the data for one particular class. An index can be further broken up into self-contained units, called Shards, to allow for easy distribution across Nodes
func NewIndex ¶
func NewIndex(ctx context.Context, config IndexConfig, shardState *sharding.State, invertedIndexConfig schema.InvertedIndexConfig, vectorIndexUserConfig schema.VectorIndexConfig, sg schemaUC.SchemaGetter, cs inverted.ClassSearcher, logger logrus.FieldLogger, nodeResolver nodeResolver, remoteClient sharding.RemoteIndexClient, replicaClient replica.Client, promMetrics *monitoring.PrometheusMetrics, class *models.Class, ) (*Index, error)
NewIndex creates an index with the specified amount of shards, using only the shards that are local to a node
func (*Index) AbortReplication ¶
func (*Index) CommitReplication ¶
func (*Index) IncomingAggregate ¶
func (i *Index) IncomingAggregate(ctx context.Context, shardName string, params aggregation.Params, ) (*aggregation.Result, error)
func (*Index) IncomingBatchAddReferences ¶
func (*Index) IncomingBatchPutObjects ¶
func (*Index) IncomingCreateShard ¶
func (*Index) IncomingDeleteObject ¶
func (*Index) IncomingDeleteObjectBatch ¶
func (*Index) IncomingExists ¶
func (*Index) IncomingFilePutter ¶
func (*Index) IncomingFindDocIDs ¶
func (*Index) IncomingGetObject ¶
func (i *Index) IncomingGetObject(ctx context.Context, shardName string, id strfmt.UUID, props search.SelectProperties, additional additional.Properties, ) (*storobj.Object, error)
func (*Index) IncomingGetShardStatus ¶
func (*Index) IncomingMergeObject ¶
func (*Index) IncomingMultiGetObjects ¶
func (*Index) IncomingPutObject ¶
func (*Index) IncomingReinitShard ¶
func (*Index) IncomingSearch ¶
func (i *Index) IncomingSearch(ctx context.Context, shardName string, searchVector []float32, distance float32, limit int, filters *filters.LocalFilter, keywordRanking *searchparams.KeywordRanking, sort []filters.Sort, additional additional.Properties, ) ([]*storobj.Object, []float32, error)
func (*Index) IncomingUpdateShardStatus ¶
func (*Index) IterateObjects ¶
func (*Index) ReleaseBackup ¶
ReleaseBackup marks the specified backup as inactive and restarts all async background and maintenance processes. It errors if the backup does not exist or is already inactive.
func (*Index) ReplicateDeletion ¶
func (*Index) ReplicateDeletions ¶
func (*Index) ReplicateObject ¶
func (*Index) ReplicateObjects ¶
func (*Index) ReplicateReferences ¶
func (i *Index) ReplicateReferences(ctx context.Context, shard, requestID string, refs []objects.BatchReference) replica.SimpleResponse
func (*Index) ReplicateUpdate ¶
func (i *Index) ReplicateUpdate(ctx context.Context, shard, requestID string, doc *objects.MergeDocument) replica.SimpleResponse
type IndexConfig ¶
type IndexConfig struct { RootPath string ClassName schema.ClassName QueryMaximumResults int64 ResourceUsage config.ResourceUsage MaxImportGoroutinesFactor float64 MemtablesFlushIdleAfter int MemtablesInitialSizeMB int MemtablesMaxSizeMB int MemtablesMinActiveSeconds int MemtablesMaxActiveSeconds int ReplicationFactor int64 TrackVectorDimensions bool }
type KnnAggregator ¶
type KnnAggregator struct {
// contains filtered or unexported fields
}
TODO: this is business logic, move out of here
func NewKnnAggregator ¶
func NewKnnAggregator(input search.Results, sourceVector []float32) *KnnAggregator
func (*KnnAggregator) Aggregate ¶
func (a *KnnAggregator) Aggregate(k int, properties []string) ([]classification.NeighborRef, error)
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
func NewMetrics ¶
func NewMetrics(logger logrus.FieldLogger, prom *monitoring.PrometheusMetrics, className, shardName string, ) *Metrics
func (*Metrics) InvertedDeleteDelta ¶
func (*Metrics) InvertedDeleteOld ¶
func (*Metrics) ObjectStore ¶
func (*Metrics) PutObjectDetermineStatus ¶
func (*Metrics) PutObjectUpdateInverted ¶
func (*Metrics) PutObjectUpsertObject ¶
func (*Metrics) ShardStartup ¶
func (*Metrics) VectorIndex ¶
type Migrator ¶
type Migrator struct {
// contains filtered or unexported fields
}
func NewMigrator ¶
func NewMigrator(db *DB, logger logrus.FieldLogger) *Migrator
func (*Migrator) AddProperty ¶
func (*Migrator) DropProperty ¶
DropProperty is ignored, API compliant change
func (*Migrator) GetShardsStatus ¶
func (*Migrator) RecalculateVectorDimensions ¶
func (*Migrator) UpdateClass ¶
func (*Migrator) UpdateInvertedIndexConfig ¶
func (*Migrator) UpdateProperty ¶
func (*Migrator) UpdateShardStatus ¶
func (*Migrator) UpdateVectorIndexConfig ¶
func (*Migrator) ValidateInvertedIndexConfigUpdate ¶
func (*Migrator) ValidateVectorIndexConfigUpdate ¶
type Replicator ¶
type Replicator interface { ReplicateObject(ctx context.Context, shardName, requestID string, object *storobj.Object) replica.SimpleResponse ReplicateObjects(ctx context.Context, shardName, requestID string, objects []*storobj.Object) replica.SimpleResponse ReplicateUpdate(ctx context.Context, shard, requestID string, doc *objects.MergeDocument) replica.SimpleResponse ReplicateDeletion(ctx context.Context, shardName, requestID string, uuid strfmt.UUID) replica.SimpleResponse ReplicateDeletions(ctx context.Context, shardName, requestID string, docIDs []uint64, dryRun bool) replica.SimpleResponse ReplicateReferences(ctx context.Context, shard, requestID string, refs []objects.BatchReference) replica.SimpleResponse CommitReplication(shard, requestID string) interface{} AbortReplication(shardName, requestID string) interface{} }
type Shard ¶
type Shard struct {
// contains filtered or unexported fields
}
Shard is the smallest completely-contained index unit. A shard manages database files for all the objects it owns. How a shard is determined for a target object (e.g. Murmur hash, etc.) is still open at this point
func NewShard ¶
func NewShard(ctx context.Context, promMetrics *monitoring.PrometheusMetrics, shardName string, index *Index, class *models.Class, ) (*Shard, error)
func (*Shard) Dimensions ¶
type VectorIndex ¶
type VectorIndex interface { Dump(labels ...string) Add(id uint64, vector []float32) error Delete(id ...uint64) error SearchByVector(vector []float32, k int, allow helpers.AllowList) ([]uint64, []float32, error) SearchByVectorDistance(vector []float32, dist float32, maxLimit int64, allow helpers.AllowList) ([]uint64, []float32, error) UpdateUserConfig(updated schema.VectorIndexConfig) error Drop(ctx context.Context) error Shutdown(ctx context.Context) error Flush() error PauseMaintenance(ctx context.Context) error SwitchCommitLogs(ctx context.Context) error ListFiles(ctx context.Context) ([]string, error) ResumeMaintenance(ctx context.Context) error PostStartup() ValidateBeforeInsert(vector []float32) error }
VectorIndex is anything that indexes vectors efficiently. For an example look at ./vector/hnsw/index.go
Source Files
¶
- backup.go
- batch.go
- buffered_random_reader.go
- classification.go
- crud.go
- index.go
- index_sharding_backward_compatibility.go
- init.go
- metrics.go
- migrator.go
- nodes.go
- replication.go
- repo.go
- resource_use.go
- search.go
- shard.go
- shard_aggregate.go
- shard_backup.go
- shard_dimension_tracking.go
- shard_geo_props.go
- shard_init_properties.go
- shard_read.go
- shard_replication.go
- shard_resource_use.go
- shard_status.go
- shard_version.go
- shard_write_batch_delete.go
- shard_write_batch_objects.go
- shard_write_batch_references.go
- shard_write_delete.go
- shard_write_inverted.go
- shard_write_inverted_lsm.go
- shard_write_inverted_lsm_delete.go
- shard_write_merge.go
- shard_write_put.go
- sortby_distances.go
- sortby_scores.go
- vector_index.go
Directories
¶
Path | Synopsis |
---|---|
clusterintegrationtest acts as a test package to provide a compoenent test spanning multiple parts of the application, including everything that's required for a distributed setup.
|
clusterintegrationtest acts as a test package to provide a compoenent test spanning multiple parts of the application, including everything that's required for a distributed setup. |
vector
|
|
hnsw/distancer/asm
asm only has amd64 specific implementations at the moment
|
asm only has amd64 specific implementations at the moment |