diff --git a/docs/api/README.md b/docs/api/README.md index fcf1c94e57..62ed698784 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -13,8 +13,7 @@ The APIs overview tables is here: | Insert Service | Insert new vector(s) into the Vald Agent Pods. | [Insert](../api/insert.md#insert-rpc)
[StreamInsert](../api/insert.md#streaminsert-rpc)
[MultiInsert](../api/insert.md#multiinsert-rpc) | [Vald Insert APIs](../api/insert.md) | | Update Service | Update the exists vector(s) in the Vald Agent Pods. | [Update](../api/update.md#update-rpc)
[StreamUpdate](../api/update.md#streamupdate-rpc)
[MultiUpdate](../api/update.md#multiupdate-rpc) | [Vald Update APIs](../api/update.md) | | Upsert Service | Update the exists vector(s) in the Vald Agent Pods or Insert new vector(s) into the Vald Agent Pods if the vector is not exists. | [Upsert](../api/upsert.md#upsert-rpc)
[StreamUpsert](../api/upsert.md#streamupsert-rpc)
[MultiUpdate](../api/upsert.md#multiupsert-rpc) | [Vald Upsert APIs](../api/upsert.md) | -| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc) | [Vald Search APIs](../api/search.md) | -| ^ | ^ | [LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | ^ | +| Search Service | Search nearest neighbor vectors using query (vectors or IDs).
There are 2 types of Search methods: Search (means ANN Search) and LinearSearch. | [Search](../api/search.md#search-rpc)
[SearchByID](../api/search.md#searchbyid-rpc)
[StreamSearch](../api/search.md#streamsearch-rpc)
[StreamSearchByID](../api/search.md#streamsearchbyid-rpc)
[MultiSearch](../api/search.md#multisearch-rpc)
[MultiSearchByID](../api/search.md#multisearchbyid-rpc)
[LinearSearch](../api/search.md#linearsearch-rpc)
[LinearSearchByID](../api/search.md#linearsearchbyid-rpc)
[StreamLinearSearch](../api/search.md#streamlinearsearch-rpc)
[StreamLinearSearchByID](../api/search.md#streamlinearsearchbyid-rpc)
[MultiLinearSearch](../api/search.md#multilinearsearch-rpc)
[MultiLinearSearchByID](../api/search.md#multilinearsearchbyid-rpc) | [Vald Search APIs](../api/search.md) | | Remove Service | Remove the exists vector(s) from the Vald Agent Pods. | [Remove](../api/remove.md#remove-rpc)
[StreamRemove](../api/remove.md#streamremove-rpc)
[MultiRemove](../api/remove.md#multiremove-rpc) | [Vald Remove APIs](../api/remove.md) | | Object Service | Get information of vector(s) indexed into the Vald Agent Pods. | [Exists](../api/object.md#exists-rpc)
[GetObject](../api/object.md#getobject-rpc)
[StreamGetObject](../api/object.md#streamgetobject-rpc) | [Vald Object APIs](../api/object.md) | diff --git a/docs/api/insert.md b/docs/api/insert.md index a02edea5a3..c4f62df4ba 100644 --- a/docs/api/insert.md +++ b/docs/api/insert.md @@ -4,7 +4,7 @@ Insert Service is responsible for inserting new vectors into the `vald-agent`. -```bash +```rpc service Insert { rpc Insert(payload.v1.Insert.Request) returns (payload.v1.Object.Location) {} @@ -22,7 +22,7 @@ Inset RPC is the method to add a new single vector. - the scheme of `payload.v1.Insert.Request` - ```bash + ```rpc message Insert { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -45,29 +45,32 @@ Inset RPC is the method to add a new single vector. ``` - Insert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the insert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the insert request | - Insert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Location` - ```bash + ```rpc message Object { message Location { string name = 1; @@ -78,11 +81,12 @@ Inset RPC is the method to add a new single vector. ``` - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is inserted. | - |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is inserted. | + | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | ### Status Code @@ -104,7 +108,7 @@ It's the recommended method to insert the large amount of vectors. - the scheme of `payload.v1.Insert.Request stream` - ```bash + ```rpc message Insert { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -126,29 +130,32 @@ It's the recommended method to insert the large amount of vectors. ``` - Insert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the insert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the insert request | - Insert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of the vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :--------------------------------------------------------------- | + | id | string | | \* | the ID of the vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.StreamLocation` - ```bash + ```rpc message Object { message StreamLocation { oneof payload { @@ -166,24 +173,27 @@ It's the recommended method to insert the large amount of vectors. ``` - Object.StreamLocation - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| | the information of `Object.Location` data. | - |status|google.rpc.Status| | the status of google RPC. | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :----------------------------------------- | + | location | Object.Location | | the information of `Object.Location` data. | + | status | google.rpc.Status | | the status of google RPC. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is inserted. | - |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is inserted. | + | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | - [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) - |field|type|label|desc.| - |:---:|:---|:---|:---| - |code|int32| | status code (code list is next section)| - |message|string| | error message | - |details|google.protobuf.Any| repeated(Array[any]) | the details error message list| + + | field | type | label | desc. | + | :-----: | :------------------ | :------------------- | :-------------------------------------- | + | code | int32 | | status code (code list is next section) | + | message | string | | error message | + | details | google.protobuf.Any | repeated(Array[any]) | the details error message list | ### Status Code @@ -207,7 +217,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Insert.MultiRequest` - ```bash + ```rpc message Insert { message MultiRequest { repeated Request requests = 1; } @@ -232,34 +242,38 @@ Please be careful that the size of the request exceed the limit. ``` - Insert.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|Insert.Request| repeated(Array[Insert.Request]) | \* | the request list | + + | field | type | label | required | desc. | + | :------: | :------------- | :------------------------------ | :------: | :--------------- | + | requests | Insert.Request | repeated(Array[Insert.Request]) | \* | the request list | - Insert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the insert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the insert request | - Insert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Locations`. - ```bash + ```rpc message Object { message Locations { repeated Location locations = 1; } @@ -272,16 +286,18 @@ Please be careful that the size of the request exceed the limit. ``` - Object.Locations - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location`. | + + | field | type | label | desc. | + | :------: | :-------------- | :------------------------------- | :----------------------------- | + | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location`. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is inserted. | - |uuid|string| | the ID of the inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is inserted. | + | uuid | string | | the ID of the inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | ### Status Code diff --git a/docs/api/object.md b/docs/api/object.md index f02a459e9e..9571ab66c2 100644 --- a/docs/api/object.md +++ b/docs/api/object.md @@ -4,7 +4,7 @@ Object Service is responsible for getting inserted vectors and checking whether vectors are inserted into the `vald-agent` or not. -```bash +```rpc service Object { rpc Exists(payload.v1.Object.ID) returns (payload.v1.Object.ID) {} @@ -24,7 +24,7 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`. - the scheme of `payload.v1.Object.ID` - ```bash + ```rpc message Object { message ID { string id = 1 [ (validate.rules).string.min_len = 1 ]; @@ -33,15 +33,16 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`. ``` - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.ID` - ```bash + ```rpc message Object { message ID { string id = 1 [ (validate.rules).string.min_len = 1 ]; @@ -50,18 +51,20 @@ Exists RPC is the method to check the a vector exists in the `vald-agent`. ``` - Object.ID - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | desc. | + | :---: | :----- | :---- | :------------------------------------------------------------- | + | id | string | | the ID of a vector. ID should consist of 1 or more characters. | ### Status Code -| code | desc. | -| :--: | :--------------- | -| 0 | OK | -| 3 | INVALID_ARGUMENT | -| 5 | NOT_FOUND | -| 13 | INTERNAL | +| code | desc. | +| :--: | :---------------- | +| 0 | OK | +| 3 | INVALID_ARGUMENT | +| 4 | DEADLINE_EXCEEDED | +| 5 | NOT_FOUND | +| 13 | INTERNAL | ## GetObject RPC @@ -71,7 +74,7 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v - the scheme of `payload.v1.Object.VectorRequest` - ```bash + ```rpc message Object { message VectorRequest { ID id = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -85,21 +88,23 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v ``` - Object.VectorRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|Object.ID| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |filters|Filter.Config| | | configuration for filter. | + + | field | type | label | required | desc. | + | :-----: | :------------ | :---- | :------: | :------------------------------------------------------------- | + | id | Object.ID | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | filters | Filter.Config | | | configuration for filter. | - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.Vector` - ```bash + ```rpc message Object { message Vector { string id = 1 [ (validate.rules).string.min_len = 1 ]; @@ -109,10 +114,11 @@ GetObject RPC is the method to get the metadata of a vector inserted into the `v ``` - Object.Vector - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. | + + | field | type | label | desc. | + | :----: | :----- | :--------------------- | :------------------------------------------------------------- | + | id | string | | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. | ### Status Code @@ -131,7 +137,7 @@ Each Upsert request and response are independent. - the scheme of `payload.v1.Object.VectorRequest stream` - ```bash + ```rpc message Object { message VectorRequest { ID id = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -145,21 +151,23 @@ Each Upsert request and response are independent. ``` - Object.VectorRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|Object.ID| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |filters|Filter.Config| | | configuration for filter. | + + | field | type | label | required | desc. | + | :-----: | :------------ | :---- | :------: | :------------------------------------------------------------- | + | id | Object.ID | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | filters | Filter.Config | | | configuration for filter. | - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.StreamVector` - ```bash + ```rpc message Object { message StreamVector { oneof payload { @@ -175,16 +183,18 @@ Each Upsert request and response are independent. ``` - Object.StreamVector - |field|type|label|desc.| - |:---:|:---|:---|:---| - |vector|Vector| | the information of Object.Vector data. | - |status|google.rpc.Status| | the status of google RPC. | + + | field | type | label | desc. | + | :----: | :---------------- | :---- | :------------------------------------- | + | vector | Vector | | the information of Object.Vector data. | + | status | google.rpc.Status | | the status of google RPC. | - Object.Vector - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. | + + | field | type | label | desc. | + | :----: | :----- | :--------------------- | :------------------------------------------------------------- | + | id | string | | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | the vector data. its dimension is between 2 and 65,536. | ### Status Code @@ -194,4 +204,3 @@ Each Upsert request and response are independent. | 3 | INVALID_ARGUMENT | | 5 | NOT_FOUND | | 13 | INTERNAL | - diff --git a/docs/api/remove.md b/docs/api/remove.md index d588fe48fa..3bf91891e0 100644 --- a/docs/api/remove.md +++ b/docs/api/remove.md @@ -4,7 +4,7 @@ Remove Service is responsible for removing vectors which is indexed in the `vald-agent`. -```bash +```rpc service Remove { rpc Remove(payload.v1.Remove.Request) returns (payload.v1.Object.Location) {} @@ -25,7 +25,7 @@ Remove RPC is the method to remove a single vector. - the scheme of `payload.v1.Remove.Request` - ```bash + ```rpc message Remove { message Request { Object.ID id = 1; @@ -46,27 +46,30 @@ Remove RPC is the method to remove a single vector. ``` - Remove.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|Object.ID| | \* | the id of vector | - |config|Config| | \* | the configuration of the remove request | + + | field | type | label | required | desc. | + | :----: | :-------- | :---- | :------: | :-------------------------------------- | + | id | Object.ID | | \* | the id of vector | + | config | Config | | \* | the configuration of the remove request | - Remove.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | + + | field | type | label | required | desc. | + | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.Location` - ```bash + ```rpc message Object { message Location { string name = 1; @@ -77,20 +80,22 @@ Remove RPC is the method to remove a single vector. ``` - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is removed. | - |uuid|string| | the ID of the removed vector. It is the same as an `Object.ID`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is removed. | + | uuid | string | | the ID of the removed vector. It is the same as an `Object.ID`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | ### Status Code -| code | desc. | -| :--: | :--------------- | -| 0 | OK | -| 3 | INVALID_ARGUMENT | -| 5 | NOT_FOUND | -| 13 | INTERNAL | +| code | desc. | +| :--: | :---------------- | +| 0 | OK | +| 3 | INVALID_ARGUMENT | +| 4 | DEADLINE_EXCEEDED | +| 5 | NOT_FOUND | +| 13 | INTERNAL | ## StreamRemove RPC @@ -103,7 +108,7 @@ It's the recommended method to remove the large amount of vectors. - the scheme of `payload.v1.Remove.Request stream` - ```bash + ```rpc message Remove { message Request { Object.ID id = 1; @@ -124,27 +129,30 @@ It's the recommended method to remove the large amount of vectors. ``` - Remove.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|Object.ID| | \* | the id of vector | - |config|Config| | \* | the configuration of the insert request | + + | field | type | label | required | desc. | + | :----: | :-------- | :---- | :------: | :-------------------------------------- | + | id | Object.ID | | \* | the id of vector | + | config | Config | | \* | the configuration of the insert request | - Remove.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | + + | field | type | label | required | desc. | + | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.StreamLocation` - ```bash + ```rpc message Object { message StreamLocation { oneof payload { @@ -162,33 +170,37 @@ It's the recommended method to remove the large amount of vectors. ``` - Object.StreamLocation - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| | the information of `Object.Location` data. | - |status|google.rpc.Status| | the status of google RPC | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :----------------------------------------- | + | location | Object.Location | | the information of `Object.Location` data. | + | status | google.rpc.Status | | the status of google RPC | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is removed. | - |uuid|string| | the ID of the removed vector. It is the same as an `Object.ID`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is removed. | + | uuid | string | | the ID of the removed vector. It is the same as an `Object.ID`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | - [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) - |field|type|label|desc.| - |:---:|:---|:---|:---| - |code|int32| | status code (code list is next section) | - |message|string| | error message | - |details|google.protobuf.Any| repeated(Array[any]) | the details error message list | + + | field | type | label | desc. | + | :-----: | :------------------ | :------------------- | :-------------------------------------- | + | code | int32 | | status code (code list is next section) | + | message | string | | error message | + | details | google.protobuf.Any | repeated(Array[any]) | the details error message list | ### Status Code -| code | desc. | -| :--: | :--------------- | -| 0 | OK | -| 3 | INVALID_ARGUMENT | -| 5 | NOT_FOUND | -| 13 | INTERNAL | +| code | desc. | +| :--: | :---------------- | +| 0 | OK | +| 3 | INVALID_ARGUMENT | +| 4 | DEADLINE_EXCEEDED | +| 5 | NOT_FOUND | +| 13 | INTERNAL | ## MultiRemove RPC @@ -203,7 +215,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Remove.MultiRequest` - ```bash + ```rpc message Remove { message MultiRequest { repeated Request requests = 1; @@ -228,32 +240,36 @@ Please be careful that the size of the request exceed the limit. ``` - Remove.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|Remove.Request| repeated(Array[Insert.Request]) | \* | the request list | + + | field | type | label | required | desc. | + | :------: | :------------- | :------------------------------ | :------: | :--------------- | + | requests | Remove.Request | repeated(Array[Insert.Request]) | \* | the request list | - Remove.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|Object.ID| | \* | the id of vector | - |config|Config| | \* | the configuration of the remove request | + + | field | type | label | required | desc. | + | :----: | :-------- | :---- | :------: | :-------------------------------------- | + | id | Object.ID | | \* | the id of vector | + | config | Config | | \* | the configuration of the remove request | - Remove.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | + + | field | type | label | required | desc. | + | :---------------------: | :---- | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector removed.
if it is N/A, the current time will be used. | - Object.ID - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | + + | field | type | label | required | desc. | + | :---: | :----- | :---- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | ### Output - the scheme of `payload.v1.Object.Locations`. - ```bash + ```rpc message Object { message Locations { repeated Location locations = 1; } @@ -266,22 +282,25 @@ Please be careful that the size of the request exceed the limit. ``` - Object.Locations - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location`. | + + | field | type | label | desc. | + | :------: | :-------------- | :------------------------------- | :----------------------------- | + | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location`. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is removed. | - |uuid|string| | the ID of the removed vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is removed. | + | uuid | string | | the ID of the removed vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is removed. | ### Status Code -| code | desc. | -| :--: | :--------------- | -| 0 | OK | -| 3 | INVALID_ARGUMENT | -| 5 | NOT_FOUND | -| 13 | INTERNAL | +| code | desc. | +| :--: | :---------------- | +| 0 | OK | +| 3 | INVALID_ARGUMENT | +| 4 | DEADLINE_EXCEEDED | +| 5 | NOT_FOUND | +| 13 | INTERNAL | diff --git a/docs/api/search.md b/docs/api/search.md index ef3b704bee..78e90a006d 100644 --- a/docs/api/search.md +++ b/docs/api/search.md @@ -4,7 +4,7 @@ Search Service is responsible for searching vectors from `vald-agent` which are similar to user request vector. -```bash +```rpc service Search { rpc Search(payload.v1.Search.Request) returns (payload.v1.Search.Response) {} @@ -50,7 +50,7 @@ Search RPC is the method to search vector(s) similar to request vector. - the scheme of `payload.v1.Search.Request` - ```bash + ```rpc message Search { message Request { repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -70,28 +70,30 @@ Search RPC is the method to search vector(s) similar to request vector. ``` - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Response`. - ```bash + ```rpc message Search { message Response { string request_id = 1; @@ -108,16 +110,18 @@ Search RPC is the method to search vector(s) similar to request vector. ``` - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -137,7 +141,7 @@ The vector with the same requested ID should be indexed into the `vald-agent` be - the scheme of `payload.v1.Search.IDRequest` - ```bash + ```rpc message Search { message IDRequest { string id = 1; @@ -157,28 +161,30 @@ The vector with the same requested ID should be indexed into the `vald-agent` be ``` - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched | - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Response`. - ```bash + ```rpc message Search { message Response { string request_id = 1; @@ -195,16 +201,18 @@ The vector with the same requested ID should be indexed into the `vald-agent` be ``` - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -225,7 +233,7 @@ Each Search request and response are independent. - the scheme of `payload.v1.Search.Request stream` - ```bash + ```rpc message Search { message Request { repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -245,28 +253,30 @@ Each Search request and response are independent. ``` - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.StreamResponse`. - ```bash + ```rpc message Search { message StreamResponse { oneof payload { @@ -290,22 +300,25 @@ Each Search request and response are independent. ``` - Search.StreamResponse - |field|type|label|desc.| - |:---:|:---|:---|:---| - |response|Response| | the search result response | - |status|google.rpc.Status| | the status of google RPC | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :------------------------- | + | response | Response | | the search result response | + | status | google.rpc.Status | | the status of google RPC | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -326,7 +339,7 @@ Each SearchByID request and response are independent. - the scheme of `payload.v1.Search.IDRequest stream` - ```bash + ```rpc message Search { message IDRequest { string id = 1; @@ -346,28 +359,30 @@ Each SearchByID request and response are independent. ``` - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched | - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.StreamResponse`. - ```bash + ```rpc message Search { message StreamResponse { oneof payload { @@ -391,22 +406,25 @@ Each SearchByID request and response are independent. ``` - Search.StreamResponse - |field|type|label|desc.| - |:---:|:---|:---|:---| - |response|Response| | the search result response | - |status|google.rpc.Status| | the status of google RPC | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :------------------------- | + | response | Response | | the search result response | + | status | google.rpc.Status | | the status of google RPC | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -430,7 +448,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Search.MultiRequest` - ```bash + ```rpc message Search { message MultiRequest { repeated Request requests = 1; @@ -454,33 +472,36 @@ Please be careful that the size of the request exceed the limit. ``` - Search.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests| repeated(Array[Request]) | | \* | the search request list | + + | field | type | label | required | desc. | + | :------: | :----------------------- | :---- | :------: | :---------------------- | + | requests | repeated(Array[Request]) | | \* | the search request list | - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Responses`. - ```bash + ```rpc message Search { message Responses { repeated Response responses = 1; @@ -501,21 +522,24 @@ Please be careful that the size of the request exceed the limit. ``` - Search.Responses - |field|type|label|desc.| - |:---:|:---|:---|:---| - |responses| Response | repeated(Array[Response]) | the list of search results response | + + | field | type | label | desc. | + | :-------: | :------- | :------------------------ | :---------------------------------- | + | responses | Response | repeated(Array[Response]) | the list of search results response | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -539,7 +563,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Search.MultiIDRequest stream` - ```bash + ```rpc message Search { message MultiIDRequest { @@ -564,33 +588,36 @@ Please be careful that the size of the request exceed the limit. ``` - Search.MultiIDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|IDRequest| repeated(Array[IDRequest]) | \* | the searchByID request list | + + | field | type | label | required | desc. | + | :------: | :-------- | :------------------------- | :------: | :-------------------------- | + | requests | IDRequest | repeated(Array[IDRequest]) | \* | the searchByID request list | - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched | - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |radius|float| | \* | the search radius | - |epsilon|float| | \* | the search coefficient (default value is `0.1`) | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | radius | float | | \* | the search radius | + | epsilon | float | | \* | the search coefficient (default value is `0.1`) | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Responses`. - ```bash + ```rpc message Search { message Responses { repeated Response responses = 1; @@ -611,21 +638,24 @@ Please be careful that the size of the request exceed the limit. ``` - Search.Responses - |field|type|label|desc.| - |:---:|:---|:---|:---| - |responses| Response | repeated(Array[Response]) | the list of search results response | + + | field | type | label | desc. | + | :-------: | :------- | :------------------------ | :---------------------------------- | + | responses | Response | repeated(Array[Response]) | the list of search results response | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -644,7 +674,7 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec - the scheme of `payload.v1.Search.Request` - ```bash + ```rpc message Search { message Request { repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -662,26 +692,28 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec ``` - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Response`. - ```bash + ```rpc message Search { message Response { string request_id = 1; @@ -698,16 +730,18 @@ LinearSearch RPC is the method to linear search vector(s) similar to request vec ``` - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -728,7 +762,7 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result. - the scheme of `payload.v1.Search.IDRequest` - ```bash + ```rpc message Search { message IDRequest { string id = 1; @@ -746,26 +780,28 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result. ``` - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched | - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Response`. - ```bash + ```rpc message Search { message Response { string request_id = 1; @@ -782,16 +818,18 @@ If the vector doesn't be stored, you will get a `NOT_FOUND` error as a result. ``` - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -812,7 +850,7 @@ Each LinearSearch request and response are independent. - the scheme of `payload.v1.Search.Request stream` - ```bash + ```rpc message Search { message Request { repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -830,26 +868,28 @@ Each LinearSearch request and response are independent. ``` - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.StreamResponse`. - ```bash + ```rpc message Search { message StreamResponse { oneof payload { @@ -873,22 +913,25 @@ Each LinearSearch request and response are independent. ``` - Search.StreamResponse - |field|type|label|desc.| - |:---:|:---|:---|:---| - |response|Response| | the search result response | - |status|google.rpc.Status| | the status of google RPC | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :------------------------- | + | response | Response | | the search result response | + | status | google.rpc.Status | | the status of google RPC | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -909,7 +952,7 @@ Each LinearSearchByID request and response are independent. - the scheme of `payload.v1.Search.IDRequest stream` - ```bash + ```rpc message Search { message IDRequest { string id = 1; @@ -927,26 +970,28 @@ Each LinearSearchByID request and response are independent. ``` - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched | - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.StreamResponse`. - ```bash + ```rpc message Search { message StreamResponse { oneof payload { @@ -970,22 +1015,25 @@ Each LinearSearchByID request and response are independent. ``` - Search.StreamResponse - |field|type|label|desc.| - |:---:|:---|:---|:---| - |response|Response| | the search result response | - |status|google.rpc.Status| | the status of google RPC | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :------------------------- | + | response | Response | | the search result response | + | status | google.rpc.Status | | the status of google RPC | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -1009,7 +1057,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Search.MultiRequest` - ```bash + ```rpc message Search { message MultiRequest { repeated Request requests = 1; @@ -1031,31 +1079,34 @@ Please be careful that the size of the request exceed the limit. ``` - Search.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests| repeated(Array[Request]) | | \* | the search request list | + + | field | type | label | required | desc. | + | :------: | :----------------------- | :---- | :------: | :---------------------- | + | requests | repeated(Array[Request]) | | \* | the search request list | - Search.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------ | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Responses`. - ```bash + ```rpc message Search { message Responses { repeated Response responses = 1; @@ -1076,21 +1127,24 @@ Please be careful that the size of the request exceed the limit. ``` - Search.Responses - |field|type|label|desc.| - |:---:|:---|:---|:---| - |responses| Response | repeated(Array[Response]) | the list of search results response | + + | field | type | label | desc. | + | :-------: | :------- | :------------------------ | :---------------------------------- | + | responses | Response | repeated(Array[Response]) | the list of search results response | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code @@ -1114,7 +1168,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Search.MultiIDRequest stream` - ```bash + ```rpc message Search { message MultiIDRequest { @@ -1137,31 +1191,34 @@ Please be careful that the size of the request exceed the limit. ``` - Search.MultiIDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|IDRequest| repeated(Array[IDRequest]) | \* | the searchByID request list | + + | field | type | label | required | desc. | + | :------: | :-------- | :------------------------- | :------: | :-------------------------- | + | requests | IDRequest | repeated(Array[IDRequest]) | \* | the searchByID request list | - Search.IDRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the vector ID to be searched.| - |config|Config| | \* | the configuration of the search request | + + | field | type | label | required | desc. | + | :----: | :----- | :---- | :------: | :-------------------------------------- | + | id | string | | \* | the vector ID to be searched. | + | config | Config | | \* | the configuration of the search request | - Search.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |request_id|string| | | unique request ID | - |num|uint32| | \* | the maximum number of result to be returned | - |timeout|int64| | | Search timeout in nanoseconds (default value is `5s`) | - |ingress_filters|Filter.Config| | | Ingress Filter configuration | - |egress_filters|Filter.Config| | | Egress Filter configuration | - |min_num| uint32 | | the minimum number of result to be returned | + + | field | type | label | required | desc. | + | :-------------: | :------------ | :---- | :-----------------------------------------: | :---------------------------------------------------- | + | request_id | string | | | unique request ID | + | num | uint32 | | \* | the maximum number of result to be returned | + | timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) | + | ingress_filters | Filter.Config | | | Ingress Filter configuration | + | egress_filters | Filter.Config | | | Egress Filter configuration | + | min_num | uint32 | | the minimum number of result to be returned | ### Output - the scheme of `payload.v1.Search.Responses`. - ```bash + ```rpc message Search { message Responses { repeated Response responses = 1; @@ -1182,21 +1239,24 @@ Please be careful that the size of the request exceed the limit. ``` - Search.Responses - |field|type|label|desc.| - |:---:|:---|:---|:---| - |responses| Response | repeated(Array[Response]) | the list of search results response | + + | field | type | label | desc. | + | :-------: | :------- | :------------------------ | :---------------------------------- | + | responses | Response | repeated(Array[Response]) | the list of search results response | - Search.Response - |field|type|label|desc.| - |:---:|:---|:---|:---| - |request_id|string| | the unique request ID | - |results|Object.Distance| repeated(Array[Object.Distance]) | search results | + + | field | type | label | desc. | + | :--------: | :-------------- | :------------------------------- | :-------------------- | + | request_id | string | | the unique request ID | + | results | Object.Distance | repeated(Array[Object.Distance]) | search results | - Object.Distance - |field|type|label|desc.| - |:---:|:---|:---|:---| - |id|string| | the vector ID | - |distance|float| | the distance between result vector and request vector | + + | field | type | label | desc. | + | :------: | :----- | :---- | :---------------------------------------------------- | + | id | string | | the vector ID | + | distance | float | | the distance between result vector and request vector | ### Status Code diff --git a/docs/api/status.md b/docs/api/status.md new file mode 100644 index 0000000000..a0ef403661 --- /dev/null +++ b/docs/api/status.md @@ -0,0 +1,113 @@ +# Response Status Code + +This page describes each status code from the API response. + +## Status Codes + +This table shows the main status code and its name using Vald. +The sections below describe the meaning of each code and why API returns. + +| code | name | +| :--: | :---------------------------------------- | +| 0 | [OK](#OK) | +| 3 | [INVALID_ARGUMENT](#INVALID_ARGUMENT) | +| 4 | [DEADLINE_EXCEEDED](#DEADLINE_EXCEEDED) | +| 5 | [NOT_FOUND](#NOT_FOUND) | +| 6 | [ALREADY_EXISTS](#ALREADY_EXISTS) | +| 8 | [RESOURCE_EXHAUSTED](#RESOURCE_EXHAUSTED) | +| 13 | [INTERNAL](#INTERNAL) | +| 14 | [UNAVAILABLE](#UNAVAILABLE) | + +## OK + +`OK` means complete process with success. + +Services that return this code are all services. + +## INVALID_ARGUMENT + +`INVALID_ARGUMENT` means something wrong in the request argument. + +Services that return status are all services. +If you get this code, please verify your request payload is correct. + +## DEADLINE_EXCEEDED + +`DEADLINE_EXCEEDED` returns when the process ends due to timeout. + +Services that return status are: + +- [Object Service(only Exists RPC)](../api/object.md#Exists-RPC) +- [Insert Service](../api/insert.md) +- [Remove Service](../api/insert.md) +- [Search Service](../api/search.md) + +The timeout configuration is on the Vald cluster side. +If it appears constantly, you need to review the cluster settings. +However, only when using a search service can you overwrite the timeout configuration by lengthening the time setting in the search request config. + +## NOT_FOUND + +`NOT_FOUND` appears when there is no result corresponding to the request. + +The example cases are: + +- No search result when using SearchById RPC. +- No index data corresponding to the request vector when using Update/Exists/GetObject RPC + +Services that return status are: + +- [Object Service](../api/object.md) +- [Update Service](../api/update.md) +- [Remove Service](../api/insert.md) +- [Search Service](../api/search.md) + +The possible reasons are: + +- There is no index data in Vald Agent components or running the indexing process in the Vald Agent components. + When the Vald Agent component runs the indexing process (createIndex/saveIndex), any process won't run, and it will return with no result. +- The request query vector or ID is wrong when using the search/update/remove service. + Notably, both update service and remove service require the ID of vector Vald Agent component already indexed. + +## ALREADY_EXISTS + +`ALREADY_EXISTS` means that the Vald Agent component already stores the vector index same as the query vector when set `skip_strict_exist_check` as `true` in request config. + +Services that return status are: + +- [Insert Service](../api/insert.md) +- [Update Service](../api/update.md) + +You have to change the query vector with `skip_strict_exist_check` as `true` or set `skip_strict_exist_check` as `false` instead of changing the query vector. + +## RESOURCE_EXHAUSTED + +`RESOURCE_EXHAUSTED` means the some resources has been exhausted. + +It appears when: + +- There is out-of-memory in gRPC payload, or networks, or etc. +- There are some server overload situations. +- The sent or received message is larger than the configured limit (default is 4 MB). + +Services that return status are all services. +The most case in the Vald is that the query vector is too large. +In other words, the vector dimension size in configuration is too large. + +## INTERNAL + +`INTERNAL` appears when some wrong happens in the Vald cluster. +It is there is the serious problems about the Vald cluster. + +Services that return status are all services. +If you get it, please verify the state of the Vald cluster. + +
+If the internal server error appears, it should be care and research about logs metrics. +
+ +## UNAVAILABLE + +`UNAVAILABLE` means the gRPC message cannot reach the Vald cluster. + +It would be best to verify whether the Vald cluster is running and the host and port are correct. diff --git a/docs/api/update.md b/docs/api/update.md index 5c94d180e1..46f7ab1adc 100644 --- a/docs/api/update.md +++ b/docs/api/update.md @@ -4,7 +4,7 @@ Update Service is responsible for updating vectors which are already inserted in the `vald-agent` components. -```bash +```rpc service Update { rpc Update(payload.v1.Update.Request) returns (payload.v1.Object.Location) {} @@ -22,7 +22,7 @@ Update RPC is the method to update a single vector. - the scheme of `payload.v1.Update.Request` - ```bash + ```rpc message Update { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -45,29 +45,32 @@ Update RPC is the method to update a single vector. ``` - Update.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the update request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the update request | - Update.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Location` - ```bash + ```rpc message Object { message Location { string name = 1; @@ -78,11 +81,12 @@ Update RPC is the method to update a single vector. ``` - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated. | - |uuid|string| | the ID of the updated vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated. | + | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated. | ### Status Code @@ -90,6 +94,7 @@ Update RPC is the method to update a single vector. | :--: | :--------------- | | 0 | OK | | 3 | INVALID_ARGUMENT | +| 5 | NOT_FOUND | | 6 | ALREADY_EXISTS | | 13 | INTERNAL | @@ -104,7 +109,7 @@ It's the recommended method to update the large amount of vectors. - the scheme of `payload.v1.Update.Request stream` - ```bash + ```rpc message Update { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -126,29 +131,32 @@ It's the recommended method to update the large amount of vectors. ``` - Update.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the update request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the update request | - Update.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of the vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :--------------------------------------------------------------- | + | id | string | | \* | the ID of the vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.StreamLocation` - ```bash + ```rpc message Object { message StreamLocation { oneof payload { @@ -166,24 +174,27 @@ It's the recommended method to update the large amount of vectors. ``` - Object.StreamLocation - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| | the information of Object.Location data. | - |status|google.rpc.Status| | the status of google RPC. | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :--------------------------------------- | + | location | Object.Location | | the information of Object.Location data. | + | status | google.rpc.Status | | the status of google RPC. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated. | - |uuid|string| | the ID of the exists vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :--------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated. | + | uuid | string | | the ID of the exists vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is inserted. | - [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) - |field|type|label|desc.| - |:---:|:---|:---|:---| - |code|int32| | status code (code list is next section)| - |message|string| | error message | - |details|google.protobuf.Any| repeated(Array[any]) | the details error message list| + + | field | type | label | desc. | + | :-----: | :------------------ | :------------------- | :-------------------------------------- | + | code | int32 | | status code (code list is next section) | + | message | string | | error message | + | details | google.protobuf.Any | repeated(Array[any]) | the details error message list | ### Status Code @@ -191,6 +202,7 @@ It's the recommended method to update the large amount of vectors. | :--: | :--------------- | | 0 | OK | | 3 | INVALID_ARGUMENT | +| 5 | NOT_FOUND | | 6 | ALREADY_EXISTS | | 13 | INTERNAL | @@ -207,7 +219,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Update.MultiRequest` - ```bash + ```rpc message Update { message MultiRequest { repeated Request requests = 1; } @@ -232,34 +244,38 @@ Please be careful that the size of the request exceed the limit. ``` - Update.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|Insert.Request| repeated(Array[Insert.Request]) | \* | the request list | + + | field | type | label | required | desc. | + | :------: | :------------- | :------------------------------ | :------: | :--------------- | + | requests | Insert.Request | repeated(Array[Insert.Request]) | \* | the request list | - Update.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the update request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the update request | - Update.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Locations`. - ```bash + ```rpc message Object { message Locations { repeated Location locations = 1; } @@ -272,16 +288,18 @@ Please be careful that the size of the request exceed the limit. ``` - Object.Locations - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location`. | + + | field | type | label | desc. | + | :------: | :-------------- | :------------------------------- | :----------------------------- | + | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location`. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated. | - |uuid|string| | the ID of the updated vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the ip list of `vald-agent` pods where the request vector is updated. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :-------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated. | + | uuid | string | | the ID of the updated vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the ip list of `vald-agent` pods where the request vector is updated. | ### Status Code @@ -289,5 +307,6 @@ Please be careful that the size of the request exceed the limit. | :--: | :--------------- | | 0 | OK | | 3 | INVALID_ARGUMENT | +| 5 | NOT_FOUND | | 6 | ALREADY_EXISTS | | 13 | INTERNAL | diff --git a/docs/api/upsert.md b/docs/api/upsert.md index 4941574a12..99855c529e 100644 --- a/docs/api/upsert.md +++ b/docs/api/upsert.md @@ -4,7 +4,7 @@ Upsert Service is responsible for updating existing vectors in the `vald-agent` or inserting new vectors into the `vald-agent` if the vector is not exists. -```bash +```rpc service Upsert { rpc Upsert(payload.v1.Upsert.Request) @@ -26,7 +26,7 @@ Upsert RPC is the method to update a single vector and add a new single vector. - the scheme of `payload.v1.Upsert.Request` - ```bash + ```rpc message Upsert { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -49,29 +49,32 @@ Upsert RPC is the method to update a single vector and add a new single vector. ``` - Upsert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the upsert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the upsert request | - Upsert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Location` - ```bash + ```rpc message Object { message Location { string name = 1; @@ -82,11 +85,12 @@ Upsert RPC is the method to update a single vector and add a new single vector. ``` - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated/inserted. | - |uuid|string| | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :----------------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated/inserted. | + | uuid | string | | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | ### Status Code @@ -108,7 +112,7 @@ It's the recommended method to upsert the large amount of vectors. - the scheme of `payload.v1.Upsert.Request stream` - ```bash + ```rpc message Upsert { message Request { Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; @@ -130,29 +134,32 @@ It's the recommended method to upsert the large amount of vectors. ``` - Upsert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the upsert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the upsert request | - Upsert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :--------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of the vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :--------------------------------------------------------------- | + | id | string | | \* | the ID of the vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.StreamLocation` - ```bash + ```rpc message Object { message StreamLocation { oneof payload { @@ -170,24 +177,27 @@ It's the recommended method to upsert the large amount of vectors. ``` - Object.StreamLocation - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| | the information of Object.Location data. | - |status|google.rpc.Status| | the status of google RPC. | + + | field | type | label | desc. | + | :------: | :---------------- | :---- | :--------------------------------------- | + | location | Object.Location | | the information of Object.Location data. | + | status | google.rpc.Status | | the status of google RPC. | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated/inserted. | - |uuid|string| | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :----------------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated/inserted. | + | uuid | string | | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | - [google.rpc.Status](https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto) - |field|type|label|desc.| - |:---:|:---|:---|:---| - |code|int32| | status code (code list is next section)| - |message|string| | error message | - |details|google.protobuf.Any| repeated(Array[any]) | the details error message list| + + | field | type | label | desc. | + | :-----: | :------------------ | :------------------- | :-------------------------------------- | + | code | int32 | | status code (code list is next section) | + | message | string | | error message | + | details | google.protobuf.Any | repeated(Array[any]) | the details error message list | ### Status Code @@ -211,7 +221,7 @@ Please be careful that the size of the request exceed the limit. - the scheme of `payload.v1.Upsert.MultiRequest` - ```bash + ```rpc message Upsert { message MultiRequest { repeated Request requests = 1; } @@ -236,34 +246,38 @@ Please be careful that the size of the request exceed the limit. ``` - Upsert.MultiRequest - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |requests|Upsert.Request| repeated(Array[Insert.Request]) | \* | the request list | + + | field | type | label | required | desc. | + | :------: | :------------- | :------------------------------ | :------: | :--------------- | + | requests | Upsert.Request | repeated(Array[Insert.Request]) | \* | the request list | - Upsert.Request - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |vector|Object.Vector| | \* | the information of vector | - |config|Config| | \* | the configuration of the upsert request | + + | field | type | label | required | desc. | + | :----: | :------------ | :---- | :------: | :-------------------------------------- | + | vector | Object.Vector | | \* | the information of vector | + | config | Config | | \* | the configuration of the upsert request | - Upsert.Config - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |skip_strict_exist_check|bool| | | check the same vector is already updated/inserted or not.
the ID should be unique if the value is `true`. | - |timestamp|int64| | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | - |filters|Filter.Config| | | configuration for filter | + + | field | type | label | required | desc. | + | :---------------------: | :------------ | :---- | :------: | :----------------------------------------------------------------------------------------------------------- | + | skip_strict_exist_check | bool | | | check the same vector is already updated/inserted or not.
the ID should be unique if the value is `true`. | + | timestamp | int64 | | | the timestamp of the vector updated/inserted.
if it is N/A, the current time will be used. | + | filters | Filter.Config | | | configuration for filter | - Object.Vector - |field|type|label|required|desc.| - |:---:|:---|:---|:---:|:---| - |id|string| | \* | the ID of a vector. ID should consist of 1 or more characters. | - |vector|float| repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536.| + + | field | type | label | required | desc. | + | :----: | :----- | :--------------------- | :------: | :------------------------------------------------------------- | + | id | string | | \* | the ID of a vector. ID should consist of 1 or more characters. | + | vector | float | repeated(Array[float]) | \* | the vector data. its dimension is between 2 and 65,536. | ### Output - the scheme of `payload.v1.Object.Locations`. - ```bash + ```rpc message Object { message Locations { repeated Location locations = 1; } @@ -276,16 +290,18 @@ Please be careful that the size of the request exceed the limit. ``` - Object.Locations - |field|type|label|desc.| - |:---:|:---|:---|:---| - |location|Object.Location| repeated(Array[Object.Location]) | the list of `Object.Location` | + + | field | type | label | desc. | + | :------: | :-------------- | :------------------------------- | :---------------------------- | + | location | Object.Location | repeated(Array[Object.Location]) | the list of `Object.Location` | - Object.Location - |field|type|label|desc.| - |:---:|:---|:---|:---| - |name|string| | the name of vald agent pod where the request vector is updated/inserted. | - |uuid|string| | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | - |ips|string| repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | + + | field | type | label | desc. | + | :---: | :----- | :---------------------- | :----------------------------------------------------------------------------- | + | name | string | | the name of vald agent pod where the request vector is updated/inserted. | + | uuid | string | | the ID of the updated/inserted vector. It is the same as an `Object.Vector`. | + | ips | string | repeated(Array[string]) | the IP list of `vald-agent` pods where the request vector is updated/inserted. | ### Status Code