Resource Group Operations
Resource group APIs manage query-node resource groups and move nodes or loaded replicas between groups. These APIs are primarily useful for Milvus cluster deployments.
createResourceGroup
Section titled “createResourceGroup”Create a resource group.
createResourceGroup(data: CreateResourceGroupReq): Promise<ResStatus>Parameters:
resource_group: Resource group name.config?: Resource group configuration.timeout?: Request timeout in milliseconds.
type ResourceGroupConfig = { requests?: { node_num: number }; limits?: { node_num: number }; transfer_from?: { resource_group: string }[]; transfer_to?: { resource_group: string }[]; node_filter?: { node_labels: KeyValuePair[] };};Example:
await client.createResourceGroup({ resource_group: 'rg_search', config: { requests: { node_num: 2 }, limits: { node_num: 4 }, },});listResourceGroups
Section titled “listResourceGroups”List resource group names.
listResourceGroups(data?: GrpcTimeOut): Promise<ListResourceGroupsResponse>Response:
status: Response status.resource_groups: Resource group names.
Example:
const groups = await client.listResourceGroups();console.log(groups.resource_groups);describeResourceGroup
Section titled “describeResourceGroup”Describe one resource group.
describeResourceGroup(data: DescribeResourceGroupsReq): Promise<DescribeResourceGroupResponse>Parameters:
resource_group: Resource group name.timeout?: Request timeout in milliseconds.
Response:
type ResourceGroup = { name: string; capacity: number; num_available_node: number; num_loaded_replica: { [collectionName: string]: number }; num_outgoing_node: { [collectionName: string]: number }; num_incoming_node: { [collectionName: string]: number }; config?: ResourceGroupConfig; nodes?: { node_id: number; address: string; hostname: string; }[];};Example:
const group = await client.describeResourceGroup({ resource_group: 'rg_search',});updateResourceGroups
Section titled “updateResourceGroups”Update multiple resource group configurations in one request.
updateResourceGroups(data: UpdateRresourceGroupReq): Promise<ResStatus>Parameters:
resource_groups: Map from resource group name toResourceGroupConfig.timeout?: Request timeout in milliseconds.
Example:
await client.updateResourceGroups({ resource_groups: { rg_search: { requests: { node_num: 2 }, limits: { node_num: 4 }, }, },});transferNode
Section titled “transferNode”Transfer query nodes between resource groups.
transferNode(data: TransferNodeReq): Promise<ResStatus>Parameters:
source_resource_group: Source resource group.target_resource_group: Target resource group.num_node: Number of nodes to transfer.timeout?: Request timeout in milliseconds.
Example:
await client.transferNode({ source_resource_group: 'rg_default', target_resource_group: 'rg_search', num_node: 1,});transferReplica
Section titled “transferReplica”Transfer loaded replicas for a collection between resource groups.
transferReplica(data: TransferReplicaReq): Promise<ResStatus>Parameters:
collection_name: Collection name.source_resource_group: Source resource group.target_resource_group: Target resource group.num_replica: Number of replicas to transfer.db_name?: Database name.timeout?: Request timeout in milliseconds.
Example:
await client.transferReplica({ collection_name: 'books', source_resource_group: 'rg_default', target_resource_group: 'rg_search', num_replica: 1,});dropResourceGroup
Section titled “dropResourceGroup”Drop a resource group.
dropResourceGroup(data: DropResourceGroupsReq): Promise<ResStatus>Parameters:
resource_group: Resource group name.timeout?: Request timeout in milliseconds.
Example:
await client.dropResourceGroup({ resource_group: 'rg_search' });dropAllResourceGroups
Section titled “dropAllResourceGroups”Drop all non-default resource groups after transferring nodes back to the default resource group.
dropAllResourceGroups(): Promise<ResStatus[]>Use this only in cleanup scripts or test environments.