@delali/narsil 0.2.4-next.47 → 0.2.4-next.49
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/README.md +2 -2
- package/dist/adapters/indexeddb.mjs +15 -10
- package/dist/{chunk-BFIH7OV5.mjs → chunk-2GWVQWGA.mjs} +3 -1
- package/dist/{chunk-UZTT2BKQ.mjs → chunk-56PJBIJ6.mjs} +891 -542
- package/dist/chunk-CBLS46IE.mjs +10 -0
- package/dist/{chunk-JQUL2T6I.mjs → chunk-GCM3JFVA.mjs} +1 -2
- package/dist/{chunk-4COAUBLJ.mjs → chunk-HGJC5L65.mjs} +4 -7
- package/dist/{chunk-DFZDV5FV.mjs → chunk-JXHUHFJ5.mjs} +27 -14
- package/dist/{chunk-XWICBGYT.mjs → chunk-KGRYQVZ5.mjs} +2 -5
- package/dist/{chunk-EV45L35L.mjs → chunk-M6JGMKA5.mjs} +391 -183
- package/dist/{chunk-PM52SMBT.mjs → chunk-OOSIDHA3.mjs} +2 -1
- package/dist/chunk-ORBLD3EL.mjs +6 -0
- package/dist/chunk-OWCFK42Q.mjs +30 -0
- package/dist/{chunk-WTONLDU3.mjs → chunk-RDGXYRF4.mjs} +1 -0
- package/dist/chunk-UNEEFTEU.mjs +7 -0
- package/dist/chunk-YEO6G2NG.mjs +6 -0
- package/dist/{client-C5BkUqB8.d.ts → client-DX7xPcNA.d.ts} +1 -1
- package/dist/client.d.ts +5 -5
- package/dist/client.mjs +224 -222
- package/dist/{config-B-ZI-ft5.d.ts → config-B41W23Us.d.ts} +1 -1
- package/dist/{config-BZRExglL.d.ts → config-Co-zAXqO.d.ts} +27 -11
- package/dist/direct-executor-HRTDWMVB.mjs +9 -0
- package/dist/distribution/coordinator/etcd.mjs +4 -7
- package/dist/distribution/coordinator/in-memory.mjs +2 -2
- package/dist/distribution/transport/grpc.mjs +7 -9
- package/dist/distribution/transport/in-memory.mjs +2 -1
- package/dist/distribution/transport/tcp.mjs +3 -2
- package/dist/distribution.d.ts +5 -5
- package/dist/distribution.mjs +121 -97
- package/dist/embeddings/openai.mjs +5 -3
- package/dist/{engine-Cjr1uBLa.d.ts → engine-CABZg25p.d.ts} +12 -8
- package/dist/index.browser.mjs +1514 -894
- package/dist/index.d.ts +5 -5
- package/dist/index.mjs +9 -8
- package/dist/invalidation/broadcast-channel.mjs +2 -1
- package/dist/invalidation/filesystem.mjs +3 -4
- package/dist/{options-BC68VPoE.d.ts → options-Dtk99qUs.d.ts} +1 -1
- package/dist/persistence/durability/checkpoint-worker.mjs +9 -8
- package/dist/react.d.ts +3 -3
- package/dist/react.mjs +7 -5
- package/dist/{search-DDHjfXhJ.d.ts → search-FjWhZN3f.d.ts} +20 -3
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +43 -30
- package/dist/vector/hnsw-build-worker.mjs +2 -4
- package/dist/vector/search-worker.mjs +3 -4
- package/dist/workers/entry.mjs +2 -2
- package/package.json +1 -1
- package/dist/direct-executor-EOTFGXTO.mjs +0 -8
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { createDirectExecutor } from './chunk-M6JGMKA5.mjs';
|
|
2
|
+
import './chunk-CBLS46IE.mjs';
|
|
3
|
+
import './chunk-TGP5M5R7.mjs';
|
|
4
|
+
import './chunk-HGJC5L65.mjs';
|
|
5
|
+
import './chunk-JXHUHFJ5.mjs';
|
|
6
|
+
import './chunk-U2BKYEC7.mjs';
|
|
7
|
+
import './chunk-2GWVQWGA.mjs';
|
|
8
|
+
import './chunk-RDGXYRF4.mjs';
|
|
9
|
+
import './chunk-P4ELXVJQ.mjs';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MAX_NODE_ID_LENGTH, MAX_WATCHERS } from '../../chunk-ORBLD3EL.mjs';
|
|
2
|
+
import { compareCodePoints } from '../../chunk-2GWVQWGA.mjs';
|
|
2
3
|
import { NarsilError, ErrorCodes } from '../../chunk-P4ELXVJQ.mjs';
|
|
3
4
|
import { decode, encode } from '@msgpack/msgpack';
|
|
4
5
|
|
|
@@ -96,10 +97,8 @@ var LeaseManager = class {
|
|
|
96
97
|
async revokeAll() {
|
|
97
98
|
const revokePromises = [];
|
|
98
99
|
for (const [, entry] of this.leases) {
|
|
99
|
-
revokePromises.push(
|
|
100
|
-
|
|
101
|
-
})
|
|
102
|
-
);
|
|
100
|
+
revokePromises.push(entry.lease.revoke().catch(() => {
|
|
101
|
+
}));
|
|
103
102
|
}
|
|
104
103
|
this.leases.clear();
|
|
105
104
|
await Promise.all(revokePromises);
|
|
@@ -238,9 +237,7 @@ async function writeUnderLease(context, registration) {
|
|
|
238
237
|
}
|
|
239
238
|
|
|
240
239
|
// src/distribution/coordinator/etcd/validation.ts
|
|
241
|
-
var MAX_NODE_ID_LENGTH = 255;
|
|
242
240
|
var VALID_PARTITION_STATES = /* @__PURE__ */ new Set(["UNASSIGNED", "INITIALISING", "ACTIVE", "MIGRATING", "DECOMMISSIONING"]);
|
|
243
|
-
var MAX_WATCHERS = 64;
|
|
244
241
|
function validateNodeId(nodeId) {
|
|
245
242
|
if (nodeId.length === 0) {
|
|
246
243
|
throw new NarsilError(ErrorCodes.CONFIG_INVALID, "Node ID must not be empty");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NODE_HEARTBEAT_TTL_MS } from '../../chunk-ORBLD3EL.mjs';
|
|
2
|
+
import { compareCodePoints } from '../../chunk-2GWVQWGA.mjs';
|
|
2
3
|
|
|
3
4
|
// src/distribution/coordinator/in-memory.ts
|
|
4
5
|
var NODE_HEARTBEAT_PREFIX = "_narsil/node/";
|
|
5
|
-
var NODE_HEARTBEAT_TTL_MS = 3e4;
|
|
6
6
|
function bytesEqual(a, b) {
|
|
7
7
|
if (a.byteLength !== b.byteLength) {
|
|
8
8
|
return false;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { decodeTransportMessage, encodeTransportMessage } from '../../chunk-
|
|
2
|
-
import {
|
|
1
|
+
import { decodeTransportMessage, encodeTransportMessage } from '../../chunk-OOSIDHA3.mjs';
|
|
2
|
+
import { MAX_MESSAGE_SIZE_BYTES, GRPC_KEEPALIVE_TIMEOUT_MS, GRPC_KEEPALIVE_TIME_MS, GRPC_ENVELOPE_OVERHEAD_BYTES } from '../../chunk-UNEEFTEU.mjs';
|
|
3
|
+
import { TransportError, TransportErrorCodes } from '../../chunk-GCM3JFVA.mjs';
|
|
3
4
|
import { NarsilError, ErrorCodes } from '../../chunk-P4ELXVJQ.mjs';
|
|
4
5
|
|
|
5
6
|
// src/distribution/transport/grpc/codec.ts
|
|
@@ -123,15 +124,12 @@ var DEFAULT_GRPC_CONFIG = {
|
|
|
123
124
|
replicationTimeout: 1e4,
|
|
124
125
|
snapshotTimeout: 3e5
|
|
125
126
|
};
|
|
126
|
-
var ENVELOPE_OVERHEAD_BYTES = 1024;
|
|
127
|
-
var KEEPALIVE_TIME_MS = 3e4;
|
|
128
|
-
var KEEPALIVE_TIMEOUT_MS = 1e4;
|
|
129
127
|
function channelOptions() {
|
|
130
128
|
return {
|
|
131
|
-
"grpc.max_receive_message_length": MAX_MESSAGE_SIZE_BYTES +
|
|
132
|
-
"grpc.max_send_message_length": MAX_MESSAGE_SIZE_BYTES +
|
|
133
|
-
"grpc.keepalive_time_ms":
|
|
134
|
-
"grpc.keepalive_timeout_ms":
|
|
129
|
+
"grpc.max_receive_message_length": MAX_MESSAGE_SIZE_BYTES + GRPC_ENVELOPE_OVERHEAD_BYTES,
|
|
130
|
+
"grpc.max_send_message_length": MAX_MESSAGE_SIZE_BYTES + GRPC_ENVELOPE_OVERHEAD_BYTES,
|
|
131
|
+
"grpc.keepalive_time_ms": GRPC_KEEPALIVE_TIME_MS,
|
|
132
|
+
"grpc.keepalive_timeout_ms": GRPC_KEEPALIVE_TIMEOUT_MS,
|
|
135
133
|
"grpc.keepalive_permit_without_calls": 1
|
|
136
134
|
};
|
|
137
135
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MAX_MESSAGE_SIZE_BYTES } from '../../chunk-UNEEFTEU.mjs';
|
|
2
|
+
import { DEFAULT_TRANSPORT_CONFIG, TransportError, TransportErrorCodes } from '../../chunk-GCM3JFVA.mjs';
|
|
2
3
|
|
|
3
4
|
// src/distribution/transport/in-memory.ts
|
|
4
5
|
function createInMemoryNetwork() {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { DEFAULT_TCP_CONFIG, encodeTransportMessage, encodeFrame, FRAME_TYPE_REQUEST, FrameParser, FRAME_TYPE_RESPONSE, decodeTransportMessage, FRAME_TYPE_STREAM_CHUNK, FRAME_TYPE_STREAM_END } from '../../chunk-
|
|
2
|
-
import { MAX_MESSAGE_SIZE_BYTES
|
|
1
|
+
import { DEFAULT_TCP_CONFIG, encodeTransportMessage, encodeFrame, FRAME_TYPE_REQUEST, FrameParser, FRAME_TYPE_RESPONSE, decodeTransportMessage, FRAME_TYPE_STREAM_CHUNK, FRAME_TYPE_STREAM_END } from '../../chunk-OOSIDHA3.mjs';
|
|
2
|
+
import { MAX_MESSAGE_SIZE_BYTES } from '../../chunk-UNEEFTEU.mjs';
|
|
3
|
+
import { TransportError, TransportErrorCodes } from '../../chunk-GCM3JFVA.mjs';
|
|
3
4
|
import { connect as connect$1, createServer as createServer$1 } from 'net';
|
|
4
5
|
import { connect, createServer } from 'tls';
|
|
5
6
|
|
package/dist/distribution.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { a as CreateIndexOptions, C as ClusterNamespace, b as ClusterNodeConfig } from './config-
|
|
2
|
-
export { c as ClusterControllerConfig, d as ClusterNodeInfo, e as ClusterQueryConfig, N as NodeReadiness, R as ReplicationConfig } from './config-
|
|
3
|
-
import { N as NarsilEventMap, a as Narsil } from './engine-
|
|
4
|
-
import { B as BatchResult, L as ListParams, g as ListResult, i as SuggestParams, j as SuggestResult, Q as QueryParams, h as PreflightResult, f as IndexStats, P as PartitionStatsResult, M as MemoryStats, e as QueryResult } from './search-
|
|
1
|
+
import { a as CreateIndexOptions, C as ClusterNamespace, b as ClusterNodeConfig } from './config-B41W23Us.js';
|
|
2
|
+
export { c as ClusterControllerConfig, d as ClusterNodeInfo, e as ClusterQueryConfig, N as NodeReadiness, R as ReplicationConfig } from './config-B41W23Us.js';
|
|
3
|
+
import { N as NarsilEventMap, a as Narsil } from './engine-CABZg25p.js';
|
|
4
|
+
import { B as BatchResult, L as ListParams, g as ListResult, i as SuggestParams, j as SuggestResult, Q as QueryParams, h as PreflightResult, f as IndexStats, P as PartitionStatsResult, M as MemoryStats, e as QueryResult } from './search-FjWhZN3f.js';
|
|
5
5
|
import { I as IndexConfig, A as AnyDocument, b as InsertOptions } from './schema-B7juWg8Q.js';
|
|
6
6
|
import { b as NodeCapacity, N as NodeRole } from './types-DsSSjY4d.js';
|
|
7
7
|
export { c as AllocationConstraints, d as AllocationEvent, A as AllocationTable, C as ClusterCoordinator, e as NodeEvent, a as NodeRegistration, P as PartitionAssignment, f as PartitionState, S as SchemaEvent, U as UnassignedReason } from './types-DsSSjY4d.js';
|
|
8
8
|
export { L as ListenHandler, N as NodeTransport, R as RespondFn, T as TransportConfig, a as TransportMessage } from './types-D5OwhtsQ.js';
|
|
9
|
-
import './config-
|
|
9
|
+
import './config-Co-zAXqO.js';
|
|
10
10
|
import './adapters-79OIa4xm.js';
|
|
11
11
|
|
|
12
12
|
/**
|
package/dist/distribution.mjs
CHANGED
|
@@ -1,23 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { MAX_MESSAGE_SIZE_BYTES } from './chunk-UNEEFTEU.mjs';
|
|
2
|
+
import { validateIndexName, indexConfigKey, putIndexMetadata, getIndexMetadata } from './chunk-KGRYQVZ5.mjs';
|
|
3
|
+
import { createEngineCore, createNarsilFromCore, runEngineQueryStats, runEngineListDocuments, runEngineSuggest, runEnginePreflight, runEngineQuery, createEngineIndex, applyIndexEntry, applyDeleteEntry, now, listBindingOf, validateEntryBatchPayload, createAckMessage, validateEntryPayload, validateForwardBatchPayload, createForwardBatchResultMessage, queryBindingOf, foldGroupReducer, clampLimit, createForwardBatchMessage, validateForwardBatchResultPayload, createForwardMessage, validateReplicationEntry, computeEntryChecksum, dedupePinnedEntries, createEntryMessage, createEntryBatchMessage, createInsyncConfirmMessage, validateAckPayload, createInsyncRemoveMessage, validateInsyncConfirmPayload, createInsyncAddMessage } from './chunk-56PJBIJ6.mjs';
|
|
4
|
+
import { ReplicationMessageTypes, TransportErrorCodes, ClusterMessageTypes, QueryMessageTypes, TransportError } from './chunk-GCM3JFVA.mjs';
|
|
5
|
+
import { DEFAULT_SUGGEST_LIMIT, MAX_SUGGEST_LIMIT, MAX_PARTITION_COUNT, MAX_REPLICATION_FACTOR, MAX_SUGGEST_SCATTER_LIMIT, WIRE_BATCH_BUDGET, MAX_INDEX_NAME_LENGTH, MAX_DOC_ID_LENGTH, SUGGEST_OVERSAMPLE_FACTOR, SUGGEST_OVERSAMPLE_PADDING, INDEX_NAME_PATTERN } from './chunk-OWCFK42Q.mjs';
|
|
6
|
+
import { deserializePayloadV2, createPartitionIndex, resolveProjection, clampRowCount, sortSignatureOf, requireMatchingCursor, decodePageCursor, normalizeSort, encodePageCursor, applyProjection, readSortValues, getLanguage, requireWithinResultWindow, fnv1a, FILTER_EXPRESSION_KEYS, mergePartitionStats, FIELD_FILTER_OPERATORS, MAX_NESTING_DEPTH } from './chunk-M6JGMKA5.mjs';
|
|
7
|
+
import { DEFAULT_PAGE_SIZE, MAX_SORT_FIELDS, MAX_CURSOR_LENGTH, RESULT_WINDOW } from './chunk-CBLS46IE.mjs';
|
|
5
8
|
import './chunk-TGP5M5R7.mjs';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
9
|
+
import './chunk-HGJC5L65.mjs';
|
|
10
|
+
import './chunk-JXHUHFJ5.mjs';
|
|
8
11
|
import { crc32 } from './chunk-KMMJMDUA.mjs';
|
|
9
12
|
import './chunk-U2BKYEC7.mjs';
|
|
10
|
-
import { compareCodePoints, toComparableSortValue, compareComparableKeys, compareSortValues } from './chunk-
|
|
11
|
-
import { generateId } from './chunk-
|
|
13
|
+
import { compareCodePoints, toComparableSortValue, compareComparableKeys, compareSortValues } from './chunk-2GWVQWGA.mjs';
|
|
14
|
+
import { generateId } from './chunk-RDGXYRF4.mjs';
|
|
12
15
|
import { ErrorCodes, NarsilError, describeError } from './chunk-P4ELXVJQ.mjs';
|
|
13
16
|
import { encode, decode } from '@msgpack/msgpack';
|
|
14
17
|
|
|
15
|
-
// src/distribution/cluster/
|
|
16
|
-
var
|
|
18
|
+
// src/distribution/cluster/constants.ts
|
|
19
|
+
var LEADERSHIP_IMBALANCE_THRESHOLD = 2;
|
|
20
|
+
var DEFAULT_ESTIMATED_PARTITION_BYTES = 50 * 1024 * 1024;
|
|
21
|
+
var REBALANCE_THRESHOLD = 0.1;
|
|
22
|
+
var BOOTSTRAP_CAS_ATTEMPTS = 5;
|
|
23
|
+
var ALLOCATION_CAS_ATTEMPTS = 5;
|
|
24
|
+
var ALLOCATION_RETRY_DELAY_MS = 1e3;
|
|
25
|
+
var TEARDOWN_CAS_ATTEMPTS = 5;
|
|
26
|
+
var TEARDOWN_RETRY_DELAY_MS = 500;
|
|
27
|
+
var TEARDOWN_RETRY_ROUNDS = 3;
|
|
28
|
+
var RECOVERY_CAS_ATTEMPTS = 5;
|
|
29
|
+
var PARTITION_STORES_TIMEOUT_MS = 5e3;
|
|
17
30
|
var DEFAULT_CONTROLLER_CONFIG = {
|
|
18
31
|
leaseTtlMs: 15e3,
|
|
19
32
|
standbyRetryMs: 5e3
|
|
20
33
|
};
|
|
34
|
+
var DEFAULT_NODE_LIFECYCLE_CONFIG = {
|
|
35
|
+
bootstrapRetryBaseMs: 1e3,
|
|
36
|
+
bootstrapRetryMaxMs: 5e3,
|
|
37
|
+
bootstrapMaxRetries: 10,
|
|
38
|
+
allocationDebounceMs: 250,
|
|
39
|
+
nodeHeartbeatIntervalMs: 1e4
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// src/distribution/cluster/controller/types.ts
|
|
43
|
+
var CONTROLLER_LEASE_KEY = "_narsil/controller";
|
|
21
44
|
|
|
22
45
|
// src/distribution/cluster/controller/election.ts
|
|
23
46
|
function createElectionState() {
|
|
@@ -95,10 +118,6 @@ var balanceDecider = {
|
|
|
95
118
|
}
|
|
96
119
|
};
|
|
97
120
|
|
|
98
|
-
// src/distribution/cluster/allocator/types.ts
|
|
99
|
-
var REBALANCE_THRESHOLD = 0.1;
|
|
100
|
-
var DEFAULT_ESTIMATED_PARTITION_BYTES = 50 * 1024 * 1024;
|
|
101
|
-
|
|
102
121
|
// src/distribution/cluster/allocator/deciders/capacity.ts
|
|
103
122
|
function createCapacityDecider(estimatedPartitionBytes) {
|
|
104
123
|
const bytesPerPartition = DEFAULT_ESTIMATED_PARTITION_BYTES;
|
|
@@ -417,7 +436,6 @@ function holdsLastCopy(assignment, nodeId) {
|
|
|
417
436
|
}
|
|
418
437
|
|
|
419
438
|
// src/distribution/cluster/allocator/leadership.ts
|
|
420
|
-
var LEADERSHIP_IMBALANCE_THRESHOLD = 2;
|
|
421
439
|
function loadOf(nodeId, counts, shares) {
|
|
422
440
|
const share = shares.get(nodeId);
|
|
423
441
|
return (counts.get(nodeId) ?? 0) / (share === void 0 || share <= 0 ? 1 : share);
|
|
@@ -822,8 +840,6 @@ function createPartitionStoresResultMessage(result, sourceNodeId, requestId) {
|
|
|
822
840
|
}
|
|
823
841
|
|
|
824
842
|
// src/distribution/cluster/controller/event-loop/unassigned-recovery.ts
|
|
825
|
-
var RECOVERY_CAS_ATTEMPTS = 5;
|
|
826
|
-
var PARTITION_STORES_TIMEOUT_MS = 5e3;
|
|
827
843
|
function liveHoldersOfUnassignedPartitions(table, liveNodeIds) {
|
|
828
844
|
const holders = /* @__PURE__ */ new Set();
|
|
829
845
|
for (const assignment of table.assignments.values()) {
|
|
@@ -1026,11 +1042,6 @@ async function recoverUnassignedPartitions(coordinator, transport, indexName, co
|
|
|
1026
1042
|
function holdsDataNode(nodes) {
|
|
1027
1043
|
return nodes.some((node) => node.roles.includes("data"));
|
|
1028
1044
|
}
|
|
1029
|
-
var ALLOCATION_CAS_ATTEMPTS = 5;
|
|
1030
|
-
var ALLOCATION_RETRY_DELAY_MS = 1e3;
|
|
1031
|
-
var TEARDOWN_CAS_ATTEMPTS = 5;
|
|
1032
|
-
var TEARDOWN_RETRY_ROUNDS = 3;
|
|
1033
|
-
var TEARDOWN_RETRY_DELAY_MS = 500;
|
|
1034
1045
|
async function runAllocatorForIndex(coordinator, indexName, nodes, isActive, attempt = 0) {
|
|
1035
1046
|
if (!isActive()) {
|
|
1036
1047
|
return;
|
|
@@ -1226,7 +1237,15 @@ async function handleSchemaEvent(event, coordinator, state, isActive, onError) {
|
|
|
1226
1237
|
await tearDownAllocation(event.indexName, coordinator, state, isActive, 0, onError);
|
|
1227
1238
|
}
|
|
1228
1239
|
}
|
|
1240
|
+
|
|
1241
|
+
// src/distribution/replication/constants.ts
|
|
1242
|
+
var REPLICATION_ENTRY_FIXED_OVERHEAD_BYTES = 40;
|
|
1243
|
+
var DEFAULT_LOG_RETENTION_BYTES = 268435456;
|
|
1229
1244
|
var INSYNC_CAS_ATTEMPTS = 5;
|
|
1245
|
+
var SNAPSHOT_CHUNK_SIZE = 65536;
|
|
1246
|
+
var MAX_SNAPSHOT_SIZE_BYTES = 2 * 1024 * 1024 * 1024;
|
|
1247
|
+
|
|
1248
|
+
// src/distribution/replication/insync.ts
|
|
1230
1249
|
var REFUSE = { outcome: "refuse" };
|
|
1231
1250
|
var ACCEPT = { outcome: "accept" };
|
|
1232
1251
|
async function updateInsyncSet(request, coordinator, decide) {
|
|
@@ -1416,7 +1435,6 @@ async function handleBootstrapCompleteMessage(message, respond, coordinator, con
|
|
|
1416
1435
|
payload: encode(resultPayload)
|
|
1417
1436
|
});
|
|
1418
1437
|
}
|
|
1419
|
-
var BOOTSTRAP_CAS_ATTEMPTS = 5;
|
|
1420
1438
|
async function processBootstrapComplete(payload, coordinator) {
|
|
1421
1439
|
for (let attempt = 0; attempt < BOOTSTRAP_CAS_ATTEMPTS; attempt++) {
|
|
1422
1440
|
const table = await coordinator.getAllocation(payload.indexName);
|
|
@@ -2378,15 +2396,6 @@ async function leaveCluster(config) {
|
|
|
2378
2396
|
await config.coordinator.deregisterNode(config.registration.nodeId);
|
|
2379
2397
|
}
|
|
2380
2398
|
|
|
2381
|
-
// src/distribution/cluster/node-lifecycle/types.ts
|
|
2382
|
-
var DEFAULT_NODE_LIFECYCLE_CONFIG = {
|
|
2383
|
-
bootstrapRetryBaseMs: 1e3,
|
|
2384
|
-
bootstrapRetryMaxMs: 5e3,
|
|
2385
|
-
bootstrapMaxRetries: 10,
|
|
2386
|
-
allocationDebounceMs: 250,
|
|
2387
|
-
nodeHeartbeatIntervalMs: 1e4
|
|
2388
|
-
};
|
|
2389
|
-
|
|
2390
2399
|
// src/distribution/cluster/node-lifecycle/index.ts
|
|
2391
2400
|
function createDataNodeLifecycle(config) {
|
|
2392
2401
|
let status = "stopped";
|
|
@@ -2555,12 +2564,6 @@ async function nodeHasOtherPartitions(indexName, removedPartitionId, deps) {
|
|
|
2555
2564
|
return false;
|
|
2556
2565
|
}
|
|
2557
2566
|
|
|
2558
|
-
// src/distribution/replication/snapshot-constants.ts
|
|
2559
|
-
var SNAPSHOT_CHUNK_SIZE = 65536;
|
|
2560
|
-
var MAX_SNAPSHOT_SIZE_BYTES = 2 * 1024 * 1024 * 1024;
|
|
2561
|
-
var SNAPSHOT_HEADER_SENTINEL_SEQNO = Number.MAX_SAFE_INTEGER;
|
|
2562
|
-
var SNAPSHOT_HEADER_SENTINEL_PARTITION_ID = 4294967295;
|
|
2563
|
-
|
|
2564
2567
|
// src/distribution/replication/snapshot-stream-apply.ts
|
|
2565
2568
|
function fail(state, code, message, details = {}) {
|
|
2566
2569
|
if (state.failure !== null) {
|
|
@@ -2877,9 +2880,34 @@ function toStreamFailure(err, defaultCode, defaultMessage) {
|
|
|
2877
2880
|
};
|
|
2878
2881
|
}
|
|
2879
2882
|
|
|
2880
|
-
// src/distribution/cluster-node/
|
|
2883
|
+
// src/distribution/cluster-node/constants.ts
|
|
2884
|
+
var DEFAULT_PARTITION_COUNT = 5;
|
|
2885
|
+
var DEFAULT_REPLICATION_FACTOR = 1;
|
|
2886
|
+
var DEFAULT_CAPACITY = {
|
|
2887
|
+
memoryBytes: 8e9,
|
|
2888
|
+
cpuCores: 4,
|
|
2889
|
+
diskBytes: null
|
|
2890
|
+
};
|
|
2891
|
+
var DEFAULT_CREATE_INDEX_WAIT_MS = 3e4;
|
|
2881
2892
|
var CAPACITY_EXHAUSTED_BACKOFF_BASE_MS = 100;
|
|
2882
2893
|
var CAPACITY_EXHAUSTED_BACKOFF_MAX_MS = 500;
|
|
2894
|
+
var JITTERED_BACKOFF_POLL_INTERVAL_MS = 20;
|
|
2895
|
+
var DEFAULT_BOOTSTRAP_SYNC_DEADLINE_MS = 6e5;
|
|
2896
|
+
var SYNCED_POSITION_REPORT_TIMEOUT_MS = 5e3;
|
|
2897
|
+
var ADMISSION_TIMEOUT_MS = 1e4;
|
|
2898
|
+
var CATCH_UP_TICK_MS = 1e3;
|
|
2899
|
+
var MAX_CATCH_UP_IN_FLIGHT_BYTES = 67108864;
|
|
2900
|
+
var CLEAR_PAGE_SIZE = 1e3;
|
|
2901
|
+
var DEFAULT_MAX_CONCURRENT_SNAPSHOTS = 2;
|
|
2902
|
+
var DEFAULT_MAX_PER_SOURCE_SNAPSHOTS = 1;
|
|
2903
|
+
var DEFAULT_MAX_STREAMS_PER_INDEX = 4;
|
|
2904
|
+
var SNAPSHOT_CHUNK_YIELD_INTERVAL_MS = 8;
|
|
2905
|
+
var MAX_SNAPSHOT_SYNC_REQUEST_BYTES = 4096;
|
|
2906
|
+
var MAX_SOURCE_ID_LENGTH = 256;
|
|
2907
|
+
var MAX_WAIT_FOR_ACTIVE_REPLICAS = 255;
|
|
2908
|
+
var MIN_CONTROLLER_LEASE_TTL_MS = 1e3;
|
|
2909
|
+
|
|
2910
|
+
// src/distribution/cluster-node/bootstrap-fetch.ts
|
|
2883
2911
|
var RETRY_ANY_TARGET_CODES = /* @__PURE__ */ new Set([
|
|
2884
2912
|
ErrorCodes.SNAPSHOT_SYNC_TRANSPORT_FAILED,
|
|
2885
2913
|
ErrorCodes.SNAPSHOT_SYNC_TIMEOUT,
|
|
@@ -2990,7 +3018,6 @@ async function fetchSnapshotFromAnyTarget(indexName, primaryNodeId, targets, dea
|
|
|
2990
3018
|
}
|
|
2991
3019
|
return lastFailure;
|
|
2992
3020
|
}
|
|
2993
|
-
var JITTERED_BACKOFF_POLL_INTERVAL_MS = 20;
|
|
2994
3021
|
async function jitteredBackoff(baseMs, maxMs, deadline, abortCheck) {
|
|
2995
3022
|
const plannedMs = Math.floor(baseMs + Math.random() * (maxMs - baseMs));
|
|
2996
3023
|
const remainingMs = deadline - Date.now();
|
|
@@ -3345,7 +3372,6 @@ async function dropExistingIndex(engine, indexName, primaryNodeId) {
|
|
|
3345
3372
|
}
|
|
3346
3373
|
|
|
3347
3374
|
// src/distribution/cluster-node/bootstrap-sync/state.ts
|
|
3348
|
-
var DEFAULT_BOOTSTRAP_SYNC_DEADLINE_MS = 6e5;
|
|
3349
3375
|
function createBootstrapSyncState() {
|
|
3350
3376
|
return {
|
|
3351
3377
|
inFlight: /* @__PURE__ */ new Map(),
|
|
@@ -3767,7 +3793,6 @@ function readLocalLogState(indexName, partitionId, deps) {
|
|
|
3767
3793
|
const newestEntry = log.getEntry(lastSeqNo);
|
|
3768
3794
|
return { lastSeqNo, lastPrimaryTerm: newestEntry?.primaryTerm ?? lastPrimaryTerm };
|
|
3769
3795
|
}
|
|
3770
|
-
var SYNCED_POSITION_REPORT_TIMEOUT_MS = 5e3;
|
|
3771
3796
|
async function reportSyncedPosition(indexName, partitionId, target, knownSeqNo, deadline, deps) {
|
|
3772
3797
|
const logState = readLocalLogState(indexName, partitionId, deps);
|
|
3773
3798
|
if (logState.lastSeqNo <= knownSeqNo) {
|
|
@@ -4392,8 +4417,6 @@ function getInSyncReplicaTargets(assignment, localNodeId, pendingAdmissions = []
|
|
|
4392
4417
|
}
|
|
4393
4418
|
|
|
4394
4419
|
// src/distribution/cluster-node/catch-up/state.ts
|
|
4395
|
-
var CATCH_UP_TICK_MS = 1e3;
|
|
4396
|
-
var CATCH_UP_IN_FLIGHT_BYTE_CEILING = 67108864;
|
|
4397
4420
|
function partitionKey2(indexName, partitionId) {
|
|
4398
4421
|
return `${indexName}:${partitionId}`;
|
|
4399
4422
|
}
|
|
@@ -4459,7 +4482,6 @@ function clearPendingAdmission(state, indexName, partitionId, replicaNodeId) {
|
|
|
4459
4482
|
}
|
|
4460
4483
|
|
|
4461
4484
|
// src/distribution/cluster-node/catch-up/admission.ts
|
|
4462
|
-
var ADMISSION_TIMEOUT_MS = 1e4;
|
|
4463
4485
|
async function sendToController(payload, controllerNodeId, deps) {
|
|
4464
4486
|
const targets = await resolveNodeTargets(controllerNodeId, deps);
|
|
4465
4487
|
for (const target of targets) {
|
|
@@ -4534,6 +4556,30 @@ async function proposeAdmission(state, deps, indexName, partitionId, assignment,
|
|
|
4534
4556
|
clearPendingAdmission(state, indexName, partitionId, replicaNodeId);
|
|
4535
4557
|
}
|
|
4536
4558
|
}
|
|
4559
|
+
|
|
4560
|
+
// src/distribution/chunking.ts
|
|
4561
|
+
function chunkByBudget(items, budget) {
|
|
4562
|
+
const chunks = [];
|
|
4563
|
+
let current = [];
|
|
4564
|
+
let currentBytes = 0;
|
|
4565
|
+
for (const item of items) {
|
|
4566
|
+
const itemBytes = budget.payloadBytesOf(item) + budget.overheadBytes;
|
|
4567
|
+
const previous = current[current.length - 1];
|
|
4568
|
+
const breaksRun = previous !== void 0 && budget.breaksRun?.(item, previous) === true;
|
|
4569
|
+
const overflows = current.length >= budget.maxCount || current.length > 0 && currentBytes + itemBytes > budget.maxBytes;
|
|
4570
|
+
if (breaksRun || overflows) {
|
|
4571
|
+
chunks.push(current);
|
|
4572
|
+
current = [];
|
|
4573
|
+
currentBytes = 0;
|
|
4574
|
+
}
|
|
4575
|
+
current.push(item);
|
|
4576
|
+
currentBytes += itemBytes;
|
|
4577
|
+
}
|
|
4578
|
+
if (current.length > 0) {
|
|
4579
|
+
chunks.push(current);
|
|
4580
|
+
}
|
|
4581
|
+
return chunks;
|
|
4582
|
+
}
|
|
4537
4583
|
async function replicateToReplicas(entry, inSyncReplicas, transport, sourceNodeId, resolveNodeTargets3) {
|
|
4538
4584
|
const message = createEntryMessage(entry, sourceNodeId);
|
|
4539
4585
|
return sendAndCollectAcks(message, entry, inSyncReplicas, transport, resolveNodeTargets3);
|
|
@@ -4604,9 +4650,8 @@ function isMatchingAck(response, entry) {
|
|
|
4604
4650
|
}
|
|
4605
4651
|
|
|
4606
4652
|
// src/distribution/cluster-node/catch-up/pump.ts
|
|
4607
|
-
var ENTRY_FIXED_OVERHEAD_BYTES = 40;
|
|
4608
4653
|
function entryBytes(entry) {
|
|
4609
|
-
return
|
|
4654
|
+
return REPLICATION_ENTRY_FIXED_OVERHEAD_BYTES + entry.indexName.length + entry.documentId.length + (entry.document?.byteLength ?? 0);
|
|
4610
4655
|
}
|
|
4611
4656
|
function batchBytes(entries) {
|
|
4612
4657
|
let total = 0;
|
|
@@ -4632,7 +4677,7 @@ function nextWireBatch(state, pending) {
|
|
|
4632
4677
|
if (batch.length === 0) {
|
|
4633
4678
|
return [];
|
|
4634
4679
|
}
|
|
4635
|
-
const available =
|
|
4680
|
+
const available = MAX_CATCH_UP_IN_FLIGHT_BYTES - state.inFlightBytes;
|
|
4636
4681
|
return batchBytes(batch) > available ? [] : batch;
|
|
4637
4682
|
}
|
|
4638
4683
|
async function pumpReplica(state, deps, indexName, partitionId, assignment, replicaNodeId, cursor) {
|
|
@@ -4844,13 +4889,9 @@ async function writeHeldPartitions(core, indexName, next, indexesBehindOnDisk) {
|
|
|
4844
4889
|
indexesBehindOnDisk.delete(indexName);
|
|
4845
4890
|
}
|
|
4846
4891
|
|
|
4847
|
-
// src/distribution/replication/types.ts
|
|
4848
|
-
var DEFAULT_LOG_RETENTION_BYTES = 268435456;
|
|
4849
|
-
|
|
4850
4892
|
// src/distribution/replication/log.ts
|
|
4851
|
-
var ENTRY_FIXED_OVERHEAD_BYTES2 = 40;
|
|
4852
4893
|
function estimateEntrySize(entry) {
|
|
4853
|
-
return
|
|
4894
|
+
return REPLICATION_ENTRY_FIXED_OVERHEAD_BYTES + entry.indexName.length + entry.documentId.length + (entry.document?.byteLength ?? 0);
|
|
4854
4895
|
}
|
|
4855
4896
|
var computeChecksum = computeEntryChecksum;
|
|
4856
4897
|
function createReplicationLog(partitionId, config) {
|
|
@@ -4901,7 +4942,7 @@ function createReplicationLog(partitionId, config) {
|
|
|
4901
4942
|
}
|
|
4902
4943
|
}
|
|
4903
4944
|
function assertEntryFitsRetention(entry) {
|
|
4904
|
-
const entrySize =
|
|
4945
|
+
const entrySize = REPLICATION_ENTRY_FIXED_OVERHEAD_BYTES + entry.indexName.length + entry.documentId.length + (entry.document?.byteLength ?? 0);
|
|
4905
4946
|
if (entrySize > retentionBytes) {
|
|
4906
4947
|
throw new NarsilError(
|
|
4907
4948
|
ErrorCodes.REPLICATION_LOG_FULL,
|
|
@@ -5507,9 +5548,6 @@ async function authorizeSnapshotRequest(coordinator, indexName, sourceId) {
|
|
|
5507
5548
|
}
|
|
5508
5549
|
|
|
5509
5550
|
// src/distribution/cluster-node/snapshot-cache.ts
|
|
5510
|
-
var DEFAULT_MAX_CONCURRENT_SNAPSHOTS = 2;
|
|
5511
|
-
var DEFAULT_MAX_PER_SOURCE_SNAPSHOTS = 1;
|
|
5512
|
-
var DEFAULT_MAX_STREAMS_PER_INDEX = 4;
|
|
5513
5551
|
function createSnapshotCacheState(maxConcurrent = DEFAULT_MAX_CONCURRENT_SNAPSHOTS, maxPerSource = DEFAULT_MAX_PER_SOURCE_SNAPSHOTS, maxStreamsPerIndex = DEFAULT_MAX_STREAMS_PER_INDEX) {
|
|
5514
5552
|
if (!Number.isInteger(maxConcurrent) || maxConcurrent <= 0) {
|
|
5515
5553
|
throw new NarsilError(ErrorCodes.CONFIG_INVALID, "maxConcurrent must be a positive integer", {
|
|
@@ -5635,7 +5673,6 @@ async function acquireSnapshotBuild(state, indexName, builder) {
|
|
|
5635
5673
|
return entry.promise;
|
|
5636
5674
|
}
|
|
5637
5675
|
var SNAPSHOT_SYNC_ERROR_TYPE = `${ReplicationMessageTypes.SNAPSHOT_SYNC_REQUEST}.error`;
|
|
5638
|
-
var CHUNK_YIELD_INTERVAL_MS = 8;
|
|
5639
5676
|
function createSingleResponseSink(respond) {
|
|
5640
5677
|
const sink = ((response) => {
|
|
5641
5678
|
if (sink.closed) {
|
|
@@ -5677,7 +5714,7 @@ async function streamSnapshotToReplica(sink, nodeId, requestId, indexName, build
|
|
|
5677
5714
|
assertMessageWithinLimit(chunkBytes, "SNAPSHOT_CHUNK");
|
|
5678
5715
|
await respondMessage(sink, ReplicationMessageTypes.SNAPSHOT_CHUNK, nodeId, requestId, chunkBytes);
|
|
5679
5716
|
offset = end;
|
|
5680
|
-
if (offset < totalBytes && now2() - lastYieldAt >=
|
|
5717
|
+
if (offset < totalBytes && now2() - lastYieldAt >= SNAPSHOT_CHUNK_YIELD_INTERVAL_MS) {
|
|
5681
5718
|
await yieldToEventLoop();
|
|
5682
5719
|
lastYieldAt = now2();
|
|
5683
5720
|
}
|
|
@@ -5733,6 +5770,10 @@ async function respondError(sink, sourceId, requestId, code, message) {
|
|
|
5733
5770
|
sink.closed = true;
|
|
5734
5771
|
}
|
|
5735
5772
|
|
|
5773
|
+
// src/distribution/replication/snapshot-constants.ts
|
|
5774
|
+
var SNAPSHOT_HEADER_SENTINEL_SEQNO = Number.MAX_SAFE_INTEGER;
|
|
5775
|
+
var SNAPSHOT_HEADER_SENTINEL_PARTITION_ID = 4294967295;
|
|
5776
|
+
|
|
5736
5777
|
// src/distribution/cluster-node/snapshot-sync-handler/metadata.ts
|
|
5737
5778
|
async function defaultSnapshotHeaderMetadataProvider(coordinator, indexName) {
|
|
5738
5779
|
try {
|
|
@@ -5853,8 +5894,6 @@ function buildSnapshotForRequest(deps, indexName, options) {
|
|
|
5853
5894
|
}
|
|
5854
5895
|
return buildSnapshot(deps, indexName);
|
|
5855
5896
|
}
|
|
5856
|
-
var INDEX_NAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
|
|
5857
|
-
var MAX_SOURCE_ID_LENGTH = 256;
|
|
5858
5897
|
function containsControlCharacter(value) {
|
|
5859
5898
|
for (let i = 0; i < value.length; i++) {
|
|
5860
5899
|
const code = value.charCodeAt(i);
|
|
@@ -5870,7 +5909,6 @@ function containsControlCharacter(value) {
|
|
|
5870
5909
|
}
|
|
5871
5910
|
return false;
|
|
5872
5911
|
}
|
|
5873
|
-
var MAX_SNAPSHOT_SYNC_REQUEST_BYTES = 4096;
|
|
5874
5912
|
var REQUEST_DECODE_OPTIONS = {
|
|
5875
5913
|
maxMapLength: 16,
|
|
5876
5914
|
maxArrayLength: 16,
|
|
@@ -6021,17 +6059,15 @@ async function handlePartitionStores(message, respond, deps) {
|
|
|
6021
6059
|
await respond(createPartitionStoresResultMessage(result, deps.nodeId, message.requestId));
|
|
6022
6060
|
}
|
|
6023
6061
|
|
|
6024
|
-
// src/distribution/query/
|
|
6062
|
+
// src/distribution/query/constants.ts
|
|
6025
6063
|
var MAX_PARTITION_IDS = MAX_PARTITION_COUNT;
|
|
6026
6064
|
var MAX_TERM_LENGTH = 1024;
|
|
6027
6065
|
var MAX_TERMS_COUNT = 65536;
|
|
6028
6066
|
var MAX_FIELD_NAME_LENGTH = 255;
|
|
6029
6067
|
var MAX_FIELDS_LIST = 256;
|
|
6030
6068
|
var MAX_BOOST_FIELDS = 256;
|
|
6031
|
-
var MAX_SORT_FIELDS = 8;
|
|
6032
6069
|
var MAX_FACETS = 64;
|
|
6033
6070
|
var MAX_FETCH_DOCUMENT_IDS = 1e4;
|
|
6034
|
-
var MAX_DOC_ID_LENGTH = 512;
|
|
6035
6071
|
var MAX_FILTER_DEPTH = 30;
|
|
6036
6072
|
var MAX_FILTER_FIELDS = 256;
|
|
6037
6073
|
var MAX_FILTER_ARRAY_SIZE = 65536;
|
|
@@ -6046,6 +6082,25 @@ var MAX_PINNED_ENTRIES = 1e3;
|
|
|
6046
6082
|
var MAX_PINNED_POSITION = RESULT_WINDOW;
|
|
6047
6083
|
var MAX_EF_SEARCH = 1e4;
|
|
6048
6084
|
var MAX_GROUP_FIELDS = 64;
|
|
6085
|
+
var MAX_HIGHLIGHT_TAG_LENGTH = 256;
|
|
6086
|
+
var MAX_HIGHLIGHT_SNIPPET_LENGTH = 65536;
|
|
6087
|
+
var MAX_LIST_CURSOR_LENGTH = 4096;
|
|
6088
|
+
var MAX_SUGGEST_WIRE_LIMIT = 1e3;
|
|
6089
|
+
var MAX_COUNT_VALUE = Number.MAX_SAFE_INTEGER;
|
|
6090
|
+
var MAX_LANGUAGE_NAME_LENGTH = 64;
|
|
6091
|
+
var MAX_SORT_VALUE_STRING_LENGTH = 65536;
|
|
6092
|
+
var MAX_RESULTS_PER_PARTITION = 1e4;
|
|
6093
|
+
var MAX_SORT_VALUES = 8;
|
|
6094
|
+
var MAX_FACET_FIELDS = 64;
|
|
6095
|
+
var MAX_FACET_BUCKETS = 1e4;
|
|
6096
|
+
var MAX_FACET_VALUE_LENGTH = 1024;
|
|
6097
|
+
var MAX_GROUPS_PER_RESPONSE = 65536;
|
|
6098
|
+
var MAX_FACET_SIZE = 1e3;
|
|
6099
|
+
var DEFAULT_MAX_FACET_BUCKETS = 100;
|
|
6100
|
+
var MAX_VECTOR_DIMENSION = 8192;
|
|
6101
|
+
var MAX_VECTOR_TEXT_LENGTH = 16384;
|
|
6102
|
+
|
|
6103
|
+
// src/distribution/query/validators/common.ts
|
|
6049
6104
|
var NULL_BYTE = String.fromCharCode(0);
|
|
6050
6105
|
function throwInvalid(code, message, details) {
|
|
6051
6106
|
throw new NarsilError(code, message, details);
|
|
@@ -6158,8 +6213,6 @@ var SEARCH_INVALID_MODE = ErrorCodes.SEARCH_INVALID_MODE;
|
|
|
6158
6213
|
var CONFIG_INVALID = ErrorCodes.CONFIG_INVALID;
|
|
6159
6214
|
|
|
6160
6215
|
// src/distribution/query/validators/fetch.ts
|
|
6161
|
-
var MAX_HIGHLIGHT_TAG_LENGTH = 256;
|
|
6162
|
-
var MAX_HIGHLIGHT_SNIPPET_LENGTH = 65536;
|
|
6163
6216
|
function validateIndexNameField(value, fieldLabel) {
|
|
6164
6217
|
if (typeof value !== "string") {
|
|
6165
6218
|
throwInvalid(CONFIG_INVALID, `Invalid FetchPayload: "${fieldLabel}" must be a string`);
|
|
@@ -6664,9 +6717,7 @@ function validateEfSearchParam(value) {
|
|
|
6664
6717
|
}
|
|
6665
6718
|
|
|
6666
6719
|
// src/distribution/query/validators/search.ts
|
|
6667
|
-
var MAX_FACET_SHARD_SIZE = oversampledShardSize(
|
|
6668
|
-
var MAX_VECTOR_DIMENSION = 8192;
|
|
6669
|
-
var MAX_VECTOR_TEXT_LENGTH = 16384;
|
|
6720
|
+
var MAX_FACET_SHARD_SIZE = oversampledShardSize(MAX_FACET_SIZE);
|
|
6670
6721
|
var ALLOWED_SCORING = ["local", "dfs", "broadcast"];
|
|
6671
6722
|
var ALLOWED_SORT_DIRECTIONS = ["asc", "desc"];
|
|
6672
6723
|
function validateIndexNameField2(value, fieldLabel) {
|
|
@@ -6930,11 +6981,6 @@ function validateSearchPayload(decoded) {
|
|
|
6930
6981
|
}
|
|
6931
6982
|
|
|
6932
6983
|
// src/distribution/query/validators/reads.ts
|
|
6933
|
-
var MAX_LIST_CURSOR_LENGTH = 4096;
|
|
6934
|
-
var MAX_SUGGEST_WIRE_LIMIT = 1e3;
|
|
6935
|
-
var MAX_COUNT_VALUE = Number.MAX_SAFE_INTEGER;
|
|
6936
|
-
var MAX_LANGUAGE_NAME_LENGTH = 64;
|
|
6937
|
-
var MAX_SORT_VALUE_STRING_LENGTH = 65536;
|
|
6938
6984
|
function validateIndexNameField3(decoded, payloadLabel) {
|
|
6939
6985
|
validateStringField(decoded.indexName, `${payloadLabel}.indexName`, 255, CONFIG_INVALID);
|
|
6940
6986
|
}
|
|
@@ -7129,12 +7175,6 @@ function validatePreflightResultPayload(decoded) {
|
|
|
7129
7175
|
}
|
|
7130
7176
|
|
|
7131
7177
|
// src/distribution/query/validators/search-result.ts
|
|
7132
|
-
var MAX_RESULTS_PER_PARTITION = 1e4;
|
|
7133
|
-
var MAX_SORT_VALUES = 8;
|
|
7134
|
-
var MAX_FACET_FIELDS = 64;
|
|
7135
|
-
var MAX_FACET_BUCKETS = 1e4;
|
|
7136
|
-
var MAX_FACET_VALUE_LENGTH = 1024;
|
|
7137
|
-
var MAX_GROUPS_PER_RESPONSE = 65536;
|
|
7138
7178
|
function validateScoredEntry(value, fieldLabel) {
|
|
7139
7179
|
if (!isRecord2(value)) {
|
|
7140
7180
|
throwInvalid(CONFIG_INVALID, `Invalid SearchResultPayload: "${fieldLabel}" must be an object`);
|
|
@@ -7987,7 +8027,6 @@ async function sendSyncEntriesResponse(message, respond, deps, entries) {
|
|
|
7987
8027
|
}
|
|
7988
8028
|
|
|
7989
8029
|
// src/distribution/cluster-node/allocation-wait.ts
|
|
7990
|
-
var DEFAULT_CREATE_INDEX_WAIT_MS = 3e4;
|
|
7991
8030
|
function everyPartitionActive(table, partitionCount) {
|
|
7992
8031
|
if (table === null || table.assignments.size < partitionCount) {
|
|
7993
8032
|
return false;
|
|
@@ -8035,15 +8074,6 @@ async function waitForServingAllocation(coordinator, indexName, partitionCount,
|
|
|
8035
8074
|
}
|
|
8036
8075
|
}
|
|
8037
8076
|
|
|
8038
|
-
// src/distribution/cluster-node/types/defaults.ts
|
|
8039
|
-
var DEFAULT_PARTITION_COUNT = 5;
|
|
8040
|
-
var DEFAULT_REPLICATION_FACTOR = 1;
|
|
8041
|
-
var DEFAULT_CAPACITY = {
|
|
8042
|
-
memoryBytes: 8e9,
|
|
8043
|
-
cpuCores: 4,
|
|
8044
|
-
diskBytes: null
|
|
8045
|
-
};
|
|
8046
|
-
|
|
8047
8077
|
// src/distribution/cluster-node/transport-failure.ts
|
|
8048
8078
|
var FAILURE_CODE_BY_TRANSPORT_CODE = {
|
|
8049
8079
|
[TransportErrorCodes.CONNECT_FAILED]: ErrorCodes.QUERY_NO_ACTIVE_REPLICA,
|
|
@@ -9037,7 +9067,6 @@ async function routeUpdateBatch(indexName, updates, deps) {
|
|
|
9037
9067
|
}
|
|
9038
9068
|
|
|
9039
9069
|
// src/distribution/cluster-node/write-routing/index.ts
|
|
9040
|
-
var MAX_REPLICATION_FACTOR = 255;
|
|
9041
9070
|
function validateCreateIndexOptions(partitionCount, replicationFactor) {
|
|
9042
9071
|
if (!Number.isInteger(partitionCount) || partitionCount < 1 || partitionCount > MAX_PARTITION_COUNT) {
|
|
9043
9072
|
throw new NarsilError(
|
|
@@ -9838,7 +9867,6 @@ function popScoredHeap(heap, nodeFirst) {
|
|
|
9838
9867
|
}
|
|
9839
9868
|
return top;
|
|
9840
9869
|
}
|
|
9841
|
-
var DEFAULT_MAX_FACET_BUCKETS = 100;
|
|
9842
9870
|
function mergeDistributedFacets(allFacets, allBounds, maxBuckets = DEFAULT_MAX_FACET_BUCKETS) {
|
|
9843
9871
|
const merged = /* @__PURE__ */ new Map();
|
|
9844
9872
|
const bounds = /* @__PURE__ */ new Map();
|
|
@@ -10124,7 +10152,6 @@ var DEFAULT_QUERY_CONFIG = {
|
|
|
10124
10152
|
};
|
|
10125
10153
|
|
|
10126
10154
|
// src/distribution/query/routing.ts
|
|
10127
|
-
var MAX_FACET_SIZE = 1e3;
|
|
10128
10155
|
function wireSortSignature(sort) {
|
|
10129
10156
|
if (sort === null || sort.length === 0) return null;
|
|
10130
10157
|
return JSON.stringify(sort.map((field) => [field.field, field.direction]));
|
|
@@ -10777,7 +10804,6 @@ async function queryCluster(deps, indexName, params) {
|
|
|
10777
10804
|
}
|
|
10778
10805
|
|
|
10779
10806
|
// src/distribution/cluster-node/clear.ts
|
|
10780
|
-
var CLEAR_PAGE_SIZE = 1e3;
|
|
10781
10807
|
async function clearCluster(readDeps, writeDeps, indexName) {
|
|
10782
10808
|
const allocation = await routableAllocation(readDeps.config.coordinator, indexName);
|
|
10783
10809
|
if (allocation === null) {
|
|
@@ -11093,8 +11119,6 @@ function createSingleResponseRespond(respond) {
|
|
|
11093
11119
|
}
|
|
11094
11120
|
|
|
11095
11121
|
// src/distribution/cluster-node/validate-config.ts
|
|
11096
|
-
var MAX_WAIT_FOR_ACTIVE_REPLICAS = 255;
|
|
11097
|
-
var MIN_CONTROLLER_LEASE_TTL_MS = 1e3;
|
|
11098
11122
|
function validateClusterNodeConfig(config) {
|
|
11099
11123
|
if (config.address.length === 0) {
|
|
11100
11124
|
throw new NarsilError(ErrorCodes.CONFIG_INVALID, "ClusterNodeConfig.address must not be empty");
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { NarsilError, ErrorCodes } from '../chunk-P4ELXVJQ.mjs';
|
|
2
2
|
|
|
3
|
-
// src/embeddings/
|
|
3
|
+
// src/embeddings/constants.ts
|
|
4
4
|
var RETRYABLE_STATUS_CODES = /* @__PURE__ */ new Set([429, 500, 502, 503]);
|
|
5
5
|
var MAX_BACKOFF_MS = 3e4;
|
|
6
6
|
var BASE_BACKOFF_MS = 1e3;
|
|
7
7
|
var MAX_JITTER_MS = 1e3;
|
|
8
|
-
var
|
|
8
|
+
var DEFAULT_REQUEST_TIMEOUT_MS = 3e4;
|
|
9
9
|
var MAX_INPUTS_PER_REQUEST = 2048;
|
|
10
|
+
|
|
11
|
+
// src/embeddings/openai.ts
|
|
10
12
|
function isRetryableStatus(status) {
|
|
11
13
|
return RETRYABLE_STATUS_CODES.has(status);
|
|
12
14
|
}
|
|
@@ -194,7 +196,7 @@ function createOpenAIEmbedding(config) {
|
|
|
194
196
|
const url = `${config.baseUrl.replace(/\/+$/, "")}/embeddings`;
|
|
195
197
|
const model = config.model;
|
|
196
198
|
const dimensionCount = config.dimensions;
|
|
197
|
-
const timeoutMs = config.timeout ??
|
|
199
|
+
const timeoutMs = config.timeout ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
198
200
|
const maxRetries = config.maxRetries ?? 3;
|
|
199
201
|
return {
|
|
200
202
|
get dimensions() {
|