@zilliz/milvus2-sdk-node 2.3.4 → 2.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/README.md +154 -35
- package/dist/milvus/HttpClient.d.ts +165 -2
- package/dist/milvus/HttpClient.js +17 -3
- package/dist/milvus/HttpClient.js.map +1 -1
- package/dist/milvus/MilvusClient.d.ts +3 -3
- package/dist/milvus/MilvusClient.js +42 -8
- package/dist/milvus/MilvusClient.js.map +1 -1
- package/dist/milvus/const/client.d.ts +4 -3
- package/dist/milvus/const/client.js +4 -3
- package/dist/milvus/const/client.js.map +1 -1
- package/dist/milvus/const/defaults.d.ts +5 -4
- package/dist/milvus/const/defaults.js +14 -13
- package/dist/milvus/const/defaults.js.map +1 -1
- package/dist/milvus/const/error.js +1 -1
- package/dist/milvus/const/error.js.map +1 -1
- package/dist/milvus/const/milvus.d.ts +45 -8
- package/dist/milvus/const/milvus.js +41 -3
- package/dist/milvus/const/milvus.js.map +1 -1
- package/dist/milvus/grpc/BaseClient.d.ts +11 -9
- package/dist/milvus/grpc/BaseClient.js +59 -21
- package/dist/milvus/grpc/BaseClient.js.map +1 -1
- package/dist/milvus/grpc/Collection.d.ts +311 -366
- package/dist/milvus/grpc/Collection.js +355 -387
- package/dist/milvus/grpc/Collection.js.map +1 -1
- package/dist/milvus/grpc/Data.d.ts +244 -291
- package/dist/milvus/grpc/Data.js +402 -539
- package/dist/milvus/grpc/Data.js.map +1 -1
- package/dist/milvus/grpc/Database.d.ts +29 -41
- package/dist/milvus/grpc/Database.js +32 -44
- package/dist/milvus/grpc/Database.js.map +1 -1
- package/dist/milvus/grpc/GrpcClient.d.ts +34 -13
- package/dist/milvus/grpc/GrpcClient.js +80 -70
- package/dist/milvus/grpc/GrpcClient.js.map +1 -1
- package/dist/milvus/grpc/MilvusIndex.d.ts +127 -67
- package/dist/milvus/grpc/MilvusIndex.js +166 -70
- package/dist/milvus/grpc/MilvusIndex.js.map +1 -1
- package/dist/milvus/grpc/Partition.d.ts +78 -113
- package/dist/milvus/grpc/Partition.js +109 -119
- package/dist/milvus/grpc/Partition.js.map +1 -1
- package/dist/milvus/grpc/Resource.d.ts +63 -92
- package/dist/milvus/grpc/Resource.js +69 -98
- package/dist/milvus/grpc/Resource.js.map +1 -1
- package/dist/milvus/grpc/User.d.ts +263 -295
- package/dist/milvus/grpc/User.js +287 -310
- package/dist/milvus/grpc/User.js.map +1 -1
- package/dist/milvus/http/Alias.d.ts +37 -0
- package/dist/milvus/http/Alias.js +62 -0
- package/dist/milvus/http/Alias.js.map +1 -0
- package/dist/milvus/http/Collection.d.ts +15 -1
- package/dist/milvus/http/Collection.js +55 -9
- package/dist/milvus/http/Collection.js.map +1 -1
- package/dist/milvus/http/Import.d.ts +33 -0
- package/dist/milvus/http/Import.js +48 -0
- package/dist/milvus/http/Import.js.map +1 -0
- package/dist/milvus/http/MilvusIndex.d.ts +35 -0
- package/dist/milvus/http/MilvusIndex.js +55 -0
- package/dist/milvus/http/MilvusIndex.js.map +1 -0
- package/dist/milvus/http/Partition.d.ts +41 -0
- package/dist/milvus/http/Partition.js +76 -0
- package/dist/milvus/http/Partition.js.map +1 -0
- package/dist/milvus/http/Role.d.ts +39 -0
- package/dist/milvus/http/Role.js +69 -0
- package/dist/milvus/http/Role.js.map +1 -0
- package/dist/milvus/http/User.d.ts +41 -0
- package/dist/milvus/http/User.js +76 -0
- package/dist/milvus/http/User.js.map +1 -0
- package/dist/milvus/http/Vector.d.ts +5 -3
- package/dist/milvus/http/Vector.js +10 -7
- package/dist/milvus/http/Vector.js.map +1 -1
- package/dist/milvus/http/index.d.ts +6 -0
- package/dist/milvus/http/index.js +6 -0
- package/dist/milvus/http/index.js.map +1 -1
- package/dist/milvus/index.d.ts +0 -1
- package/dist/milvus/index.js +0 -1
- package/dist/milvus/index.js.map +1 -1
- package/dist/milvus/types/Client.d.ts +5 -0
- package/dist/milvus/types/Collection.d.ts +34 -9
- package/dist/milvus/types/Common.d.ts +1 -3
- package/dist/milvus/types/Data.d.ts +79 -23
- package/dist/milvus/types/Data.js +1 -0
- package/dist/milvus/types/Data.js.map +1 -1
- package/dist/milvus/types/HighLevel.d.ts +6 -3
- package/dist/milvus/types/Http.d.ts +191 -9
- package/dist/milvus/types/MilvusIndex.d.ts +17 -3
- package/dist/milvus/types/User.d.ts +10 -9
- package/dist/milvus/utils/Bytes.d.ts +84 -0
- package/dist/milvus/utils/Bytes.js +261 -0
- package/dist/milvus/utils/Bytes.js.map +1 -0
- package/dist/milvus/utils/Format.d.ts +126 -68
- package/dist/milvus/utils/Format.js +375 -94
- package/dist/milvus/utils/Format.js.map +1 -1
- package/dist/milvus/utils/Function.d.ts +4 -2
- package/dist/milvus/utils/Function.js +58 -25
- package/dist/milvus/utils/Function.js.map +1 -1
- package/dist/milvus/utils/Grpc.d.ts +3 -2
- package/dist/milvus/utils/Grpc.js +65 -98
- package/dist/milvus/utils/Grpc.js.map +1 -1
- package/dist/milvus/utils/Validate.d.ts +18 -3
- package/dist/milvus/utils/Validate.js +38 -12
- package/dist/milvus/utils/Validate.js.map +1 -1
- package/dist/milvus/utils/index.d.ts +1 -1
- package/dist/milvus/utils/index.js +1 -1
- package/dist/milvus/utils/index.js.map +1 -1
- package/dist/proto/proto/common.proto +29 -1
- package/dist/proto/proto/google/protobuf/descriptor.proto +96 -34
- package/dist/proto/proto/milvus.proto +168 -2
- package/dist/proto/proto/rg.proto +28 -0
- package/dist/proto/proto/schema.proto +36 -0
- package/dist/sdk.json +1 -1
- package/package.json +8 -5
- package/dist/milvus/OrmClient.d.ts +0 -19
- package/dist/milvus/OrmClient.js +0 -51
- package/dist/milvus/OrmClient.js.map +0 -1
- package/dist/milvus/orm/Collection.d.ts +0 -43
- package/dist/milvus/orm/Collection.js +0 -165
- package/dist/milvus/orm/Collection.js.map +0 -1
- package/dist/milvus/orm/index.d.ts +0 -1
- package/dist/milvus/orm/index.js +0 -18
- package/dist/milvus/orm/index.js.map +0 -1
- package/dist/milvus/utils/Blob.d.ts +0 -4
- package/dist/milvus/utils/Blob.js +0 -18
- package/dist/milvus/utils/Blob.js.map +0 -1
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDataKey = exports.buildDefaultSchema = exports.sleep = exports.findKeyValue = exports.promisify = void 0;
|
|
12
|
+
exports.getSparseDim = exports.getDataKey = exports.buildDefaultSchema = exports.sleep = exports.findKeyValue = exports.promisify = void 0;
|
|
4
13
|
const __1 = require("../");
|
|
5
14
|
/**
|
|
6
15
|
* Promisify a function call with optional timeout
|
|
@@ -10,32 +19,35 @@ const __1 = require("../");
|
|
|
10
19
|
* @param timeout - Optional timeout in milliseconds
|
|
11
20
|
* @returns A Promise that resolves with the result of the target function call
|
|
12
21
|
*/
|
|
13
|
-
function promisify(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
function promisify(pool, target, params, timeout) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
// Calculate the deadline for the function call
|
|
25
|
+
const t = timeout === 0 ? 1000 * 60 * 60 * 24 : timeout;
|
|
26
|
+
// get client
|
|
27
|
+
const client = yield pool.acquire();
|
|
28
|
+
// Create a new Promise that wraps the target function call
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
try {
|
|
31
|
+
// Call the target function with the provided parameters and deadline
|
|
32
|
+
client[target](params, { deadline: new Date(Date.now() + t) }, (err, result) => {
|
|
33
|
+
if (err) {
|
|
34
|
+
// If there was an error, reject the Promise with the error
|
|
35
|
+
reject(err);
|
|
36
|
+
}
|
|
37
|
+
// Otherwise, resolve the Promise with the result
|
|
38
|
+
resolve(result);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
if (client) {
|
|
46
|
+
pool.release(client);
|
|
24
47
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
// If there was an exception, throw a new Error
|
|
31
|
-
throw new Error(e);
|
|
32
|
-
}
|
|
33
|
-
}).catch(err => {
|
|
34
|
-
// Return a rejected Promise with the error
|
|
35
|
-
return Promise.reject(err);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
36
50
|
});
|
|
37
|
-
// Return the Promise
|
|
38
|
-
return res;
|
|
39
51
|
}
|
|
40
52
|
exports.promisify = promisify;
|
|
41
53
|
const findKeyValue = (obj, key) => { var _a; return (_a = obj.find(v => v.key === key)) === null || _a === void 0 ? void 0 : _a.value; };
|
|
@@ -72,9 +84,18 @@ const getDataKey = (type, camelCase = false) => {
|
|
|
72
84
|
case __1.DataType.FloatVector:
|
|
73
85
|
dataKey = 'float_vector';
|
|
74
86
|
break;
|
|
87
|
+
case __1.DataType.Float16Vector:
|
|
88
|
+
dataKey = 'float16_vector';
|
|
89
|
+
break;
|
|
90
|
+
case __1.DataType.BFloat16Vector:
|
|
91
|
+
dataKey = 'bfloat16_vector';
|
|
92
|
+
break;
|
|
75
93
|
case __1.DataType.BinaryVector:
|
|
76
94
|
dataKey = 'binary_vector';
|
|
77
95
|
break;
|
|
96
|
+
case __1.DataType.SparseFloatVector:
|
|
97
|
+
dataKey = 'sparse_float_vector';
|
|
98
|
+
break;
|
|
78
99
|
case __1.DataType.Double:
|
|
79
100
|
dataKey = 'double_data';
|
|
80
101
|
break;
|
|
@@ -110,4 +131,16 @@ const getDataKey = (type, camelCase = false) => {
|
|
|
110
131
|
return camelCase ? convertToCamelCase(dataKey) : dataKey;
|
|
111
132
|
};
|
|
112
133
|
exports.getDataKey = getDataKey;
|
|
134
|
+
// get biggest size of sparse vector array
|
|
135
|
+
const getSparseDim = (data) => {
|
|
136
|
+
let dim = 0;
|
|
137
|
+
for (const row of data) {
|
|
138
|
+
const indices = Object.keys(row).map(Number);
|
|
139
|
+
if (indices.length > dim) {
|
|
140
|
+
dim = indices.length;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return dim;
|
|
144
|
+
};
|
|
145
|
+
exports.getSparseDim = getSparseDim;
|
|
113
146
|
//# sourceMappingURL=Function.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Function.js","sourceRoot":"","sources":["../../../milvus/utils/Function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Function.js","sourceRoot":"","sources":["../../../milvus/utils/Function.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Options } from '@grpc/proto-loader';
|
|
1
2
|
import { ServiceClientConstructor, InterceptingCall } from '@grpc/grpc-js';
|
|
2
3
|
interface IServiceDetails {
|
|
3
4
|
protoPath: string;
|
|
@@ -8,7 +9,7 @@ interface IServiceDetails {
|
|
|
8
9
|
* @param proto An object containing the proto file path and service name.
|
|
9
10
|
* @returns A gRPC service client constructor.
|
|
10
11
|
*/
|
|
11
|
-
export declare const getGRPCService: (proto: IServiceDetails) => ServiceClientConstructor;
|
|
12
|
+
export declare const getGRPCService: (proto: IServiceDetails, options: Options) => ServiceClientConstructor;
|
|
12
13
|
/**
|
|
13
14
|
* Returns a gRPC interceptor function that adds metadata to outgoing requests.
|
|
14
15
|
*
|
|
@@ -27,7 +28,7 @@ export declare const getMetaInterceptor: (onInvoked: Function, initValues?: {
|
|
|
27
28
|
* @param {number} options.retryDelay - The delay in milliseconds between retries.
|
|
28
29
|
* @returns {Function} The gRPC interceptor function.
|
|
29
30
|
*/
|
|
30
|
-
export declare const getRetryInterceptor: ({ maxRetries, retryDelay, clientId }: {
|
|
31
|
+
export declare const getRetryInterceptor: ({ maxRetries, retryDelay, clientId, }: {
|
|
31
32
|
maxRetries: number;
|
|
32
33
|
retryDelay: number;
|
|
33
34
|
clientId: string;
|
|
@@ -9,23 +9,16 @@ const proto_loader_1 = require("@grpc/proto-loader");
|
|
|
9
9
|
const grpc_js_1 = require("@grpc/grpc-js");
|
|
10
10
|
const _1 = require(".");
|
|
11
11
|
const const_1 = require("../const");
|
|
12
|
-
const PROTO_OPTIONS = {
|
|
13
|
-
keepCase: true,
|
|
14
|
-
longs: String,
|
|
15
|
-
enums: String,
|
|
16
|
-
defaults: true,
|
|
17
|
-
oneofs: true,
|
|
18
|
-
};
|
|
19
12
|
/**
|
|
20
13
|
* Returns a gRPC service client constructor for the given proto file and service name.
|
|
21
14
|
* @param proto An object containing the proto file path and service name.
|
|
22
15
|
* @returns A gRPC service client constructor.
|
|
23
16
|
*/
|
|
24
|
-
const getGRPCService = (proto) => {
|
|
17
|
+
const getGRPCService = (proto, options) => {
|
|
25
18
|
// Resolve the proto file path.
|
|
26
19
|
const PROTO_PATH = path_1.default.resolve(__dirname, proto.protoPath);
|
|
27
20
|
// Load the proto file.
|
|
28
|
-
const packageDefinition = (0, proto_loader_1.loadSync)(PROTO_PATH,
|
|
21
|
+
const packageDefinition = (0, proto_loader_1.loadSync)(PROTO_PATH, options);
|
|
29
22
|
// Load the gRPC object.
|
|
30
23
|
const grpcObj = (0, grpc_js_1.loadPackageDefinition)(packageDefinition);
|
|
31
24
|
// Get the service object from the gRPC object.
|
|
@@ -75,116 +68,90 @@ exports.getMetaInterceptor = getMetaInterceptor;
|
|
|
75
68
|
* @returns {Function} The gRPC interceptor function.
|
|
76
69
|
*/
|
|
77
70
|
/* istanbul ignore next */
|
|
78
|
-
const getRetryInterceptor = ({ maxRetries = 3, retryDelay = 30, clientId = '' }) => function (options, nextCall) {
|
|
71
|
+
const getRetryInterceptor = ({ maxRetries = 3, retryDelay = 30, clientId = '', }) => function (options, nextCall) {
|
|
72
|
+
// intermediate variables
|
|
79
73
|
let savedMetadata;
|
|
80
74
|
let savedSendMessage;
|
|
81
75
|
let savedReceiveMessage;
|
|
76
|
+
let savedNext;
|
|
82
77
|
let savedMessageNext;
|
|
83
|
-
|
|
84
|
-
const deadline = options.deadline;
|
|
78
|
+
let savedStatusNext;
|
|
85
79
|
// get method name
|
|
86
|
-
// option example
|
|
87
|
-
// {
|
|
88
|
-
// deadline: 2023-05-04T09:04:16.231Z,
|
|
89
|
-
// method_definition: {
|
|
90
|
-
// path: '/milvus.proto.milvus.MilvusService/ListCredUsers',
|
|
91
|
-
// requestStream: false,
|
|
92
|
-
// responseStream: false,
|
|
93
|
-
// requestSerialize: [Function: serialize],
|
|
94
|
-
// responseDeserialize: [Function: deserialize]
|
|
95
|
-
// }
|
|
96
|
-
// }
|
|
97
80
|
const methodName = (0, _1.extractMethodName)(options.method_definition.path);
|
|
98
|
-
//
|
|
81
|
+
// for logger
|
|
99
82
|
const startTime = new Date();
|
|
100
83
|
let dbname = '';
|
|
101
|
-
|
|
84
|
+
let retryCount = 0;
|
|
85
|
+
// deadline and timeout
|
|
86
|
+
const deadline = options.deadline;
|
|
87
|
+
// retry timeout
|
|
88
|
+
const timeout = deadline.getTime() - startTime.getTime();
|
|
89
|
+
const timeoutInSeconds = timeout / 1000 + 's';
|
|
90
|
+
// make clientId shorter
|
|
91
|
+
clientId = clientId.slice(0, 8) + '...';
|
|
92
|
+
// requester, used to execute method
|
|
102
93
|
let requester = {
|
|
103
94
|
start: function (metadata, listener, next) {
|
|
104
95
|
savedMetadata = metadata;
|
|
105
|
-
|
|
96
|
+
savedNext = next;
|
|
97
|
+
// get db name from meta
|
|
106
98
|
dbname = metadata.get('dbname') || const_1.DEFAULT_DB;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
onReceiveMessage:
|
|
99
|
+
const retryListener = {
|
|
100
|
+
// this will be called before onReceiveStatus
|
|
101
|
+
onReceiveMessage: (message, next) => {
|
|
102
|
+
// store message for retry call
|
|
110
103
|
savedReceiveMessage = message;
|
|
111
|
-
|
|
104
|
+
// store next for retry call
|
|
105
|
+
if (!savedMessageNext) {
|
|
106
|
+
savedMessageNext = next;
|
|
107
|
+
}
|
|
112
108
|
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
// retry delay
|
|
121
|
-
const _retryDelay = Math.pow(2, retries) * retryDelay;
|
|
122
|
-
// timeout
|
|
123
|
-
const _timeout = deadline.getTime() - startTime.getTime();
|
|
124
|
-
// log
|
|
125
|
-
_1.logger.debug(`[${clientId}>${dbname}>${methodName}] executed failed, status: ${JSON.stringify(status)}, timeout set: ${_timeout}ms, retry after ${_retryDelay} ms.`);
|
|
126
|
-
// retry listener
|
|
127
|
-
const retryListener = {
|
|
128
|
-
onReceiveMessage: function (message) {
|
|
129
|
-
savedReceiveMessage = message;
|
|
130
|
-
},
|
|
131
|
-
onReceiveStatus: function (status) {
|
|
132
|
-
if ((0, _1.isStatusCodeMatched)(status.code)) {
|
|
133
|
-
if (retries < maxRetries) {
|
|
134
|
-
setTimeout(() => {
|
|
135
|
-
// need to update the deadline
|
|
136
|
-
retry(message, metadata);
|
|
137
|
-
// double increase delay every retry
|
|
138
|
-
}, _retryDelay);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
_1.logger.debug(`[${clientId}>${dbname}>${methodName}] retry run out of ${retries} times. ${JSON.stringify(status)}`);
|
|
142
|
-
// we still pop up server information to client
|
|
143
|
-
savedMessageNext(savedReceiveMessage);
|
|
144
|
-
// and do the next call if there is
|
|
145
|
-
next(status);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
_1.logger.debug(`[${clientId}>${dbname}>${methodName}] retried successfully in ${Date.now() - startTime.getTime()}ms.`);
|
|
150
|
-
savedMessageNext(savedReceiveMessage);
|
|
151
|
-
next({ code: grpc_js_1.status.OK });
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
// retry, update deadline
|
|
156
|
-
options.deadline = new Date(Date.now() + _timeout);
|
|
157
|
-
let newCall = nextCall(options);
|
|
158
|
-
newCall.start(metadata, retryListener);
|
|
159
|
-
};
|
|
160
|
-
// check grpc status
|
|
109
|
+
// then this will be called
|
|
110
|
+
onReceiveStatus: (status, next) => {
|
|
111
|
+
// store status for retry call
|
|
112
|
+
if (!savedStatusNext) {
|
|
113
|
+
savedStatusNext = next;
|
|
114
|
+
}
|
|
115
|
+
// transform code and message if needed(for compatibility with old version of milvus)
|
|
161
116
|
switch (status.code) {
|
|
162
|
-
case grpc_js_1.status.DEADLINE_EXCEEDED:
|
|
163
|
-
case grpc_js_1.status.UNAVAILABLE:
|
|
164
|
-
case grpc_js_1.status.INTERNAL:
|
|
165
|
-
retry(savedSendMessage, savedMetadata);
|
|
166
|
-
break;
|
|
167
117
|
case grpc_js_1.status.UNIMPLEMENTED:
|
|
168
|
-
// const returnMsg = { error_code: 'Success', reason: '' };
|
|
169
|
-
_1.logger.debug(`[${clientId}>${dbname}>${methodName}] returns ${JSON.stringify(status)}`);
|
|
170
|
-
// throw new Error(
|
|
171
|
-
// 'This version of sdk is incompatible with the server, please downgrade your sdk or upgrade your server.'
|
|
172
|
-
// );
|
|
173
|
-
// return empty message
|
|
174
118
|
savedReceiveMessage = {};
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
119
|
+
status.code = grpc_js_1.status.OK;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
// check message if need retry
|
|
123
|
+
const needRetry = (0, _1.isInvalidMessage)(savedReceiveMessage, []) ||
|
|
124
|
+
!(0, _1.isInIgnoreRetryCodes)(status.code);
|
|
125
|
+
// check
|
|
126
|
+
if (needRetry && retryCount < maxRetries) {
|
|
127
|
+
// increase retry count
|
|
128
|
+
retryCount++;
|
|
129
|
+
// retry delay
|
|
130
|
+
const _retryDelay = Math.pow(2, retryCount) * retryDelay;
|
|
131
|
+
// logger
|
|
132
|
+
_1.logger.debug(`\x1b[31m[Response(${Date.now() - startTime.getTime()}ms)]\x1b[0m\x1b[2m${clientId}\x1b[0m>${dbname}>\x1b[1m${methodName}\x1b[0m: ${JSON.stringify(savedReceiveMessage)}`);
|
|
133
|
+
_1.logger.debug(`\x1b[31m[Retry(${_retryDelay}ms]\x1b[0m\x1b[2m${clientId}\x1b[0m>${dbname}>\x1b[1m${methodName}\x1b[0m:, status: ${JSON.stringify(status)}`);
|
|
134
|
+
// set new deadline
|
|
135
|
+
options.deadline = new Date(Date.now() + timeout);
|
|
136
|
+
// create new call
|
|
137
|
+
const newCall = nextCall(options);
|
|
138
|
+
newCall.start(savedMetadata, retryListener);
|
|
139
|
+
newCall.sendMessage(savedSendMessage);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
_1.logger.debug(`\x1b[32m[Response(${Date.now() - startTime.getTime()}ms)]\x1b[0m\x1b[2m${clientId}\x1b[0m>${dbname}>\x1b[1m${methodName}\x1b[0m: ${JSON.stringify(savedReceiveMessage)}`);
|
|
143
|
+
savedMessageNext(savedReceiveMessage);
|
|
144
|
+
savedStatusNext(status);
|
|
181
145
|
}
|
|
182
146
|
},
|
|
183
147
|
};
|
|
184
|
-
|
|
148
|
+
savedNext(metadata, retryListener);
|
|
185
149
|
},
|
|
186
|
-
sendMessage:
|
|
187
|
-
|
|
150
|
+
sendMessage: (message, next) => {
|
|
151
|
+
const string = JSON.stringify(message);
|
|
152
|
+
// if string is too big, just show 1000 characters
|
|
153
|
+
const msg = string.length > 2048 ? string.slice(0, 2048) + '...' : string;
|
|
154
|
+
_1.logger.debug(`\x1b[34m[Request]\x1b[0m${clientId}>${dbname}>\x1b[1m${methodName}(${timeoutInSeconds})\x1b[0m: ${msg}`);
|
|
188
155
|
savedSendMessage = message;
|
|
189
156
|
next(message);
|
|
190
157
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grpc.js","sourceRoot":"","sources":["../../../milvus/utils/Grpc.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"Grpc.js","sourceRoot":"","sources":["../../../milvus/utils/Grpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FieldType, CreateColReq, CreateCollectionReq } from '../';
|
|
1
|
+
import { FieldType, DataType, CreateColReq, CreateCollectionReq, CreateColWithSchemaAndIndexParamsReq } from '../';
|
|
2
2
|
/**
|
|
3
3
|
* when create collection, field must contain 2 Fields.
|
|
4
4
|
* Type is int64 or varchar and primary_key = true
|
|
@@ -35,7 +35,16 @@ export declare const checkSearchParams: (data: any) => void;
|
|
|
35
35
|
* @param {number[]} [codesToCheck=[grpcStatus.DEADLINE_EXCEEDED, grpcStatus.UNAVAILABLE]] - An array of gRPC status codes to check against.
|
|
36
36
|
* @returns {boolean} Whether the gRPC status code matches any of the given codes.
|
|
37
37
|
*/
|
|
38
|
-
export declare const
|
|
38
|
+
export declare const isInIgnoreRetryCodes: (code: number, codesToCheck?: number[]) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Checks if a milvus status message is valid.
|
|
41
|
+
*/
|
|
42
|
+
export declare const isInvalidMessage: (message: {
|
|
43
|
+
code: number;
|
|
44
|
+
status?: {
|
|
45
|
+
code: number;
|
|
46
|
+
};
|
|
47
|
+
}, codesToCheck?: number[]) => boolean;
|
|
39
48
|
/**
|
|
40
49
|
* Validates the number of partitions.
|
|
41
50
|
* @param {number} num_partitions - The number of partitions to validate.
|
|
@@ -47,4 +56,10 @@ export declare const validatePartitionNumbers: (num_partitions: number) => void;
|
|
|
47
56
|
* @param {CreateColReq | CreateCollectionReq} data - The data to check for compatibility.
|
|
48
57
|
* @throws {Error} Throws an error if the SDK and server are incompatible.
|
|
49
58
|
*/
|
|
50
|
-
export declare const checkCreateCollectionCompatibility: (data: CreateColReq | CreateCollectionReq) => void;
|
|
59
|
+
export declare const checkCreateCollectionCompatibility: (data: CreateColReq | CreateColWithSchemaAndIndexParamsReq | CreateCollectionReq) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Checks if the given data type is a vector type.
|
|
62
|
+
* @param {DataType} type - The data type to check.
|
|
63
|
+
* @returns {Boolean} True if the data type is a vector type, false otherwise.
|
|
64
|
+
*/
|
|
65
|
+
export declare const isVectorType: (type: DataType) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkCreateCollectionCompatibility = exports.validatePartitionNumbers = exports.
|
|
3
|
+
exports.isVectorType = exports.checkCreateCollectionCompatibility = exports.validatePartitionNumbers = exports.isInvalidMessage = exports.isInIgnoreRetryCodes = exports.checkSearchParams = exports.checkCollectionAndPartitionName = exports.checkCollectionName = exports.checkCollectionFields = void 0;
|
|
4
4
|
const __1 = require("../");
|
|
5
5
|
const grpc_js_1 = require("@grpc/grpc-js");
|
|
6
6
|
/**
|
|
@@ -11,8 +11,6 @@ const grpc_js_1 = require("@grpc/grpc-js");
|
|
|
11
11
|
* @param fields
|
|
12
12
|
*/
|
|
13
13
|
const checkCollectionFields = (fields) => {
|
|
14
|
-
// Define arrays of data types that are allowed for vector fields and primary keys, respectively
|
|
15
|
-
const vectorDataTypes = [__1.DataType.BinaryVector, __1.DataType.FloatVector];
|
|
16
14
|
const int64VarCharTypes = [__1.DataType.Int64, __1.DataType.VarChar];
|
|
17
15
|
let hasPrimaryKey = false;
|
|
18
16
|
let hasVectorField = false;
|
|
@@ -40,11 +38,11 @@ const checkCollectionFields = (fields) => {
|
|
|
40
38
|
partitionKeyCount++;
|
|
41
39
|
}
|
|
42
40
|
// if this is the vector field, check dimension
|
|
43
|
-
const isVectorField =
|
|
41
|
+
const isVectorField = (0, exports.isVectorType)(dataType);
|
|
44
42
|
const typeParams = field.type_params;
|
|
45
43
|
if (isVectorField) {
|
|
46
44
|
const dim = Number((_a = typeParams === null || typeParams === void 0 ? void 0 : typeParams.dim) !== null && _a !== void 0 ? _a : field.dim);
|
|
47
|
-
if (!dim) {
|
|
45
|
+
if (!dim && dataType !== __1.DataType.SparseFloatVector) {
|
|
48
46
|
throw new Error(__1.ERROR_REASONS.CREATE_COLLECTION_CHECK_MISS_DIM);
|
|
49
47
|
}
|
|
50
48
|
if (dataType === __1.DataType.BinaryVector && dim % 8 !== 0) {
|
|
@@ -118,14 +116,28 @@ exports.checkSearchParams = checkSearchParams;
|
|
|
118
116
|
* @param {number[]} [codesToCheck=[grpcStatus.DEADLINE_EXCEEDED, grpcStatus.UNAVAILABLE]] - An array of gRPC status codes to check against.
|
|
119
117
|
* @returns {boolean} Whether the gRPC status code matches any of the given codes.
|
|
120
118
|
*/
|
|
121
|
-
const
|
|
119
|
+
const isInIgnoreRetryCodes = (code, codesToCheck = [
|
|
122
120
|
grpc_js_1.status.DEADLINE_EXCEEDED,
|
|
123
|
-
grpc_js_1.status.
|
|
124
|
-
grpc_js_1.status.
|
|
121
|
+
grpc_js_1.status.PERMISSION_DENIED,
|
|
122
|
+
grpc_js_1.status.UNAUTHENTICATED,
|
|
123
|
+
grpc_js_1.status.INVALID_ARGUMENT,
|
|
124
|
+
grpc_js_1.status.ALREADY_EXISTS,
|
|
125
|
+
grpc_js_1.status.RESOURCE_EXHAUSTED,
|
|
126
|
+
grpc_js_1.status.UNIMPLEMENTED,
|
|
127
|
+
grpc_js_1.status.OK,
|
|
125
128
|
]) => {
|
|
126
129
|
return codesToCheck.includes(code);
|
|
127
130
|
};
|
|
128
|
-
exports.
|
|
131
|
+
exports.isInIgnoreRetryCodes = isInIgnoreRetryCodes;
|
|
132
|
+
/**
|
|
133
|
+
* Checks if a milvus status message is valid.
|
|
134
|
+
*/
|
|
135
|
+
const isInvalidMessage = (message, codesToCheck = []) => {
|
|
136
|
+
return (message &&
|
|
137
|
+
codesToCheck.some(code => code === message.code ||
|
|
138
|
+
(message.status && code === message.status.code)));
|
|
139
|
+
};
|
|
140
|
+
exports.isInvalidMessage = isInvalidMessage;
|
|
129
141
|
/**
|
|
130
142
|
* Validates the number of partitions.
|
|
131
143
|
* @param {number} num_partitions - The number of partitions to validate.
|
|
@@ -146,16 +158,30 @@ const checkCreateCollectionCompatibility = (data) => {
|
|
|
146
158
|
const hasDynamicSchemaEnabled = data.enableDynamicField ||
|
|
147
159
|
data.enable_dynamic_field;
|
|
148
160
|
if (hasDynamicSchemaEnabled) {
|
|
149
|
-
throw new Error(`Your milvus server doesn't support
|
|
161
|
+
throw new Error(`Your milvus server doesn't support dynamic schema, please upgrade your server.`);
|
|
150
162
|
}
|
|
151
|
-
const fields = data.fields
|
|
163
|
+
const fields = data.fields ||
|
|
164
|
+
data.schema;
|
|
152
165
|
if (fields.some(f => f.is_partition_key === true)) {
|
|
153
166
|
throw new Error(`Your milvus server doesn't support partition key, please upgrade your server.`);
|
|
154
167
|
}
|
|
155
|
-
const hasJSONField =
|
|
168
|
+
const hasJSONField = fields.some(f => f.data_type === 'JSON' || f.data_type === __1.DataType.JSON);
|
|
156
169
|
if (hasJSONField) {
|
|
157
170
|
throw new Error(`Your milvus server doesn't support JSON data type, please upgrade your server.`);
|
|
158
171
|
}
|
|
159
172
|
};
|
|
160
173
|
exports.checkCreateCollectionCompatibility = checkCreateCollectionCompatibility;
|
|
174
|
+
/**
|
|
175
|
+
* Checks if the given data type is a vector type.
|
|
176
|
+
* @param {DataType} type - The data type to check.
|
|
177
|
+
* @returns {Boolean} True if the data type is a vector type, false otherwise.
|
|
178
|
+
*/
|
|
179
|
+
const isVectorType = (type) => {
|
|
180
|
+
return (type === __1.DataType.BinaryVector ||
|
|
181
|
+
type === __1.DataType.FloatVector ||
|
|
182
|
+
type === __1.DataType.Float16Vector ||
|
|
183
|
+
type === __1.DataType.BFloat16Vector ||
|
|
184
|
+
type === __1.DataType.SparseFloatVector);
|
|
185
|
+
};
|
|
186
|
+
exports.isVectorType = isVectorType;
|
|
161
187
|
//# sourceMappingURL=Validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../milvus/utils/Validate.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../milvus/utils/Validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./Grpc"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./Bytes"), exports);
|
|
19
19
|
__exportStar(require("./Format"), exports);
|
|
20
20
|
__exportStar(require("./Validate"), exports);
|
|
21
21
|
__exportStar(require("./Function"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../milvus/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../milvus/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB"}
|