verso-db 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +81 -49
- package/dist/BinaryHeap.d.ts +16 -5
- package/dist/BinaryHeap.d.ts.map +1 -1
- package/dist/BinaryHeap.js +138 -0
- package/dist/BinaryHeap.js.map +1 -0
- package/dist/Collection.d.ts +98 -17
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +1186 -0
- package/dist/Collection.js.map +1 -0
- package/dist/HNSWIndex.d.ts +170 -15
- package/dist/HNSWIndex.d.ts.map +1 -1
- package/dist/HNSWIndex.js +2818 -0
- package/dist/HNSWIndex.js.map +1 -0
- package/dist/MaxBinaryHeap.d.ts +2 -60
- package/dist/MaxBinaryHeap.d.ts.map +1 -1
- package/dist/MaxBinaryHeap.js +5 -0
- package/dist/MaxBinaryHeap.js.map +1 -0
- package/dist/SearchWorker.d.ts +104 -0
- package/dist/SearchWorker.d.ts.map +1 -0
- package/dist/SearchWorker.js +573 -0
- package/dist/SearchWorker.js.map +1 -0
- package/dist/VectorDB.d.ts +19 -5
- package/dist/VectorDB.d.ts.map +1 -1
- package/dist/VectorDB.js +246 -0
- package/dist/VectorDB.js.map +1 -0
- package/dist/WorkerPool.d.ts +92 -0
- package/dist/WorkerPool.d.ts.map +1 -0
- package/dist/WorkerPool.js +266 -0
- package/dist/WorkerPool.js.map +1 -0
- package/dist/backends/JsDistanceBackend.d.ts +3 -20
- package/dist/backends/JsDistanceBackend.d.ts.map +1 -1
- package/dist/backends/JsDistanceBackend.js +163 -0
- package/dist/backends/JsDistanceBackend.js.map +1 -0
- package/dist/encoding/DeltaEncoder.d.ts +2 -2
- package/dist/encoding/DeltaEncoder.d.ts.map +1 -1
- package/dist/encoding/DeltaEncoder.js +199 -0
- package/dist/encoding/DeltaEncoder.js.map +1 -0
- package/dist/errors.js +97 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +16 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -3419
- package/dist/index.js.map +1 -0
- package/dist/presets.d.ts +9 -9
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +205 -0
- package/dist/presets.js.map +1 -0
- package/dist/quantization/ScalarQuantizer.d.ts +10 -34
- package/dist/quantization/ScalarQuantizer.d.ts.map +1 -1
- package/dist/quantization/ScalarQuantizer.js +346 -0
- package/dist/quantization/ScalarQuantizer.js.map +1 -0
- package/dist/storage/BatchWriter.d.ts.map +1 -1
- package/dist/storage/BatchWriter.js +351 -0
- package/dist/storage/BatchWriter.js.map +1 -0
- package/dist/storage/BunStorageBackend.d.ts +12 -5
- package/dist/storage/BunStorageBackend.d.ts.map +1 -1
- package/dist/storage/BunStorageBackend.js +182 -0
- package/dist/storage/BunStorageBackend.js.map +1 -0
- package/dist/storage/MemoryBackend.d.ts.map +1 -1
- package/dist/storage/MemoryBackend.js +109 -0
- package/dist/storage/MemoryBackend.js.map +1 -0
- package/dist/storage/OPFSBackend.d.ts +9 -1
- package/dist/storage/OPFSBackend.d.ts.map +1 -1
- package/dist/storage/OPFSBackend.js +325 -0
- package/dist/storage/OPFSBackend.js.map +1 -0
- package/dist/storage/StorageBackend.d.ts +1 -1
- package/dist/storage/StorageBackend.js +12 -0
- package/dist/storage/StorageBackend.js.map +1 -0
- package/dist/storage/WriteAheadLog.d.ts +15 -11
- package/dist/storage/WriteAheadLog.d.ts.map +1 -1
- package/dist/storage/WriteAheadLog.js +321 -0
- package/dist/storage/WriteAheadLog.js.map +1 -0
- package/dist/storage/createStorageBackend.d.ts +4 -0
- package/dist/storage/createStorageBackend.d.ts.map +1 -1
- package/dist/storage/createStorageBackend.js +119 -0
- package/dist/storage/createStorageBackend.js.map +1 -0
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +33 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/nodeFsRuntime.d.ts +14 -0
- package/dist/storage/nodeFsRuntime.d.ts.map +1 -0
- package/dist/storage/nodeFsRuntime.js +105 -0
- package/dist/storage/nodeFsRuntime.js.map +1 -0
- package/package.json +47 -23
- package/dist/Storage.d.ts +0 -54
- package/dist/Storage.d.ts.map +0 -1
- package/dist/backends/DistanceBackend.d.ts +0 -5
- package/dist/backends/DistanceBackend.d.ts.map +0 -1
- package/src/BinaryHeap.ts +0 -131
- package/src/Collection.ts +0 -695
- package/src/HNSWIndex.ts +0 -1839
- package/src/MaxBinaryHeap.ts +0 -175
- package/src/Storage.ts +0 -435
- package/src/VectorDB.ts +0 -109
- package/src/backends/DistanceBackend.ts +0 -17
- package/src/backends/JsDistanceBackend.ts +0 -227
- package/src/encoding/DeltaEncoder.ts +0 -217
- package/src/errors.ts +0 -110
- package/src/index.ts +0 -138
- package/src/presets.ts +0 -229
- package/src/quantization/ScalarQuantizer.ts +0 -383
- package/src/storage/BatchWriter.ts +0 -336
- package/src/storage/BunStorageBackend.ts +0 -161
- package/src/storage/MemoryBackend.ts +0 -120
- package/src/storage/OPFSBackend.ts +0 -250
- package/src/storage/StorageBackend.ts +0 -74
- package/src/storage/WriteAheadLog.ts +0 -326
- package/src/storage/createStorageBackend.ts +0 -137
- package/src/storage/index.ts +0 -53
package/dist/Collection.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DistanceMetric } from './HNSWIndex';
|
|
2
|
+
import type { StorageBackend } from './storage/StorageBackend';
|
|
2
3
|
/**
|
|
3
4
|
* Configuration for adding vectors to a collection.
|
|
4
5
|
*/
|
|
@@ -6,8 +7,8 @@ export interface AddConfig {
|
|
|
6
7
|
/** Unique string identifiers for each vector */
|
|
7
8
|
ids: string[];
|
|
8
9
|
/** Array of vectors to add (must match collection dimension) */
|
|
9
|
-
vectors: number[]
|
|
10
|
-
/** Optional metadata for each vector (same length as ids/vectors) */
|
|
10
|
+
vectors: Array<number[] | Float32Array>;
|
|
11
|
+
/** Optional metadata for each vector (same length as ids/vectors, plain JSON objects only) */
|
|
11
12
|
metadata?: Array<Record<string, any>>;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
@@ -35,7 +36,7 @@ export interface AddConfig {
|
|
|
35
36
|
*/
|
|
36
37
|
export interface QueryConfig {
|
|
37
38
|
/** The query vector (must match collection dimension) */
|
|
38
|
-
queryVector: number[];
|
|
39
|
+
queryVector: number[] | Float32Array;
|
|
39
40
|
/** Number of nearest neighbors to return */
|
|
40
41
|
k: number;
|
|
41
42
|
/**
|
|
@@ -52,39 +53,80 @@ export interface QueryConfig {
|
|
|
52
53
|
filter?: Record<string, any>;
|
|
53
54
|
/** Search effort parameter (higher = better recall, slower). Default: max(k*2, 50) */
|
|
54
55
|
efSearch?: number;
|
|
56
|
+
/** Use int8 quantized search + float32 rescore. Default: auto (true when quantization enabled) */
|
|
57
|
+
useQuantizedSearch?: boolean;
|
|
58
|
+
/** Oversampling multiplier for quantized rescore (default: 3). Higher = better recall, slower. */
|
|
59
|
+
candidateMultiplier?: number;
|
|
55
60
|
}
|
|
56
61
|
export interface QueryResult {
|
|
57
62
|
ids: string[];
|
|
58
63
|
distances: number[];
|
|
59
64
|
metadata: Array<Record<string, any>>;
|
|
60
65
|
}
|
|
66
|
+
export interface CollectionOptions {
|
|
67
|
+
/**
|
|
68
|
+
* Persist mutating operations automatically after they complete.
|
|
69
|
+
* VectorDB-managed collections enable this by default.
|
|
70
|
+
*/
|
|
71
|
+
autoPersist?: boolean;
|
|
72
|
+
}
|
|
61
73
|
export declare class Collection {
|
|
74
|
+
private static readonly MAX_INTERNAL_ID;
|
|
62
75
|
private name;
|
|
63
76
|
private dimension;
|
|
64
77
|
private metric;
|
|
65
78
|
private M;
|
|
66
79
|
private efConstruction;
|
|
67
|
-
private
|
|
68
|
-
private
|
|
69
|
-
private
|
|
80
|
+
private storage;
|
|
81
|
+
private readonly stateKey;
|
|
82
|
+
private readonly defaultIndexKey;
|
|
83
|
+
private readonly defaultMetaKey;
|
|
84
|
+
private readonly defaultDeletedKey;
|
|
85
|
+
private indexKey;
|
|
86
|
+
private metaKey;
|
|
87
|
+
private deletedKey;
|
|
70
88
|
private hnsw;
|
|
71
89
|
private idMap;
|
|
72
90
|
private idReverseMap;
|
|
73
91
|
private metadata;
|
|
74
92
|
private deletedIds;
|
|
93
|
+
private nextNumericId;
|
|
94
|
+
private activeCount;
|
|
95
|
+
private readonly autoPersist;
|
|
96
|
+
private dirty;
|
|
97
|
+
private mutationLock;
|
|
75
98
|
constructor(name: string, config: {
|
|
76
99
|
dimension: number;
|
|
77
100
|
metric?: DistanceMetric;
|
|
78
101
|
M?: number;
|
|
79
102
|
efConstruction?: number;
|
|
80
|
-
},
|
|
103
|
+
}, storage: StorageBackend, options?: CollectionOptions);
|
|
81
104
|
init(): Promise<void>;
|
|
105
|
+
private withMutationLock;
|
|
106
|
+
flush(): Promise<void>;
|
|
107
|
+
private captureMutationSnapshot;
|
|
108
|
+
private restoreMutationSnapshot;
|
|
109
|
+
/**
|
|
110
|
+
* Wrap a mutation in snapshot-capture + auto-persist.
|
|
111
|
+
* The mutation fn should set `this.dirty = true` when it mutates state.
|
|
112
|
+
* If autoPersist is on and dirty was set, saves after fn completes.
|
|
113
|
+
* On error, restores from snapshot.
|
|
114
|
+
*/
|
|
115
|
+
private withAutoSave;
|
|
116
|
+
private reserveNumericIds;
|
|
117
|
+
private setActiveStorageKeys;
|
|
118
|
+
private isValidStorageState;
|
|
119
|
+
private loadStorageState;
|
|
120
|
+
private getVersionedDataKeys;
|
|
121
|
+
private isVersionedDataKey;
|
|
122
|
+
private validateLoadedIndexConfig;
|
|
82
123
|
private loadFromDisk;
|
|
83
124
|
add(config: AddConfig): Promise<void>;
|
|
84
125
|
query(config: QueryConfig): Promise<QueryResult>;
|
|
85
126
|
/**
|
|
86
127
|
* Batch query for multiple vectors at once.
|
|
87
|
-
*
|
|
128
|
+
* Shares query semantics with query(), including adaptive candidate expansion
|
|
129
|
+
* for filters and tombstones.
|
|
88
130
|
*
|
|
89
131
|
* @param configs Array of query configurations
|
|
90
132
|
* @returns Array of query results, one per query
|
|
@@ -98,24 +140,34 @@ export declare class Collection {
|
|
|
98
140
|
/**
|
|
99
141
|
* Upsert vectors (insert or update).
|
|
100
142
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
143
|
+
* For existing IDs, the old vectors are tombstone-deleted and new vectors
|
|
144
|
+
* are inserted. Use compact() periodically to reclaim space from
|
|
145
|
+
* tombstoned vectors.
|
|
104
146
|
*
|
|
105
|
-
*
|
|
147
|
+
* For new IDs, behaves identically to add().
|
|
106
148
|
*/
|
|
107
149
|
upsert(config: AddConfig): Promise<void>;
|
|
150
|
+
private addInternal;
|
|
151
|
+
/** Returns the vector dimension for this collection. */
|
|
152
|
+
getDimension(): number;
|
|
153
|
+
/** Returns the distance metric for this collection. */
|
|
154
|
+
getMetric(): DistanceMetric;
|
|
155
|
+
/** Returns the HNSW M parameter for this collection. */
|
|
156
|
+
getM(): number;
|
|
157
|
+
/** Returns the HNSW efConstruction parameter for this collection. */
|
|
158
|
+
getEfConstruction(): number;
|
|
108
159
|
/**
|
|
109
160
|
* Returns the number of active (non-deleted) vectors in the collection.
|
|
161
|
+
* O(1) via maintained counter.
|
|
110
162
|
*/
|
|
111
163
|
count(): number;
|
|
112
164
|
/**
|
|
113
|
-
* Returns the total number of vectors including deleted (tombstoned) ones.
|
|
165
|
+
* Returns the total number of tracked vectors including deleted (tombstoned) ones.
|
|
114
166
|
* Use this to determine when compaction might be beneficial.
|
|
115
167
|
*/
|
|
116
168
|
countWithDeleted(): number;
|
|
117
169
|
/**
|
|
118
|
-
* Returns the number of deleted (tombstoned) vectors.
|
|
170
|
+
* Returns the number of deleted (tombstoned) vectors awaiting compaction.
|
|
119
171
|
*/
|
|
120
172
|
deletedCount(): number;
|
|
121
173
|
/**
|
|
@@ -126,14 +178,15 @@ export declare class Collection {
|
|
|
126
178
|
* @param id The string ID of the vector to delete
|
|
127
179
|
* @returns true if the vector was deleted, false if it didn't exist or was already deleted
|
|
128
180
|
*/
|
|
129
|
-
|
|
181
|
+
private deleteInternal;
|
|
182
|
+
delete(id: string): Promise<boolean>;
|
|
130
183
|
/**
|
|
131
184
|
* Mark multiple vectors as deleted (tombstone deletion).
|
|
132
185
|
*
|
|
133
186
|
* @param ids Array of string IDs to delete
|
|
134
187
|
* @returns Number of vectors that were successfully deleted
|
|
135
188
|
*/
|
|
136
|
-
deleteBatch(ids: string[]): number
|
|
189
|
+
deleteBatch(ids: string[]): Promise<number>;
|
|
137
190
|
/**
|
|
138
191
|
* Check if a vector exists and is not deleted.
|
|
139
192
|
*/
|
|
@@ -142,8 +195,31 @@ export declare class Collection {
|
|
|
142
195
|
* Check if a vector was deleted (tombstoned).
|
|
143
196
|
*/
|
|
144
197
|
isDeleted(id: string): boolean;
|
|
198
|
+
/**
|
|
199
|
+
* Reorder the internal HNSW index for BFS cache locality.
|
|
200
|
+
* Remaps all internal IDs so that graph neighbors are stored
|
|
201
|
+
* contiguously in memory, improving search cache hit rates.
|
|
202
|
+
*/
|
|
203
|
+
reorderIndex(): Promise<void>;
|
|
145
204
|
saveToDisk(): Promise<void>;
|
|
205
|
+
private saveToDiskUnlocked;
|
|
206
|
+
private executeQuery;
|
|
207
|
+
private searchCandidates;
|
|
208
|
+
private filterAndDeduplicateResults;
|
|
209
|
+
private materializeResults;
|
|
210
|
+
private validateQueryInput;
|
|
211
|
+
private hasFilter;
|
|
212
|
+
private reconcileLoadedState;
|
|
146
213
|
private matchesFilter;
|
|
214
|
+
private validateFilterOperators;
|
|
215
|
+
private validateAddInput;
|
|
216
|
+
private validateMetadataValue;
|
|
217
|
+
private parseMetadataLine;
|
|
218
|
+
private isPlainObject;
|
|
219
|
+
private isFilterObject;
|
|
220
|
+
private isOperatorObject;
|
|
221
|
+
private deepEqual;
|
|
222
|
+
private matchesInOperator;
|
|
147
223
|
/**
|
|
148
224
|
* Compact the collection by rebuilding the index without deleted vectors.
|
|
149
225
|
* This permanently removes tombstoned vectors and reclaims space.
|
|
@@ -151,6 +227,11 @@ export declare class Collection {
|
|
|
151
227
|
* @returns Number of vectors removed during compaction
|
|
152
228
|
*/
|
|
153
229
|
compact(): Promise<number>;
|
|
154
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Destroy the collection, freeing all in-memory resources.
|
|
232
|
+
* @param save Whether to persist data to storage before destroying (default: true).
|
|
233
|
+
* Pass false when the collection is being deleted entirely.
|
|
234
|
+
*/
|
|
235
|
+
destroy(save?: boolean): Promise<void>;
|
|
155
236
|
}
|
|
156
237
|
//# sourceMappingURL=Collection.d.ts.map
|
package/dist/Collection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|