verso-db 0.2.0 → 0.4.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 +31 -16
- package/dist/Collection.d.ts +2 -0
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +13 -6
- package/dist/Collection.js.map +1 -1
- package/dist/HNSWIndex.d.ts +44 -2
- package/dist/HNSWIndex.d.ts.map +1 -1
- package/dist/HNSWIndex.js +262 -45
- package/dist/HNSWIndex.js.map +1 -1
- package/dist/SearchWorker.d.ts +36 -8
- package/dist/SearchWorker.d.ts.map +1 -1
- package/dist/SearchWorker.js +207 -51
- package/dist/SearchWorker.js.map +1 -1
- package/dist/VectorDB.d.ts.map +1 -1
- package/dist/VectorDB.js +21 -5
- package/dist/VectorDB.js.map +1 -1
- package/dist/WorkerPool.d.ts +36 -8
- package/dist/WorkerPool.d.ts.map +1 -1
- package/dist/WorkerPool.js +191 -17
- package/dist/WorkerPool.js.map +1 -1
- package/dist/encoding/DeltaEncoder.d.ts.map +1 -1
- package/dist/encoding/DeltaEncoder.js +17 -1
- package/dist/encoding/DeltaEncoder.js.map +1 -1
- package/dist/presets.d.ts +5 -4
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +11 -10
- package/dist/presets.js.map +1 -1
- package/dist/quantization/ScalarQuantizer.d.ts.map +1 -1
- package/dist/quantization/ScalarQuantizer.js +28 -2
- package/dist/quantization/ScalarQuantizer.js.map +1 -1
- package/dist/storage/BunStorageBackend.d.ts +0 -2
- package/dist/storage/BunStorageBackend.d.ts.map +1 -1
- package/dist/storage/BunStorageBackend.js +9 -5
- package/dist/storage/BunStorageBackend.js.map +1 -1
- package/package.json +6 -2
package/dist/VectorDB.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorDB.js","sourceRoot":"","sources":["../src/VectorDB.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VectorDB.js","sourceRoot":"","sources":["../src/VectorDB.ts"],"names":[],"mappings":"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"}
|
package/dist/WorkerPool.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Worker pool for parallel query processing.
|
|
3
|
-
* Dispatches queries to workers via
|
|
3
|
+
* Dispatches queries to workers via shortest-queue for concurrent execution.
|
|
4
4
|
* Falls back to sequential processing when workers are unavailable.
|
|
5
5
|
*/
|
|
6
6
|
import { HNSWIndex } from './HNSWIndex';
|
|
@@ -8,15 +8,27 @@ export declare class WorkerPool {
|
|
|
8
8
|
private numWorkers?;
|
|
9
9
|
private workers;
|
|
10
10
|
private nextQueryId;
|
|
11
|
-
private roundRobinIndex;
|
|
12
11
|
private initialized;
|
|
13
12
|
private fallbackIndex;
|
|
13
|
+
private defaultTimeout;
|
|
14
|
+
/** Dimension of vectors, cached from init for batch dispatch */
|
|
15
|
+
private dimension;
|
|
14
16
|
/**
|
|
15
17
|
* Create a worker pool for parallel HNSW search.
|
|
16
18
|
*
|
|
17
19
|
* @param numWorkers Number of workers (default: available hardware concurrency or 4)
|
|
20
|
+
* @param timeout Default per-query timeout in ms (default: 30000)
|
|
18
21
|
*/
|
|
19
|
-
constructor(numWorkers?: number | undefined);
|
|
22
|
+
constructor(numWorkers?: number | undefined, timeout?: number);
|
|
23
|
+
/**
|
|
24
|
+
* Create and initialize a worker pool in one step.
|
|
25
|
+
*
|
|
26
|
+
* @param index The HNSW index to distribute to workers
|
|
27
|
+
* @param numWorkers Number of workers (default: auto-detect)
|
|
28
|
+
* @param timeout Default per-query timeout in ms (default: 30000)
|
|
29
|
+
* @returns Initialized WorkerPool
|
|
30
|
+
*/
|
|
31
|
+
static create(index: HNSWIndex, numWorkers?: number, timeout?: number): Promise<WorkerPool>;
|
|
20
32
|
/**
|
|
21
33
|
* Initialize workers with shared index data.
|
|
22
34
|
* When the index uses SharedArrayBuffer, workers receive zero-copy
|
|
@@ -25,16 +37,21 @@ export declare class WorkerPool {
|
|
|
25
37
|
* @param index The HNSW index to distribute to workers
|
|
26
38
|
*/
|
|
27
39
|
init(index: HNSWIndex): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the worker with the fewest pending queries (shortest-queue dispatch).
|
|
42
|
+
*/
|
|
43
|
+
private getShortestQueueWorker;
|
|
28
44
|
/**
|
|
29
45
|
* Search for k nearest neighbors using worker pool.
|
|
30
|
-
* Dispatches to
|
|
46
|
+
* Dispatches to the worker with fewest pending queries.
|
|
31
47
|
*
|
|
32
48
|
* @param query Query vector
|
|
33
49
|
* @param k Number of results
|
|
34
50
|
* @param efSearch Search effort parameter
|
|
51
|
+
* @param timeout Per-query timeout in ms (default: pool default)
|
|
35
52
|
* @returns Array of {id, distance} results
|
|
36
53
|
*/
|
|
37
|
-
search(query: Float32Array, k: number, efSearch?: number): Promise<Array<{
|
|
54
|
+
search(query: Float32Array, k: number, efSearch?: number, timeout?: number): Promise<Array<{
|
|
38
55
|
id: number;
|
|
39
56
|
distance: number;
|
|
40
57
|
}>>;
|
|
@@ -53,7 +70,8 @@ export declare class WorkerPool {
|
|
|
53
70
|
distance: number;
|
|
54
71
|
}>>;
|
|
55
72
|
/**
|
|
56
|
-
* Batch search: dispatch multiple queries
|
|
73
|
+
* Batch search: dispatch multiple queries across workers using batch messages.
|
|
74
|
+
* Sends one postMessage per worker instead of one per query.
|
|
57
75
|
*
|
|
58
76
|
* @param queries Array of query vectors
|
|
59
77
|
* @param k Number of results per query
|
|
@@ -71,15 +89,25 @@ export declare class WorkerPool {
|
|
|
71
89
|
id: number;
|
|
72
90
|
distance: number;
|
|
73
91
|
}>>>;
|
|
92
|
+
/**
|
|
93
|
+
* Internal batch dispatch: partition queries across workers and send one
|
|
94
|
+
* postMessage per worker with all queries concatenated into a single Float32Array.
|
|
95
|
+
*/
|
|
96
|
+
private _dispatchBatch;
|
|
74
97
|
/**
|
|
75
98
|
* Send incremental graph updates to all workers.
|
|
76
|
-
*
|
|
77
|
-
*
|
|
99
|
+
* When shared graph SABs are used, this only updates metadata.
|
|
100
|
+
* Workers see neighbor data changes via SharedArrayBuffer directly.
|
|
78
101
|
*/
|
|
79
102
|
broadcastGraphUpdate(newNodes: Array<{
|
|
80
103
|
id: number;
|
|
81
104
|
neighbors: number[][];
|
|
82
105
|
}>, entryPointId?: number, maxLevel?: number): void;
|
|
106
|
+
/**
|
|
107
|
+
* Broadcast only metadata updates (entry point, max level, node count).
|
|
108
|
+
* Used when shared graph SABs handle neighbor data directly.
|
|
109
|
+
*/
|
|
110
|
+
broadcastMetadataUpdate(entryPointId: number, maxLevel: number, nodeCount: number): void;
|
|
83
111
|
/**
|
|
84
112
|
* Terminate all workers and clean up.
|
|
85
113
|
*/
|
package/dist/WorkerPool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerPool.d.ts","sourceRoot":"","sources":["../src/WorkerPool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerPool.d.ts","sourceRoot":"","sources":["../src/WorkerPool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAYxC,qBAAa,UAAU;IAeT,OAAO,CAAC,UAAU,CAAC;IAd/B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,cAAc,CAAS;IAC/B,gEAAgE;IAChE,OAAO,CAAC,SAAS,CAAa;IAE9B;;;;;OAKG;gBACiB,UAAU,CAAC,EAAE,MAAM,YAAA,EAAE,OAAO,CAAC,EAAE,MAAM;IASzD;;;;;;;OAOG;WACU,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMjG;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuH3C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;;;;;;;OASG;IACG,MAAM,CACV,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA0CnD;;;;;;;;;OASG;IACG,eAAe,CACnB,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,mBAAmB,GAAE,MAAU,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA0CnD;;;;;;;;OAQG;IACG,WAAW,CACf,OAAO,EAAE,YAAY,EAAE,EACvB,CAAC,EAAE,MAAM,EACT,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAoB1D;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,YAAY,EAAE,EACvB,CAAC,EAAE,MAAM,EACT,mBAAmB,GAAE,MAAU,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAqB1D;;;OAGG;YACW,cAAc;IAqF5B;;;;OAIG;IACH,oBAAoB,CAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,CAAC,EACtD,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;IAgBP;;;OAGG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAWxF;;OAEG;IACH,OAAO,IAAI,IAAI;IAkBf;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
package/dist/WorkerPool.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Worker pool for parallel query processing.
|
|
3
|
-
* Dispatches queries to workers via
|
|
3
|
+
* Dispatches queries to workers via shortest-queue for concurrent execution.
|
|
4
4
|
* Falls back to sequential processing when workers are unavailable.
|
|
5
5
|
*/
|
|
6
6
|
import { VectorDBError } from './errors.js';
|
|
@@ -8,21 +8,38 @@ export class WorkerPool {
|
|
|
8
8
|
numWorkers;
|
|
9
9
|
workers = [];
|
|
10
10
|
nextQueryId = 0;
|
|
11
|
-
roundRobinIndex = 0;
|
|
12
11
|
initialized = false;
|
|
13
12
|
fallbackIndex = null;
|
|
13
|
+
defaultTimeout;
|
|
14
|
+
/** Dimension of vectors, cached from init for batch dispatch */
|
|
15
|
+
dimension = 0;
|
|
14
16
|
/**
|
|
15
17
|
* Create a worker pool for parallel HNSW search.
|
|
16
18
|
*
|
|
17
19
|
* @param numWorkers Number of workers (default: available hardware concurrency or 4)
|
|
20
|
+
* @param timeout Default per-query timeout in ms (default: 30000)
|
|
18
21
|
*/
|
|
19
|
-
constructor(numWorkers) {
|
|
22
|
+
constructor(numWorkers, timeout) {
|
|
20
23
|
this.numWorkers = numWorkers;
|
|
21
24
|
if (!numWorkers) {
|
|
22
25
|
this.numWorkers = typeof navigator !== 'undefined'
|
|
23
26
|
? (navigator.hardwareConcurrency ?? 4)
|
|
24
27
|
: 4;
|
|
25
28
|
}
|
|
29
|
+
this.defaultTimeout = timeout ?? 30000;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create and initialize a worker pool in one step.
|
|
33
|
+
*
|
|
34
|
+
* @param index The HNSW index to distribute to workers
|
|
35
|
+
* @param numWorkers Number of workers (default: auto-detect)
|
|
36
|
+
* @param timeout Default per-query timeout in ms (default: 30000)
|
|
37
|
+
* @returns Initialized WorkerPool
|
|
38
|
+
*/
|
|
39
|
+
static async create(index, numWorkers, timeout) {
|
|
40
|
+
const pool = new WorkerPool(numWorkers, timeout);
|
|
41
|
+
await pool.init(index);
|
|
42
|
+
return pool;
|
|
26
43
|
}
|
|
27
44
|
/**
|
|
28
45
|
* Initialize workers with shared index data.
|
|
@@ -47,6 +64,7 @@ export class WorkerPool {
|
|
|
47
64
|
this.initialized = true;
|
|
48
65
|
return;
|
|
49
66
|
}
|
|
67
|
+
this.dimension = sharedData.dimension;
|
|
50
68
|
const workerModulePath = import.meta.url.endsWith('.ts')
|
|
51
69
|
? './SearchWorker.ts'
|
|
52
70
|
: './SearchWorker.js';
|
|
@@ -60,6 +78,8 @@ export class WorkerPool {
|
|
|
60
78
|
readyResolve: null,
|
|
61
79
|
pendingResolve: new Map(),
|
|
62
80
|
pendingReject: new Map(),
|
|
81
|
+
pendingCount: 0,
|
|
82
|
+
pendingTimers: new Map(),
|
|
63
83
|
};
|
|
64
84
|
worker.onmessage = (event) => {
|
|
65
85
|
const msg = event.data;
|
|
@@ -69,11 +89,17 @@ export class WorkerPool {
|
|
|
69
89
|
handle.readyResolve = null;
|
|
70
90
|
}
|
|
71
91
|
}
|
|
72
|
-
else if (msg.type === 'result') {
|
|
92
|
+
else if (msg.type === 'result' || msg.type === 'batchResult') {
|
|
73
93
|
const resolve = handle.pendingResolve.get(msg.queryId);
|
|
74
94
|
if (resolve) {
|
|
75
95
|
handle.pendingResolve.delete(msg.queryId);
|
|
76
96
|
handle.pendingReject.delete(msg.queryId);
|
|
97
|
+
const timer = handle.pendingTimers.get(msg.queryId);
|
|
98
|
+
if (timer !== undefined) {
|
|
99
|
+
clearTimeout(timer);
|
|
100
|
+
handle.pendingTimers.delete(msg.queryId);
|
|
101
|
+
}
|
|
102
|
+
handle.pendingCount--;
|
|
77
103
|
resolve(msg.results);
|
|
78
104
|
}
|
|
79
105
|
}
|
|
@@ -82,16 +108,27 @@ export class WorkerPool {
|
|
|
82
108
|
if (reject) {
|
|
83
109
|
handle.pendingResolve.delete(msg.queryId);
|
|
84
110
|
handle.pendingReject.delete(msg.queryId);
|
|
111
|
+
const timer = handle.pendingTimers.get(msg.queryId);
|
|
112
|
+
if (timer !== undefined) {
|
|
113
|
+
clearTimeout(timer);
|
|
114
|
+
handle.pendingTimers.delete(msg.queryId);
|
|
115
|
+
}
|
|
116
|
+
handle.pendingCount--;
|
|
85
117
|
reject(new Error(msg.error));
|
|
86
118
|
}
|
|
87
119
|
}
|
|
88
120
|
};
|
|
89
121
|
worker.onerror = (event) => {
|
|
90
|
-
for (const reject of handle.pendingReject.
|
|
122
|
+
for (const [queryId, reject] of handle.pendingReject.entries()) {
|
|
123
|
+
const timer = handle.pendingTimers.get(queryId);
|
|
124
|
+
if (timer !== undefined)
|
|
125
|
+
clearTimeout(timer);
|
|
91
126
|
reject(new Error(`Worker error: ${event.message}`));
|
|
92
127
|
}
|
|
93
128
|
handle.pendingResolve.clear();
|
|
94
129
|
handle.pendingReject.clear();
|
|
130
|
+
handle.pendingTimers.clear();
|
|
131
|
+
handle.pendingCount = 0;
|
|
95
132
|
};
|
|
96
133
|
const readyPromise = new Promise((resolve) => {
|
|
97
134
|
handle.readyResolve = resolve;
|
|
@@ -119,16 +156,31 @@ export class WorkerPool {
|
|
|
119
156
|
}
|
|
120
157
|
this.initialized = true;
|
|
121
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the worker with the fewest pending queries (shortest-queue dispatch).
|
|
161
|
+
*/
|
|
162
|
+
getShortestQueueWorker() {
|
|
163
|
+
let minPending = Infinity;
|
|
164
|
+
let bestIdx = 0;
|
|
165
|
+
for (let i = 0; i < this.workers.length; i++) {
|
|
166
|
+
if (this.workers[i].pendingCount < minPending) {
|
|
167
|
+
minPending = this.workers[i].pendingCount;
|
|
168
|
+
bestIdx = i;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return this.workers[bestIdx];
|
|
172
|
+
}
|
|
122
173
|
/**
|
|
123
174
|
* Search for k nearest neighbors using worker pool.
|
|
124
|
-
* Dispatches to
|
|
175
|
+
* Dispatches to the worker with fewest pending queries.
|
|
125
176
|
*
|
|
126
177
|
* @param query Query vector
|
|
127
178
|
* @param k Number of results
|
|
128
179
|
* @param efSearch Search effort parameter
|
|
180
|
+
* @param timeout Per-query timeout in ms (default: pool default)
|
|
129
181
|
* @returns Array of {id, distance} results
|
|
130
182
|
*/
|
|
131
|
-
async search(query, k, efSearch) {
|
|
183
|
+
async search(query, k, efSearch, timeout) {
|
|
132
184
|
if (!this.initialized) {
|
|
133
185
|
throw new VectorDBError('WorkerPool not initialized. Call init() first.', 'VALIDATION_ERROR');
|
|
134
186
|
}
|
|
@@ -137,12 +189,24 @@ export class WorkerPool {
|
|
|
137
189
|
return this.fallbackIndex.searchKNN(query, k, efSearch);
|
|
138
190
|
}
|
|
139
191
|
const queryId = this.nextQueryId++;
|
|
140
|
-
const
|
|
141
|
-
this.
|
|
142
|
-
const handle = this.workers[workerIdx];
|
|
192
|
+
const handle = this.getShortestQueueWorker();
|
|
193
|
+
const queryTimeout = timeout ?? this.defaultTimeout;
|
|
143
194
|
return new Promise((resolve, reject) => {
|
|
144
195
|
handle.pendingResolve.set(queryId, resolve);
|
|
145
196
|
handle.pendingReject.set(queryId, reject);
|
|
197
|
+
handle.pendingCount++;
|
|
198
|
+
// Set per-query timeout
|
|
199
|
+
const timer = setTimeout(() => {
|
|
200
|
+
handle.pendingResolve.delete(queryId);
|
|
201
|
+
handle.pendingReject.delete(queryId);
|
|
202
|
+
handle.pendingTimers.delete(queryId);
|
|
203
|
+
handle.pendingCount--;
|
|
204
|
+
reject(new VectorDBError('Worker query timed out', 'TIMEOUT_ERROR'));
|
|
205
|
+
}, queryTimeout);
|
|
206
|
+
if (typeof timer === 'object' && 'unref' in timer) {
|
|
207
|
+
timer.unref();
|
|
208
|
+
}
|
|
209
|
+
handle.pendingTimers.set(queryId, timer);
|
|
146
210
|
handle.worker.postMessage({
|
|
147
211
|
type: 'search',
|
|
148
212
|
queryId,
|
|
@@ -171,12 +235,22 @@ export class WorkerPool {
|
|
|
171
235
|
return this.fallbackIndex.searchKNNQuantized(query, k, candidateMultiplier, efSearch);
|
|
172
236
|
}
|
|
173
237
|
const queryId = this.nextQueryId++;
|
|
174
|
-
const
|
|
175
|
-
this.roundRobinIndex++;
|
|
176
|
-
const handle = this.workers[workerIdx];
|
|
238
|
+
const handle = this.getShortestQueueWorker();
|
|
177
239
|
return new Promise((resolve, reject) => {
|
|
178
240
|
handle.pendingResolve.set(queryId, resolve);
|
|
179
241
|
handle.pendingReject.set(queryId, reject);
|
|
242
|
+
handle.pendingCount++;
|
|
243
|
+
const timer = setTimeout(() => {
|
|
244
|
+
handle.pendingResolve.delete(queryId);
|
|
245
|
+
handle.pendingReject.delete(queryId);
|
|
246
|
+
handle.pendingTimers.delete(queryId);
|
|
247
|
+
handle.pendingCount--;
|
|
248
|
+
reject(new VectorDBError('Worker query timed out', 'TIMEOUT_ERROR'));
|
|
249
|
+
}, this.defaultTimeout);
|
|
250
|
+
if (typeof timer === 'object' && 'unref' in timer) {
|
|
251
|
+
timer.unref();
|
|
252
|
+
}
|
|
253
|
+
handle.pendingTimers.set(queryId, timer);
|
|
180
254
|
handle.worker.postMessage({
|
|
181
255
|
type: 'search',
|
|
182
256
|
queryId,
|
|
@@ -189,7 +263,8 @@ export class WorkerPool {
|
|
|
189
263
|
});
|
|
190
264
|
}
|
|
191
265
|
/**
|
|
192
|
-
* Batch search: dispatch multiple queries
|
|
266
|
+
* Batch search: dispatch multiple queries across workers using batch messages.
|
|
267
|
+
* Sends one postMessage per worker instead of one per query.
|
|
193
268
|
*
|
|
194
269
|
* @param queries Array of query vectors
|
|
195
270
|
* @param k Number of results per query
|
|
@@ -204,6 +279,11 @@ export class WorkerPool {
|
|
|
204
279
|
if (this.workers.length === 0 && this.fallbackIndex) {
|
|
205
280
|
return queries.map(q => this.fallbackIndex.searchKNN(q, k, efSearch));
|
|
206
281
|
}
|
|
282
|
+
// Use batch dispatch for efficiency
|
|
283
|
+
if (queries.length > 1 && this.dimension > 0) {
|
|
284
|
+
return this._dispatchBatch(queries, k, efSearch || Math.max(k * 2, 50), false);
|
|
285
|
+
}
|
|
286
|
+
// Single query or dimension unknown, fall back to individual dispatch
|
|
207
287
|
const promises = queries.map(q => this.search(q, k, efSearch));
|
|
208
288
|
return Promise.all(promises);
|
|
209
289
|
}
|
|
@@ -217,13 +297,88 @@ export class WorkerPool {
|
|
|
217
297
|
if (this.workers.length === 0 && this.fallbackIndex) {
|
|
218
298
|
return queries.map(q => this.fallbackIndex.searchKNNQuantized(q, k, candidateMultiplier, efSearch));
|
|
219
299
|
}
|
|
300
|
+
if (queries.length > 1 && this.dimension > 0) {
|
|
301
|
+
return this._dispatchBatch(queries, k, efSearch || Math.max(k * candidateMultiplier * 2, 50), true, candidateMultiplier);
|
|
302
|
+
}
|
|
220
303
|
const promises = queries.map(q => this.searchQuantized(q, k, candidateMultiplier, efSearch));
|
|
221
304
|
return Promise.all(promises);
|
|
222
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Internal batch dispatch: partition queries across workers and send one
|
|
308
|
+
* postMessage per worker with all queries concatenated into a single Float32Array.
|
|
309
|
+
*/
|
|
310
|
+
async _dispatchBatch(queries, k, efSearch, quantized, candidateMultiplier) {
|
|
311
|
+
const dim = this.dimension;
|
|
312
|
+
const numWorkers = this.workers.length;
|
|
313
|
+
// Partition queries across workers accounting for current pending load
|
|
314
|
+
const assignments = Array.from({ length: numWorkers }, () => []);
|
|
315
|
+
for (let i = 0; i < queries.length; i++) {
|
|
316
|
+
// Find worker with lowest total load (pending + assigned in this batch)
|
|
317
|
+
let minLoad = Infinity;
|
|
318
|
+
let bestIdx = 0;
|
|
319
|
+
for (let w = 0; w < numWorkers; w++) {
|
|
320
|
+
const load = this.workers[w].pendingCount + assignments[w].length;
|
|
321
|
+
if (load < minLoad) {
|
|
322
|
+
minLoad = load;
|
|
323
|
+
bestIdx = w;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
assignments[bestIdx].push(i);
|
|
327
|
+
}
|
|
328
|
+
const results = new Array(queries.length);
|
|
329
|
+
const promises = [];
|
|
330
|
+
for (let w = 0; w < numWorkers; w++) {
|
|
331
|
+
const indices = assignments[w];
|
|
332
|
+
if (indices.length === 0)
|
|
333
|
+
continue;
|
|
334
|
+
const handle = this.workers[w];
|
|
335
|
+
const queryCount = indices.length;
|
|
336
|
+
// Concatenate assigned queries into one buffer
|
|
337
|
+
const batchBuffer = new Float32Array(queryCount * dim);
|
|
338
|
+
for (let i = 0; i < queryCount; i++) {
|
|
339
|
+
batchBuffer.set(queries[indices[i]], i * dim);
|
|
340
|
+
}
|
|
341
|
+
const batchQueryId = this.nextQueryId++;
|
|
342
|
+
const promise = new Promise((resolve, reject) => {
|
|
343
|
+
handle.pendingResolve.set(batchQueryId, (batchResults) => {
|
|
344
|
+
for (let i = 0; i < queryCount; i++) {
|
|
345
|
+
results[indices[i]] = batchResults[i];
|
|
346
|
+
}
|
|
347
|
+
resolve();
|
|
348
|
+
});
|
|
349
|
+
handle.pendingReject.set(batchQueryId, (err) => { reject(err); });
|
|
350
|
+
handle.pendingCount++;
|
|
351
|
+
const timer = setTimeout(() => {
|
|
352
|
+
handle.pendingResolve.delete(batchQueryId);
|
|
353
|
+
handle.pendingReject.delete(batchQueryId);
|
|
354
|
+
handle.pendingTimers.delete(batchQueryId);
|
|
355
|
+
handle.pendingCount--;
|
|
356
|
+
reject(new VectorDBError('Worker batch query timed out', 'TIMEOUT_ERROR'));
|
|
357
|
+
}, this.defaultTimeout);
|
|
358
|
+
if (typeof timer === 'object' && 'unref' in timer) {
|
|
359
|
+
timer.unref();
|
|
360
|
+
}
|
|
361
|
+
handle.pendingTimers.set(batchQueryId, timer);
|
|
362
|
+
});
|
|
363
|
+
handle.worker.postMessage({
|
|
364
|
+
type: 'searchBatch',
|
|
365
|
+
queryId: batchQueryId,
|
|
366
|
+
queryBuffer: batchBuffer,
|
|
367
|
+
queryCount,
|
|
368
|
+
k,
|
|
369
|
+
efSearch,
|
|
370
|
+
quantized,
|
|
371
|
+
candidateMultiplier,
|
|
372
|
+
});
|
|
373
|
+
promises.push(promise);
|
|
374
|
+
}
|
|
375
|
+
await Promise.all(promises);
|
|
376
|
+
return results;
|
|
377
|
+
}
|
|
223
378
|
/**
|
|
224
379
|
* Send incremental graph updates to all workers.
|
|
225
|
-
*
|
|
226
|
-
*
|
|
380
|
+
* When shared graph SABs are used, this only updates metadata.
|
|
381
|
+
* Workers see neighbor data changes via SharedArrayBuffer directly.
|
|
227
382
|
*/
|
|
228
383
|
broadcastGraphUpdate(newNodes, entryPointId, maxLevel) {
|
|
229
384
|
for (const handle of this.workers) {
|
|
@@ -240,17 +395,36 @@ export class WorkerPool {
|
|
|
240
395
|
}
|
|
241
396
|
}
|
|
242
397
|
}
|
|
398
|
+
/**
|
|
399
|
+
* Broadcast only metadata updates (entry point, max level, node count).
|
|
400
|
+
* Used when shared graph SABs handle neighbor data directly.
|
|
401
|
+
*/
|
|
402
|
+
broadcastMetadataUpdate(entryPointId, maxLevel, nodeCount) {
|
|
403
|
+
for (const handle of this.workers) {
|
|
404
|
+
handle.worker.postMessage({
|
|
405
|
+
type: 'updateEntryPoint',
|
|
406
|
+
entryPointId,
|
|
407
|
+
maxLevel,
|
|
408
|
+
nodeCount,
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
}
|
|
243
412
|
/**
|
|
244
413
|
* Terminate all workers and clean up.
|
|
245
414
|
*/
|
|
246
415
|
destroy() {
|
|
247
416
|
for (const handle of this.workers) {
|
|
248
417
|
handle.worker.terminate();
|
|
249
|
-
for (const reject of handle.pendingReject.
|
|
418
|
+
for (const [queryId, reject] of handle.pendingReject.entries()) {
|
|
419
|
+
const timer = handle.pendingTimers.get(queryId);
|
|
420
|
+
if (timer !== undefined)
|
|
421
|
+
clearTimeout(timer);
|
|
250
422
|
reject(new Error('Worker pool destroyed'));
|
|
251
423
|
}
|
|
252
424
|
handle.pendingResolve.clear();
|
|
253
425
|
handle.pendingReject.clear();
|
|
426
|
+
handle.pendingTimers.clear();
|
|
427
|
+
handle.pendingCount = 0;
|
|
254
428
|
}
|
|
255
429
|
this.workers = [];
|
|
256
430
|
this.initialized = false;
|
package/dist/WorkerPool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerPool.js","sourceRoot":"","sources":["../src/WorkerPool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkerPool.js","sourceRoot":"","sources":["../src/WorkerPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaEncoder.d.ts","sourceRoot":"","sources":["../../src/encoding/DeltaEncoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAWtF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"DeltaEncoder.d.ts","sourceRoot":"","sources":["../../src/encoding/DeltaEncoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAWtF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BjF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,UAAU,CAyCvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAoChF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,MAAM,CAuB/E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG;IAC3D,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CA0BA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,EAAE,EAAE,CAaZ"}
|
|
@@ -36,6 +36,9 @@ export function encodeVarint(value, buffer, offset) {
|
|
|
36
36
|
* Returns [value, bytesRead]
|
|
37
37
|
*/
|
|
38
38
|
export function decodeVarint(buffer, offset) {
|
|
39
|
+
if (!Number.isInteger(offset) || offset < 0 || offset >= buffer.length) {
|
|
40
|
+
throw new VectorDBError(`Invalid varint offset ${offset}`, 'CORRUPT_INDEX');
|
|
41
|
+
}
|
|
39
42
|
let result = 0;
|
|
40
43
|
let shift = 0;
|
|
41
44
|
let bytesRead = 0;
|
|
@@ -115,9 +118,18 @@ export function deltaEncodeNeighbors(neighbors, preSorted = false) {
|
|
|
115
118
|
* Returns the original neighbor IDs (sorted)
|
|
116
119
|
*/
|
|
117
120
|
export function deltaDecodeNeighbors(buffer, count) {
|
|
121
|
+
if (!Number.isInteger(count) || count < 0) {
|
|
122
|
+
throw new VectorDBError(`Invalid neighbor count ${count}`, 'CORRUPT_INDEX');
|
|
123
|
+
}
|
|
118
124
|
if (count === 0 || buffer.length === 0) {
|
|
125
|
+
if (count !== 0) {
|
|
126
|
+
throw new VectorDBError('Corrupt delta-encoded neighbors: missing first neighbor ID', 'CORRUPT_INDEX');
|
|
127
|
+
}
|
|
119
128
|
return [];
|
|
120
129
|
}
|
|
130
|
+
if (buffer.length < 4) {
|
|
131
|
+
throw new VectorDBError(`Corrupt delta-encoded neighbors: first neighbor needs 4 bytes, got ${buffer.length}`, 'CORRUPT_INDEX');
|
|
132
|
+
}
|
|
121
133
|
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
122
134
|
const neighbors = new Array(count);
|
|
123
135
|
// First ID as full uint32
|
|
@@ -126,7 +138,11 @@ export function deltaDecodeNeighbors(buffer, count) {
|
|
|
126
138
|
// Remaining as deltas
|
|
127
139
|
for (let i = 1; i < count; i++) {
|
|
128
140
|
const [delta, bytesRead] = decodeVarint(buffer, offset);
|
|
129
|
-
|
|
141
|
+
const next = neighbors[i - 1] + delta;
|
|
142
|
+
if (next > 0xFFFFFFFF) {
|
|
143
|
+
throw new VectorDBError(`Corrupt delta-encoded neighbors: decoded ID ${next} exceeds uint32 range`, 'CORRUPT_INDEX');
|
|
144
|
+
}
|
|
145
|
+
neighbors[i] = next;
|
|
130
146
|
offset += bytesRead;
|
|
131
147
|
}
|
|
132
148
|
return neighbors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaEncoder.js","sourceRoot":"","sources":["../../src/encoding/DeltaEncoder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DeltaEncoder.js","sourceRoot":"","sources":["../../src/encoding/DeltaEncoder.ts"],"names":[],"mappings":"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"}
|