Cloud management platform-based vector processing method and apparatus

By utilizing the vector query method of the cloud management platform and matching partition identifiers and cluster similarity, the vector query task is optimized, solving the problem of low query efficiency in vector databases and achieving efficient and accurate querying and load balancing.

WO2025260740A1PCT designated stage Publication Date: 2025-12-26HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/073120
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-29
Filing Date
2025-01-17
Publication Date
2025-12-26

AI Technical Summary

Technical Problem

Vector databases have low query efficiency between nodes, resulting in long query times, a problem that existing technologies have not been able to effectively solve.

Method used

By receiving vector query requests through the cloud management platform, and using partition identifiers and cluster similarity matching, the number of vectors that computing nodes need to query is reduced. By adopting load balancing and fault node backup mechanisms, the query task allocation and merging/splitting strategies are optimized to improve query efficiency.

Benefits of technology

It improves the efficiency and accuracy of vector queries, reduces the waste of computing resources, lowers query latency, and achieves load balancing and fault tolerance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025073120_26122025_PF_FP_ABST
    Figure CN2025073120_26122025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of cloud computing, and discloses a cloud management platform-based vector processing method and apparatus. A cloud management platform reduces, by means of a first partition identifier carried by a vector query request, the number of vectors to be queried by a computing node to the number of vectors comprised in N clusters corresponding to the first partition identifier. Further, the cloud management platform determines a first cluster from among the N clusters by means of a first vector carried by the vector query request, and further reduces the number of vectors to be queried by the computing node to the number of vectors comprised in the first cluster. The cloud management platform sends, to the computing node, a first vector query task that is used for instructing to query vector groups comprised in the first cluster so as to obtain a second vector matching the first vector. The cloud management platform reduces, in the form of a combination of the first partition identifier and the first vector, the number of vectors to be queried by the computing node to the number of vectors comprised in the first cluster, thereby reducing the number of vectors to be traversed by the computing node, further reducing the time required for traversal, and improving the efficiency of querying vectors.
Need to check novelty before this filing date? Find Prior Art

Description

Vector processing method and device based on cloud management platform

[0001] The present application claims priority to the Chinese Patent Application No. 202410784832.0, filed on June 17, 2024, and entitled "Data query method and device", and to the Chinese Patent Application No. 202411203439.4, filed on August 29, 2024, and entitled "Vector processing method and device based on cloud management platform", the contents of which are incorporated herein by reference in their entirety. TECHNICAL FIELD

[0002] The present application relates to the technical field of cloud computing, and in particular to a vector processing method and device based on a cloud management platform. BACKGROUND

[0003] A vector database is a database system for storing and querying high-dimensional vector data. The vector database can query the most similar vector data through similarity matching between vector data. The vector database stores the vector data in a distributed manner on multiple nodes, and then distributes the query task to the multiple nodes for parallel query, and finally aggregates the query results. However, each node needs to manage a large number of discrete vector data, and the node needs to query from a large number of discrete vector data, resulting in low query efficiency of the vector. SUMMARY

[0004] The present application provides a vector processing method and device based on a cloud management platform to solve the problem of low query efficiency of the vector due to the node needing to query from a large number of discrete vectors.

[0005] In a first aspect, the present application provides a vector processing method based on a cloud management platform. The vector processing method based on the cloud management platform can be applied to a computer system or to a computing device supporting the computer system to implement the vector processing method based on the cloud management platform. The computing device can be a server, a terminal, or the like. In one possible example, the vector processing method based on the cloud management platform is applied to a cloud management platform (also referred to as a management node), which is used to manage the infrastructure of a cloud service. The infrastructure includes a plurality of computing nodes, and the plurality of computing nodes store H vector groups of a tenant, the H vector groups belong to M clusters, M is less than H, each cluster is obtained from a vector cluster included in the H vector groups, and the M clusters are divided into G partitions based on the types of the vectors included in the H vector groups, each partition has a partition identifier, the partition identifier is a scalar, and G is less than M. The cloud management platform further includes a view, which is used to record the association relationship between each computing node and at least one vector group stored by each computing node. The following takes the cloud management platform as an example to implement the content of the present aspect. The vector processing method based on the cloud management platform includes: the cloud management platform receives a vector query request carrying a first vector and a first partition identifier of a partition where the first vector is located from a tenant, and then determines that the partition corresponding to the first partition identifier includes N clusters. The cloud management platform determines a first cluster with the highest similarity to the first vector from the N clusters according to the similarity between the first vector and the N clusters, and then determines one or more computing nodes storing a vector group including the vector cluster according to the view. The cloud management platform sends a first vector query task to the one or more computing nodes. The partition where the first vector is located is one of the G partitions, N is a positive integer greater than or equal to 1, N is less than M, and the first vector query task is used to instruct the one or more computing nodes to obtain a second vector matching the first vector from the vector group including the first cluster.

[0006] In the present application, the cloud management platform reduces the vector to be queried by the computing node to the vector included in the N clusters corresponding to the first partition identifier carried by the vector query request. Further, the cloud management platform determines the first cluster from the N clusters by the first vector carried by the vector query request, and then reduces the vector to be queried by the computing node to the vector included in the first cluster. The cloud management platform reduces the vector to be queried by the computing node to the vector included in the first cluster by the first partition identifier plus the first vector, reduces the number of vectors to be traversed by the computing node, and then reduces the time required for traversal, thereby improving the query efficiency of the vector. In addition, since the partition identifier is a scalar, the cloud management platform can quickly determine the N clusters included in the partition corresponding to the first partition identifier, thereby further improving the query efficiency of the vector.

[0007] In a possible scenario, the vectors included in the vector group are used to represent one or more of the following: text, image, string, identifier, audio, and video.

[0008] In a possible scenario, the plurality of computing nodes can store multiple copies of the same vector group, in other words, the plurality of computing nodes also store a backup of each vector group.

[0009] In a possible scenario, the second vector includes vectors corresponding to the P highest similarities between the vectors included in the first cluster and the first vector in descending order.

[0010] In a possible implementation, the cloud management platform determines the first cluster with the highest similarity to the first vector from the N clusters according to the similarities between the first vector and the N cluster centers, and the method includes: the cloud management platform determines the first cluster with the highest similarity to the first vector from the N clusters according to the similarities between the first vector and the N cluster centers.

[0011] In the present application, since the cluster center of a cluster can accurately represent the characteristics of the cluster, the similarity between the cluster center of the cluster and the first vector can accurately indicate the similarity between the cluster and the first vector, thereby improving the accuracy of determining the first cluster, that is, improving the accuracy of the obtained second vector.

[0012] In a possible implementation, the cloud management platform sends the first vector query task to one or more computing nodes, and the method includes: the cloud management platform determines one or more computing nodes from the plurality of computing nodes according to a load balancing algorithm based on the vector query request and state information of the plurality of computing nodes, and sends the first vector query task to the one or more computing nodes. The difference between the data amounts of the vector groups queried by each computing node in the one or more computing nodes is less than or equal to a first threshold.

[0013] In the present application, since the difference between the data amounts of the vector groups queried by each computing node in the one or more computing nodes is less than or equal to the first threshold, the difference in hardware resources (computing resources, storage resources, network resources) required by each computing node to execute the query task is within a set threshold, in other words, each computing node is load balanced when executing the query task, thereby improving the overall query efficiency of the plurality of computing nodes for the vector.

[0014] In a possible scenario, the state information can be the occupancy rate of a processor, the occupancy rate of a storage space (such as the occupancy rate of a memory or the occupancy rate of a disk), the occupancy rate of a network bandwidth, and the like.

[0015] In a possible scenario, the order in which the one or more computing nodes perform the query task satisfies a directed acyclic graph, the directed acyclic graph being used to indicate a dependency relationship between the plurality of query requests.

[0016] The dependency relationship can represent a service execution logic between the plurality of query requests.

[0017] In a possible implementation, after the cloud management platform sends the first vector query task to the one or more computing nodes, the method further includes: the cloud management platform sending a vector acquisition request to the one or more computing nodes, and receiving a third vector sent by the one or more computing nodes. The third vector is obtained by the one or more computing nodes in response to the vector acquisition request, and a similarity between the third vector and the first vector is less than or equal to a similarity between the second vector and the first vector.

[0018] In the present application, since the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector, and the third vector is obtained by the one or more computing nodes in response to the vector acquisition request, the third vector is a local optimal solution obtained by the one or more computing nodes according to the vector acquisition request, and the third vector can be obtained while satisfying a query delay, so that the query delay is controllable.

[0019] In a possible implementation, the method further includes: the cloud management platform receiving a vector write request carrying a fourth vector and a second partition identifier of a partition where the fourth vector is located from a tenant, and determining I cluster clusters included in a partition corresponding to the second partition identifier. The cloud management platform determines a second cluster cluster with the highest similarity to the fourth vector from the I cluster clusters according to a similarity between the fourth vector and the I cluster clusters, and determines A computing nodes storing a vector group included in the second cluster cluster according to a view, and sends a vector write task to at least one of the A computing nodes. The partition where the fourth vector is located is one of G partitions, I is an integer greater than or equal to 1, I is less than M, the vector write task is used to indicate that the fourth vector is written to at least one of the A computing nodes, and A is an integer greater than or equal to 1.

[0020] In the present application, the cloud management platform accurately locates the second cluster to which the fourth vector belongs by the form of the fourth vector plus the second partition identifier, and then instructs at least one of the A computing nodes storing the vector group included in the second cluster to store the fourth vector. The similarity between the fourth vector and other vectors in the aforementioned vector group is greater than the similarity between the vectors included in the other clusters except the second cluster and the fourth vector, and then the vectors stored in each vector group are all matching vectors. Therefore, when the computing node obtains the second vector matching the first vector from the vector group, the calculation amount can be reduced, thereby improving the query efficiency of the vector.

[0021] In a possible implementation, the method further includes: the cloud management platform determines a fault node in the plurality of computing nodes, and the fault node stores the first vector group. Then, the cloud management platform determines the first computing node storing the backup of the first vector group according to the view, and sends the second vector query task to the first computing node. The first cluster includes the first vector group, and the second vector query task is used to instruct the first computing node to obtain the second vector matching the first vector from the backup of the first vector group stored in the first computing node.

[0022] Compared with the failure of one of the one or more computing nodes, which causes the entire one or more computing nodes to re-execute the first vector query task, resulting in resource waste of the one or more computing nodes and large query delay, in the present application, the cloud management platform determines the first computing node storing the backup of the first vector group according to the first vector group queried by the fault node. Then, the cloud management platform only needs to issue the second vector query task for querying the backup of the first vector group to the first computing node, so as to realize re-querying only part of the vectors (the first vector group) queried by the fault node, reduce the number of vectors included in the re-querying vector group, and then reduce the waste of computing node resources, and the number of re-querying vectors is reduced, thereby improving the query efficiency of the vector.

[0023] In a possible implementation, the H vector groups include a second vector group and a third vector group. The method further includes: the cloud management platform determines that the sum of the number of vectors included in the second vector group and the number of vectors included in the third vector group is less than or equal to a second threshold value, and then determines the second computing node storing the fourth vector group or the fifth vector group according to the view, and sends the first vector merging instruction to the second computing node. The first vector merging instruction is used to instruct the second computing node to merge the second vector group and the third vector group.

[0024] In the present application, the cloud management platform instructs the second computing node to combine the second vector group and the third vector group to obtain a new vector group, thereby avoiding the problem that the second vector group and the third vector group in the second computing node are relatively discrete, the second vector group and the third vector group are queried by different computing nodes, that is, one computing node queries a relatively discrete vector group, and the query efficiency is relatively low, and the efficiency of the computing nodes in executing vector query as a whole is improved.

[0025] In a possible implementation, the H vector groups include a fourth vector group and a fifth vector group, and the fourth vector group and the fifth vector group belong to the third cluster. The method further includes: determining, by the cloud management platform, that the sum of the number of vectors included in the fourth vector group and the number of vectors included in the fifth vector group is greater than or equal to the third threshold, and then determining, according to the view, a third computing node that stores the fourth vector group or the fifth vector group, and sending, to the third computing node, a vector splitting instruction. The vector splitting instruction is used to instruct the third computing node to split the third cluster.

[0026] In the present application, the cloud management platform instructs the third computing node to split the cluster including the number of vectors greater than or equal to the third threshold, thereby reducing the number of vectors included in the cluster that needs to be queried by the computing node, reducing the time required by the computing node to query the vectors included in the cluster, and improving the query efficiency of the vectors.

[0027] In a possible implementation, the H vector groups include a sixth vector group and a seventh vector group, and the sixth vector group and the seventh vector group belong to different clusters. The method further includes: determining, by the cloud management platform, that the sum of the number of vectors included in the sixth vector group and the number of vectors included in the seventh vector group is less than the third threshold, and then determining, according to the view, a fourth computing node that stores the sixth vector group or the seventh vector group, and sending, to the fourth computing node, a second vector merging instruction. The second vector merging instruction is used to instruct to merge the cluster in which the sixth vector group is located and the cluster in which the seventh vector group is located.

[0028] In the present application, the cloud management platform instructs the fourth computing node to merge the cluster in which the sixth vector group is located and the cluster in which the seventh vector group is located, thereby reducing the amount of calculation of the cloud management platform in calculating the similarity between the cluster and the first vector, and improving the query efficiency of the vectors.

[0029] In a possible implementation, the second vector includes a plurality of vectors, and after the cloud management platform sends the first vector query task to one or more computing nodes, the method further includes: determining, by the cloud management platform, a fifth vector from the second vector, and then outputting the fifth vector. The fifth vector includes: vectors corresponding to the first Y similarities in descending order of similarity between the vectors and the first vector.

[0030] In a second aspect, the present application provides a vector processing apparatus based on a cloud management platform. The vector processing apparatus based on the cloud management platform is applied to a computer system or a computing device supporting the computer system to implement the vector processing apparatus based on the cloud management platform. The vector processing apparatus based on the cloud management platform comprises various modules for executing the vector processing method based on the cloud management platform in the first aspect or any optional implementation manner of the first aspect. In one possible example, the vector processing based on the cloud management platform is applied to a cloud management platform for managing infrastructure of cloud services. The infrastructure comprises a plurality of computing nodes storing H vector groups of tenants, the H vector groups belong to M cluster groups, M is less than H, each cluster group is obtained by clustering vectors included in the H vector groups, and the M cluster groups are divided into G partitions based on types of the vectors included in the H vector groups, each partition has a partition identifier, the partition identifier is a scalar, and G is less than M. The cloud management platform further comprises a view for recording an association relationship between each computing node and at least one vector group stored by each computing node. The vector processing apparatus based on the cloud management platform comprises a receiving module, a first determining module, a second determining module, a third determining module, and a sending module.

[0031] The receiving module is configured to receive a vector query request from a tenant, the vector query request carrying a first vector and a first partition identifier of a partition where the first vector is located, the partition where the first vector is located being one of the G partitions.

[0032] The first determining module is configured to determine N cluster groups included in the partition corresponding to the first partition identifier, where N is a positive integer greater than or equal to 1, and N is less than M.

[0033] The second determining module is configured to determine, from the N cluster groups, a first cluster group having the highest similarity to the first vector according to a similarity between the first vector and the N cluster groups.

[0034] The third determining module is configured to determine, according to the view, one or more computing nodes storing a vector group including the vectors of the first cluster group.

[0035] The sending module is configured to send a first vector query task to the one or more computing nodes, the first vector query task being used to instruct the one or more computing nodes to obtain a second vector matching the first vector from the vector group including the vectors of the first cluster group.

[0036] For more detailed implementation of the vector processing apparatus based on the cloud management platform, refer to the description of any implementation manner of the first aspect above and the content of the following specific embodiments, which will not be repeated here.

[0037] In a third aspect, the present application provides a chip, comprising: a processor and a power supply circuit; the power supply circuit is configured to supply power for the processor, and the processor is configured to execute the method in the first aspect or any possible implementation manner of the first aspect.

[0038] In a fourth aspect, the present application provides a computing device cluster. The computing device cluster comprises at least one computing device, and the computing device comprises a memory and a processor, wherein the memory is configured to store computer instructions, and the processor is configured to execute the computer instructions to implement the method in the first aspect or any possible implementation manner of the first aspect.

[0039] In a fifth aspect, the present application provides a computer readable storage medium, wherein the storage medium stores computer programs or instructions, and when the computer programs or instructions are executed by a processing device, the method in the first aspect or any possible implementation manner of the first aspect is implemented.

[0040] In a sixth aspect, the present application provides a computer program product, wherein the computer program product comprises computer programs or instructions, and when the computer programs or instructions are executed by a processing device, the method in the first aspect or any possible implementation manner of the first aspect is implemented.

[0041] The beneficial effects of the second aspect to the sixth aspect can refer to the first aspect or any possible implementation manner of the first aspect, and will not be repeated here. On the basis of the implementation manners provided in the above aspects, the present application can be further combined to provide more implementation manners. BRIEF DESCRIPTION OF DRAWINGS

[0042] FIG. 1a is a schematic diagram of a computer system provided by the present application;

[0043] FIG. 1b is a schematic diagram of vector group storage provided by the present application;

[0044] FIG. 2 is a flowchart of a vector processing method based on a cloud management platform provided by the present application;

[0045] FIG. 3 is a schematic diagram of a cluster provided by the present application;

[0046] FIG. 4 is a schematic diagram of vector storage provided by the present application;

[0047] FIG. 5 is a flowchart of a vector processing method based on a cloud management platform provided by the present application;

[0048] FIG. 6 is a flowchart of a vector writing method provided by the present application;

[0049] FIG. 7 is a flowchart of a vector processing method based on a cloud management platform provided by the present application;

[0050] FIG. 8a is a vector combination and schematic diagram provided by the present application;

[0051] FIG. 8b is a cluster splitting schematic diagram provided by the present application;

[0052] FIG. 8c is a cluster merging schematic diagram provided by the present application;

[0053] FIG. 9 is a structural schematic diagram of a vector processing device based on a cloud management platform provided by the present application;

[0054] FIG. 10 is a structural schematic diagram of a vector processing device based on a cloud management platform provided by the present application;

[0055] FIG. 11 is a structural schematic diagram of a computing device provided by the present application;

[0056] FIG. 12 is a structural schematic diagram of a computing device cluster provided by the present application;

[0057] FIG. 13 is a connection schematic diagram between computing devices provided by the present application. DETAILED DESCRIPTION

[0058] To solve the problem that the computing node needs to query from a large number of discrete vectors, resulting in low query efficiency of the vector. The present application provides a vector processing method based on a cloud management platform. The cloud management platform receives a vector query request from a tenant, the vector query request carrying a first vector and a first partition identifier of a partition where the first vector is located, and then determines that the partition corresponding to the first partition identifier includes N cluster clusters. The cloud management platform determines the first cluster cluster with the highest similarity to the first vector from the N cluster clusters according to the similarity between the first vector and the N cluster clusters, and then determines one or more computing nodes storing a vector group including the first cluster cluster according to the view. The cloud management platform sends a first vector query task to the one or more computing nodes. Wherein, the partition where the first vector is located is one of the above-mentioned G partitions, N is a positive integer greater than or equal to 1, N is less than M, and the first vector query task is used to instruct the one or more computing nodes to obtain a second vector matching the first vector from the vector group included in the first cluster cluster.

[0059] In the present application, the cloud management platform reduces the vector to be queried by the computing node to the vector included in the N cluster clusters corresponding to the first partition identifier carried by the vector query request; further, the cloud management platform determines the first cluster cluster from the N cluster clusters through the first vector carried by the vector query request, and then reduces the vector to be queried by the computing node to the vector included in the first cluster cluster. The cloud management platform reduces the vector to be queried by the computing node to the vector included in the first cluster cluster through the first partition identifier plus the first vector, reduces the number of vectors to be traversed by the computing node, and then reduces the time required for traversal, thereby improving the query efficiency of the vector.

[0060] In order to facilitate understanding, first, the technical terms involved in the present application are introduced.

[0061] Segment cluster (SC) is used to represent the cluster cluster obtained by clustering a group of data. A cluster cluster can be called a SC. A SC includes a plurality of segments (S), which can also be called a vector group.

[0062] A segment includes a fixed amount of data, so a segment can include part of the data in a group of data.

[0063] For example, a group of data includes 1000 vectors, and 5 SCs are obtained by clustering the group of data. Since the size of the SC is fixed at 100 vectors, a SC includes two Ss.

[0064] Queries per second (QPS) refers to the number of query requests processed per second. QPS is commonly used to measure the response capability or load capacity of databases, search engines, etc. High QPS indicates that more requests can be processed, thereby providing higher throughput and better user experience.

[0065] Next, the data search method provided by the present application will be described in detail in combination with the accompanying drawings.

[0066] Referring to FIG. 1a, FIG. 1a is a schematic diagram of a computer system provided by the present application. As shown in FIG. 1a, the computer system includes a cloud management platform 110, a computing node cluster 120, and a storage node cluster 130. The cloud management platform 110 is used to manage the computing node cluster 120 and the storage node cluster 130. The cloud management platform 110, the computing node cluster 120, and the storage node cluster 130 can communicate with each other in a wired manner or in a wireless manner. The aforementioned cloud management platform 110 can also be called a management node.

[0067] In the present application, the cloud management platform 110 provides a vector query request configuration interface (such as an API) to the outside world, which is used to obtain the to-be-queried data input by the tenant, the to-be-queried data including a scalar (such as a label or an identifier, etc.) and a vector.

[0068] For the content of the scalar, reference can be made to the description of the first partition identifier below; for the content of the vector, reference can be made to the description of the first vector below, which is not repeated here.

[0069] In a possible example, the cloud management platform 110 can send a first vector query task to the computing nodes included in the computing node cluster 120 according to the received vector query request from the tenant, to instruct the computing nodes to query the vectors stored therein. The vector query request includes the scalar and the vector, i.e., the first partition identifier of the partition where the first vector is located and the first vector.

[0070] The computing node cluster 120 is configured to cooperatively execute the first vector query task.

[0071] The computing node cluster 120 can include a plurality of computing nodes. For example, the plurality of computing nodes include the computing node 121, the computing node 122, and the computing node 123. The computing nodes can be physical machines, virtual machines, containers, or the like; if the computing nodes are physical machines, they can be computing devices such as servers. The cloud management platform 110 can also be a physical machine or a virtual machine; if the cloud management platform 110 is a physical machine, it can be a management device. The cloud management platform 110 can be configured to interact with the tenant, and instruct the computing node cluster 120 to execute the first vector query task according to the vector query request of the tenant.

[0072] In a possible example, the storage node cluster is configured to store H vector groups, each of which includes one or more vectors. The storage node cluster 130 can include a plurality of storage nodes. For example, the plurality of storage nodes include the storage node 131, the storage node 132, and the storage node 133. Each of the plurality of storage nodes can include one or more types of storage. The storage includes volatile memory such as random access memory (RAM), etc. The storage can also include non-volatile memory such as read-only memory (ROM), flash memory, a hard disk drive (HDD), or a solid state drive (SSD), etc. The storage can also include optical disks, magnetic tapes, etc.

[0073] Taking the storage node 131 as an example, the storage node 131 is configured to store vectors, and the vectors stored in the storage node 131 exist in the same storage unit in the form of a vector group (including a plurality of vectors). The number of storage nodes included in the storage node 131 can be 10 or 30, which is not limited in the present application.

[0074] In a possible implementation, the storage space in the plurality of computing nodes stores H vector groups of the tenant.

[0075] In another possible implementation, the computing node loads the vector group stored in the storage node into the computing node, and then the plurality of computing nodes store H vector groups of the tenant.

[0076] In a possible case, the storage node 131 allows the computing node 121 to access or query it, so that the computing node 121 realizes loading the vector group stored in the storage node 131 into the computing node 121, and then querying the second vector matching the first vector in the vector group.

[0077] In another possible case, the storage node cluster 130 in the computer system provides a shared storage service, which allows a plurality of computing nodes to access the same data at the same time. The shared storage service provides a network access interface, allowing the computing node to mount and use, so that the computing node can be regarded as storing the vector group.

[0078] In yet another possible case, the computing node can mount the file system on the storage node to the computing node through a file system protocol (such as a network file system (NFS)), so that the computing node can directly access and operate the data (such as the SC or S described above) on the storage node. Therefore, the computing node can be regarded as storing the SC or S described above.

[0079] Alternatively, the computing node mounts the storage volume in the storage node to the computing node through the tool or API provided by the computer system. The foregoing mounting operation is usually completed at the operating system level, and then the computing node can access the foregoing storage volume as accessing a local disk, so that the computing node can be regarded as storing the SC or S described above.

[0080] In a possible example, the computing node cluster 120 stores multiple copies for the same vector group, that is, the computing node cluster 120 stores a backup of the vector group for each vector group to ensure the reliability and availability of data.

[0081] For example, the computing node 121, the computing node 122 and the computing node 123 store two identical SCs, each of which includes three Ss (S1, S2 and S3). Among them, the computing node 121 stores S1 and S2, the computing node 122 stores S3 and S1', and the computing node 123 stores S2' and S3'. S1 is consistent with S1', S2 is consistent with S2', and S3 is consistent with S3'.

[0082] The S1, S2 and S3 described above are different vector groups respectively.

[0083] In the first possible example, the vector is used to represent at least one of a text, an image, a string, an identifier, audio and video.

[0084] For example, the computing node can perform embedded representation on the text, the image, the string, the identifier, the audio or the video to obtain the corresponding vector.

[0085] For example, the computing node can perform embedded representation on the text, the image, the string, the identifier, the audio or the video to obtain the corresponding vector.

[0086] The wired communication described above can be Ethernet, optical fiber, and various peripheral component interconnect express (PCIe) buses, universal serial bus (USB) or unified bus (Ubus or UB) set in the computer system for connecting the cloud management platform 110 and the computing node cluster 120, the computing node cluster 120 and the storage node cluster 130, the cloud management platform 110 and the storage node cluster 130, compute express link (CXL), cache coherent interconnect for accelerators (CCIX) and the like.

[0087] The wireless communication described above can be Internet, wireless fidelity (WIFI) and ultra wide band (UWB) technology and the like.

[0088] In one possible scenario, the cloud management platform 110 and the computing nodes can include one or more processing units, which can be a graphics processing unit (GPU), a neural network processing unit (NPU), a central processing unit (CPU), a field programmable gate array (FPGA), an application processor (AP), a modem processor, an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a tensor processing unit (TPU), an application specific integrated circuit (ASIC), a discrete gate, a transistor logic device, a discrete hardware component, and / or a baseband processor. Alternatively, the processing device, such as a terminal, a server, etc., can include any one or more of the above processing units.

[0089] In another possible scenario, the cloud management platform 110 and the computing nodes can further include one or more memories. The memory includes a volatile memory, such as a RAM. The memory can also include a non-volatile memory, such as a ROM, a flash memory, an HDD, or an SSD. The memory stores executable program codes or data generated during the execution of the components. The cloud management platform 110 or the computing nodes execute the executable program codes to implement the functions of the components deployed thereon.

[0090] For the detailed structure of the cloud management platform 110, reference can be made to the content shown in FIG. 11 or FIG. 12 below, which will not be described herein.

[0091] In one possible example, the memory included in the plurality of computing nodes stores H vectors of the tenant.

[0092] In one possible example, the computer system can be referred to as a distributed system or a cloud computing platform.

[0093] In one possible example, the computer system can further include a terminal 140, a terminal 150, and a terminal 160.

[0094] The terminal 140, the terminal 150, and the terminal 160 can be a mobile phone, a tablet computer, a handheld computer, a personal computer (PC), a cellular phone, a personal digital assistant (PDA), a wearable device (such as a smart watch), a smart home device (such as a television), an in-vehicle computer, a game console, and an augmented reality (AR) / virtual reality (VR) device, and the like. The specific device form of the terminal 140, the terminal 150, and the terminal 160 is not limited in the present application.

[0095] In another possible example, the terminal 140, the terminal 150, and the terminal 160 are independently arranged and are in communication connection with a computer system, that is, a distributed system.

[0096] It should be noted that the architecture of the computer system shown in FIG. 1a is only an example, and the types or quantities of devices inside the system can be configured according to actual needs, and the embodiments of the present application are not limited thereto. For example, the computer system can further include more cloud management platforms, computing nodes, and storage nodes.

[0097] First, the H vector groups stored by the plurality of computing nodes are described, and a storage diagram of a vector group is provided as follows. As shown in FIG. 1b, FIG. 1b is a storage diagram of a vector group provided by the present application.

[0098] The computing node 121 obtains a large number of vectors, and then clusters the large number of vectors to obtain M clustering clusters. In order to facilitate the management of the vectors, the computing node 121 divides the vectors included in each clustering cluster into a plurality of vector groups according to a set number, and then the M clustering clusters include H vector groups.

[0099] The computing node 121 distributes the H vector groups to a plurality of computing nodes in the computing node cluster 120 for storage and management. For example, if H is 6, the computing node 121 distributes 2 vector groups to the computing node 122 for storage, and distributes 2 vector groups to the computing node 123 for storage, and the computing node 121 itself stores 2 vector groups.

[0100] In a possible case, the computing node 121 divides the H vector groups into G partitions according to the types of the vectors included in the vector groups, each partition has a partition identifier, and the partition identifier is a scalar, and G is less than M.

[0101] As shown in FIG. 1b, the computing node cluster 120 further includes a computing node 124, a computing node 125, and a computing node 126. The computing node 121 stores two vector groups, such as S1 and S2, the computing node 122 stores S3 and S4, the computing node 123 stores S5 and S6, the computing node 124 stores S7 and S8, the computing node 125 stores S9 and S10, and the computing node 126 stores S11 and S12.

[0102] wherein the cluster a includes S1, S2, and S3, the cluster b includes S4, S5, and S6, the cluster c includes S7, S8, and S9, and the cluster d includes S10, S11, and S12. The partition 1 includes the cluster a and the cluster b, and the partition 2 includes the cluster c and the cluster d.

[0103] Each of the above vector groups includes at least one vector.

[0104] Three possible examples are provided below for the type of the above vectors.

[0105] In the first possible example, the type can be text, image, string, identifier, audio, or video. For example, the vectors in the first partition are used to represent text, and the vectors in the second partition are used to represent video.

[0106] In the second possible example, the type can be region type. For example, data generated in Beijing, data generated in Chengdu, and the like.

[0107] In the third possible example, the type can be different time periods. For example, the vectors in the first partition are used to represent data generated on December 12, 2012, and the vectors in the second partition are used to represent data generated on November 11, 2011.

[0108] The above is only an example provided by the present application, and should not be understood as a limitation on the present application. In other examples of the present application, the type can also be different companies, and the like.

[0109] In a possible example, the computing node 121 clusters the large number of vectors to obtain M cluster groups, including: the computing node 121 clusters the large number of vectors by using a clustering algorithm to obtain M cluster groups.

[0110] For example, the clustering algorithm can be k-means clustering, density-based spatial clustering of applications with noise (DBSCAN), hierarchical clustering, mean shift clustering, etc.

[0111] In one possible example, the set number is 100, and thus the computing node 121 divides the vectors included in each cluster according to the set number 100, so that each vector group obtained includes less than or equal to 100 vectors.

[0112] It should be noted that the above description is based on one computing node, and in other embodiments of the present application, the above embodiments can be executed by multiple computing nodes in the computing node cluster 120. For the embodiments executed by multiple computing nodes, the above description can be referred to, and thus the description is not repeated here.

[0113] Secondly, the implementation of the vector processing method based on the cloud management platform provided in the embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0114] FIG. 2 is a flowchart of a vector processing method based on a cloud management platform according to an embodiment of the present application. The method provided in the embodiment can be applied to the computer system shown in FIG. 1a. Here, the vector processing method based on the cloud management platform is taken as an example executed by the cloud management platform 110. The cloud management platform 110 is configured to manage the infrastructure of cloud services. The infrastructure can include multiple computing nodes shown in FIG. 1a, and the multiple computing nodes store H vector groups of a tenant. The H vector groups belong to M cluster groups, M is less than H, each cluster group is obtained by clustering the vectors included in the H vector groups, and the M cluster groups are divided into G partitions based on the types of the vectors included in the H vector groups. Each partition has a partition identifier, the partition identifier is a scalar, and G is less than M. The cloud management platform further includes a view configured to record the association relationship between each computing node and at least one vector group stored by each computing node. As shown in FIG. 2, the vector processing method based on the cloud management platform includes the following steps S210-S270.

[0115] In step S210, the cloud management platform 110 receives a vector query request from a tenant.

[0116] The query request carries a first vector and a first partition identifier of a partition where the first vector is located. The partition where the first vector is located is one of the G partitions.

[0117] In a possible implementation, the cloud management platform 110 receives the vector query request, including: the cloud management platform 110 receives the vector query request sent by the tenant through the terminal 140.

[0118] In a possible example, the terminal 140 accesses the cloud management platform 110 through an API provided by the cloud management platform 110, and realizes displaying a user interface on the terminal. Further, the user triggers an operation on the control component on the user interface through various input devices (keyboard, mouse, touch screen, etc.) connected to the terminal 140, so that the terminal 140 sends the vector query request to the cloud management platform 110 according to the trigger operation.

[0119] For the specific implementation of the trigger operation, three possible examples are provided below.

[0120] Example 1, the trigger operation can be the user's confirmation of the control component through the keyboard, such as the user triggering the enter key.

[0121] Example 2, the trigger operation can be the user's click on the control component through the mouse.

[0122] For example, there are multiple control components corresponding to the to-be-selected items displayed on the user interface, and the user can click on the control component through the mouse, and then determine that the to-be-selected item corresponding to the control component clicked by the mouse is the data to be queried.

[0123] Example 3, the trigger operation can be the user's input operation in the control component through the keyboard, etc., such as inputting the data to be queried.

[0124] In a possible case, after the terminal 140 determines the data to be queried, the terminal 140 performs embedded representation on the data to be queried to obtain the first vector corresponding to the data to be queried.

[0125] The terminal 140 can determine the first partition identifier of the partition where the data to be queried is located according to the type of the data to be queried, that is, the first partition identifier of the partition where the first vector is located.

[0126] For example, the terminal 140 determines that the type of the data to be queried is an image, and then determines that the first partition identifier corresponding to the image is 00 according to the mapping relationship between the type and the identifier.

[0127] In another possible implementation, the cloud management platform 110 receives the vector query request, including: the cloud management platform 110 acquires the data to be queried sent by the terminal 140, and then determines the first vector corresponding to the data to be queried, and determines the first partition identifier of the partition where the first vector is located according to the type of the data to be queried, thereby obtaining the vector query request.

[0128] In a possible example, the cloud management platform 110 performs embedded representation on the to-be-queried data to obtain a first vector corresponding to the to-be-queried data.

[0129] For example, the cloud management platform 110 can perform embedded representation on the to-be-queried data by using a model such as Transformer or FastText to obtain the first vector.

[0130] In step S220, the cloud management platform 110 determines N cluster centers included in the partition corresponding to the first partition identifier.

[0131] N is a positive integer greater than or equal to 1, and N is less than M.

[0132] In a possible implementation, the cloud management platform 110 determines N cluster centers included in the partition corresponding to the first partition identifier, including: the cloud management platform 110 determines the partition corresponding to the first partition identifier from the mapping relationship between the identifier and the partition.

[0133] For the description of the mapping relationship between the identifier and the partition, refer to the content shown in Table 1 below.

[0134] Table 1

[0135] It should be noted that the above Table 1 is only an example and should not be construed as a limitation of the present application. Table 1 can also include more or less content, for example, it does not include the "serial number" field. For example, the above Table 1 can also include the storage address or computing node corresponding to the partition, and the storage space indicated by the storage address stores the vectors of the cluster centers in each cluster center in the partition. For example, the above Table 1 can also include the storage status of the cluster center corresponding to the computing node, such as which one or more computing nodes store S in the cluster center.

[0136] The following provides a possible example of Table 1, serial number 1, identifier 00, partition Key_0, which includes SC1, SC2, etc., S1 and S2 in SC1 are stored by computing node 121, and S3 in SC1 is stored by computing node 122.

[0137] In a possible example, the first partition identifier carried by the query request is 00, and the cloud management platform 110 queries Table 1 above by using "00" to obtain the partition corresponding to the first partition identifier as: Key_0.

[0138] In another possible example, the first partition identifier carried by the query request is 00, and the cloud management platform 110 queries Table 1 using "00" to obtain that the partition corresponding to the first partition identifier is Key_0, and then the cloud management platform 110 acquires the storage address of the partition corresponding to the first partition identifier, and the storage space indicated by the storage address stores the vectors of the cluster centers of the plurality of cluster clusters included in the partition corresponding to the first partition identifier.

[0139] The following Fig. 3 provides a possible schematic diagram for the N cluster clusters included in the partition corresponding to the first partition identifier.

[0140] As shown in Fig. 3, Fig. 3 is a schematic diagram of a cluster cluster provided by the present application. The partition corresponding to the first partition identifier includes N cluster clusters, each triangle can represent a cluster cluster, a cluster cluster is obtained by clustering a large number of vectors, and the vectors included in a cluster cluster are divided into a plurality of vector groups, and a vector group includes one or more vectors.

[0141] In step S230, the cloud management platform 110 determines, according to the similarity between the first vector and the N cluster clusters, a first cluster cluster with the highest similarity to the first vector from the N cluster clusters.

[0142] In a first possible implementation, the first cluster cluster includes X cluster clusters. The cloud management platform 110 determines, according to the similarity between the first vector and the N cluster clusters, a first cluster cluster with the highest similarity to the first vector from the N cluster clusters, including: the cloud management platform 110 determines the similarity between the first vector and the cluster center of each cluster cluster in the N cluster clusters, and sorts the aforementioned similarity in descending order, and determines the cluster cluster corresponding to the X similarity in the front of the order as the first cluster cluster.

[0143] The X is a positive integer.

[0144] In a possible example, the cloud management platform 110 determines the similarity between the first vector and the vector corresponding to the cluster center of each cluster cluster.

[0145] The vector corresponding to the cluster center of each cluster cluster can be the average of all vectors included in the cluster cluster, that is, the vector corresponding to the cluster center is the average of all vectors included in the cluster cluster in each dimension.

[0146] For example, the three vectors included in the cluster cluster A are (1, 2), (3, 4) and (5, 6), and the vector of the cluster center of the cluster cluster A is ((1+3+5) / 3, (2+4+6) / 3), that is, (3, 4).

[0147] In a possible case, the X can be configured by a user.

[0148] For example, the user accesses the cloud management platform 110 through an API provided by the cloud management platform 110 on the terminal 140, that is, displays a configuration interface provided by the cloud management platform 110 on the terminal 140, and then the user can input a specific value of X on the configuration interface, so that the cloud management platform 110 obtains the X input by the user.

[0149] For example, the similarity can be a distance between a vector corresponding to the first vector and a vector corresponding to the cluster center, such as an Euclidean distance, a Manhattan distance, a Chebyshev distance, etc.

[0150] For another example, the similarity can be a cosine similarity between a vector corresponding to the second vector and a vector corresponding to the cluster center.

[0151] In the second possible implementation, the cloud management platform 110 determines the first cluster cluster from the one or more cluster clusters according to the similarity between the first vector and the one or more cluster clusters, comprising: the cloud management platform 110 determines the similarity between the first vector and the cluster center of each cluster in the N cluster clusters, and sorts the aforementioned similarities in ascending order, and determines the cluster corresponding to the X similarities ranked last as the first cluster.

[0152] For the content of the present implementation, reference can be made to the content of the first possible implementation described above, which will not be repeated here.

[0153] Step S240, the cloud management platform 110 determines one or more computing nodes storing the vector group included in the first cluster cluster according to the view.

[0154] The view is used to record the association relationship between each computing node in the computing node cluster 120 and at least one vector group stored by each computing node.

[0155] For the description of the view, reference can be made to the content shown in Table 2 below.

[0156] Table 2

[0157] Wherein, S1 is the same as S1', S2 is the same as S2', and S3 is the same as S3'.

[0158] It is worth noting that the above-mentioned vectors are recorded at the granularity of vector groups, and the content shown in Table 2 above is only an example and should not be understood as a limitation of the present application. In other embodiments of the present application, Table 2 can also include more or less content, for example, Table 2 above can also include storage addresses of each vector group (such as S1, S2, etc.).

[0159] In a possible implementation, the cloud management platform 110 determines, according to the view, one or more computing nodes storing the vector group included in the first cluster, including: the cloud management platform 110 can determine, according to the view shown in Table 2, that the computing nodes storing the vector group (such as S1, S2, S3) included in the first vector are at least one of the computing node 121, the computing node 122, and the computing node 123.

[0160] Step S250, the cloud management platform 110 sends the first vector query task to the one or more computing nodes.

[0161] The first vector query task is used to instruct the one or more computing nodes to obtain the second vector matching the first vector from the vector group included in the first cluster.

[0162] As shown in FIG. 2, the one or more computing nodes are the computing node 121, and the first vector query task is sent to the computing node 121.

[0163] The computing node 121 stores S1 and S2, the computing node 122 stores S3 and S1', and the computing node 123 stores S2' and S3'. The S1 includes vectors a, b, etc., the S2 includes vectors c, d, etc., and the S3 includes vectors e, f, etc. For specific content, refer to the description of FIG. 4 below, which is not repeated here.

[0164] Further, in order to realize complete query of the vectors in the first cluster, that is, to traverse all the vectors included in the first cluster, three possible examples are provided for the one or more computing nodes.

[0165] For example, the cloud management platform 110 determines that the one or more computing nodes include the computing node 121 and the computing node 122, and sends the first vector query task a to the computing node 121 to query the second vector matching the first vector in S1 and S2, and sends the first vector query task b to the computing node 122 to query the second vector matching the first vector in S3.

[0166] For another example, the cloud management platform 110 determines that the one or more computing nodes include the computing node 121 and the computing node 123, and sends the first vector query task c to the computing node 121 to query the second vector matching the first vector in S1 and S2, and sends the first vector query task d to the computing node 122 to query the second vector matching the first vector in S3'.

[0167] For example, the cloud management platform 110 determines that the one or more computing nodes include the computing node 122 and the computing node 123, and issues the first vector query task e to the computing node 121 for querying the second vector matching the first vector in the query S3 and S1`, and issues the first vector query task f to the computing node 122 for querying the second vector matching the first vector in the query S2`.

[0168] It is worth noting that the above is only an example and should not be construed as a limitation of the present application. In other embodiments of the present application, the cloud management platform 110 can also determine that the one or more computing nodes include the computing node 122 and the computing node 123, and issue the first vector query task g to the computing node 121 for querying the second vector matching the first vector in the query S1`, and issue the first vector query task h to the computing node 122 for querying the second vector matching the first vector in the queries S2` and S3`.

[0169] In one possible scenario, the cloud management platform 110 sends the first vector query task to the one or more computing nodes, including: the cloud management platform 110 determines the one or more computing nodes from the plurality of computing nodes according to a load balancing algorithm based on the vector query request and the state information of the plurality of computing nodes.

[0170] The above state information can be one or more of the computing resource load, the storage resource load, or the network resource load of the computing node.

[0171] For example, the above computing resource load can be the occupancy rate of the processor in the computing node, the storage resource load can be the occupancy rate of the memory, and the network resource load can be the occupancy rate of the network bandwidth.

[0172] In one possible example, the difference between the data amount of the vector group queried by each of the one or more computing nodes is less than or equal to a threshold A (a first threshold, such as 20).

[0173] In this example, to achieve load balancing among the plurality of computing nodes executing the first vector query task, the cloud management platform 110 indicates that the difference between the data amount queried by each of the one or more computing nodes is less than or equal to the threshold A, and thus the difference between the query data amount indicated in the first vector query task sent by the cloud management platform 110 to each of the plurality of computing nodes is less than or equal to A.

[0174] For example, referring to the example in the above scenario, the first vector quantity included in S1, S2 and S3 is 100, 100, 100 respectively, and similarly, the first vector quantity included in S1`, S2` and S3` is 100, 100, 100 respectively.

[0175] The cloud management platform 110 determines that the one or more computing nodes include the computing node 121, the computing node 122, and the computing node 123, and issues, to the computing node 121, a first vector query task of querying the second vector matching the first vector in the query S1, issues, to the computing node 122, a first vector query task of querying the second vector matching the first vector in the query S3, and issues, to the computing node 123, a first vector query task of querying the second vector matching the first vector in the query S2`.

[0176] Therefore, the difference between the data amounts queried by the computing node 121, the computing node 122, and the computing node 123 is 0.

[0177] It is worth noting that the threshold A can be configured by a user, and the above content is only an example provided by the present application and should not be understood as a limitation of the present application. In other embodiments of the present application, the cloud management platform 110 can also instruct one or more computing nodes to query part of the vectors in S1, S2, or S3, so that the difference between the data amounts queried by each of the one or more computing nodes is less than or equal to A.

[0178] In another possible example, the cloud management platform 110 determines, according to the state information of the plurality of computing nodes, a computing node arranged at the rear in the descending order of the workload as the one or more computing nodes.

[0179] The following takes the processor occupancy rate as an example of the state information. The cloud management platform 110 determines that the processor occupancy rate of the computing node 121 is 30%, the processor occupancy rate of the computing node 122 is 60%, and the processor occupancy rate of the computing node 123 is 90%. Then, the cloud management platform 110 determines that the computing node 121 and the computing node 122 are the one or more computing nodes, and issues, to the computing node 121, a first vector query task of querying the second vector matching the first vector in the queries S1 and S2, and issues, to the computing node 122, a first vector query task of querying the second vector matching the first vector in the query S3.

[0180] In step S260, the one or more computing nodes acquire, from the vector group included in the first cluster, the second vector matching the first vector in response to the first vector query task, and send the second vector to the cloud management platform 110.

[0181] If N is 1, the cluster includes S1, S2, and S3. The one or more computing nodes include the computing node 121 and the computing node 122. The computing node 121 stores S1 and S2, and the computing node 122 stores S3.

[0182] Further, the computing node 121 queries, in response to the first vector query task, the second vectors matching the first vector from the vectors included in S1 and S2. The computing node 122 queries, in response to the first vector query task, the second vectors matching the first vector from the vectors included in S3.

[0183] In a possible implementation, the one or more computing nodes obtain, in response to the first vector query task, the second vectors matching the first vector from the vector group included in the first cluster, including: the one or more computing nodes determine the similarity between the vectors included in the first cluster and the first vector, and further arrange the similarity in descending order, so that the vectors corresponding to the W similarity arranged in the front are the second vectors.

[0184] Taking the computing node 121 in the one or more computing nodes as an example, the computing node 121 stores S1 and S2 in the first cluster, and S1 and S2 respectively include 100 vectors. The computing node 121 determines the similarity between the 200 vectors included in S1 and S2 and the first vector respectively, and sorts the similarity in descending order, and the vectors corresponding to the W similarity arranged in the front are the second vectors.

[0185] The W can be configured by a user.

[0186] For example, the similarity can be the distance between the vector and the first vector, such as Euclidean distance, Manhattan distance, Chebyshev distance, etc.

[0187] For another example, the computing node 121 calculates the similarity between the vector and the first vector by using a neural network model. The neural network model can be Transformers, feedforward neural network (FNN), recurrent neural network (RNN), etc.

[0188] In another possible implementation, the one or more computing nodes obtain, in response to the first vector query task, the second vectors matching the first vector from the vector group included in the first cluster, including: the one or more computing nodes determine the similarity between the vectors included in the first cluster and the first vector, and further arrange the similarity in descending order, so that the vectors corresponding to the W similarity arranged in the front are the second vectors.

[0189] For the content of the present implementation, refer to the description of the above implementation, which will not be repeated here.

[0190] In step S270, the cloud management platform 110 obtains the second vectors returned by the one or more computing nodes.

[0191] The cloud management platform 110 obtains the second vectors sent by the one or more computing nodes according to a transmission channel between the cloud management platform 110 and the one or more computing nodes.

[0192] In a possible embodiment, the cloud management platform 110 sends the second vectors to the terminal 140 where the user is located.

[0193] In another possible embodiment, the cloud management platform 110 obtains a preset number of second vectors from each of the one or more computing nodes, and then determines a fifth vector with a highest similarity from the second vectors returned by the one or more computing nodes, and sends the fifth vector to the terminal 140.

[0194] The cloud management platform 110 determines that the fifth vector corresponds to the Y vectors with the highest similarities between the vectors included in the second vectors arranged in descending order and the first vector, and outputs the fifth vector to the terminal 140 where the user is located.

[0195] In a possible example, the Y is configured as 5 by the user. The second vectors obtained by the cloud management platform 110 include: vector 1, vector 2, vector 3, vector 4, vector 5, and vector 6. The cloud management platform 110 arranges the vectors included in the second vectors in descending order according to the similarities between the vectors and the first vector, and obtains the order: vector 1> vector 2> vector 3> vector 4> vector 5> vector 6, and then the cloud management platform 110 takes the vectors with the top 5 ranks as the fifth vector, such as vector 1, vector 2, vector 3, vector 4, and vector 5. Thus, the cloud management platform 110 sends the vector 1, vector 2, vector 3, vector 4, and vector 5 to the terminal 140.

[0196] The content of the vectors in the first cluster stored by the computing nodes is described in detail below.

[0197] To ensure the reliability and availability of data, the data is often stored in multiple copies, for example, the same cluster is stored in multiple copies. Taking the cluster B in the first cluster as an example, at least two computing nodes of the plurality of computing nodes store at least two same first clusters, and the cluster B includes F vector groups, and the same vector groups are stored by different computing nodes of the at least two computing nodes.

[0198] The F is an integer greater than or equal to 1.

[0199] As shown in FIG. 4, FIG. 4 is a schematic diagram of vector storage provided by the present application. The computing node 121, the computing node 122, and the computing node 123 cooperatively store two identical cluster clusters, which include S1, S2, and S3. Similarly, S1 is consistent with S1', S2 is consistent with S2', and S3 is consistent with S3'. The computing node 121 stores S1 and S2, the computing node 122 stores S3 and S1', and the computing node 123 stores S2' and S3'.

[0200] Therefore, the computing node 121 and the computing node 122 store the same S1 or S1', the computing node 121 and the computing node 123 store the same S2 or S2', and the computing node 122 and the computing node 123 store the same S3 or S3'.

[0201] Further, the cloud management platform 110 can send, according to the state information of the computing node 121, the computing node 122, and the computing node 123, a first vector query task for querying the vector included in S1 to the computing node 121, a first vector query task for querying the vector included in S3 to the computing node 122, and a first vector query task for querying the vector included in S2' to the computing node 123.

[0202] It is worth noting that the above description is only for the case where F is 3 and should not be construed as a limitation of the present application. In other embodiments of the present application, one cluster cluster can further include more or fewer vector groups, and detailed descriptions of the case where one cluster cluster includes more or fewer vector groups can be referred to the content shown in FIG. 4, which will not be described here.

[0203] To ensure that multiple vector query requests can be correctly responded to when the cloud management platform 110 acquires the multiple vector query requests within a preset time, an embodiment of determining the computing nodes to execute the query tasks is provided as follows.

[0204] The cloud management platform 110 acquires multiple vector query requests within a preset time, and each query request in the multiple vector query requests corresponds to execution by one or more computing nodes.

[0205] The cloud management platform 110 determines a directed acyclic graph according to the dependency relationship between the multiple vector query requests, and then instructs the multiple computing nodes to sequentially execute the first vector query task according to the execution order indicated by the directed acyclic graph.

[0206] The dependency relationship between the multiple vector query requests is used to indicate the business execution logic between the multiple vector query requests.

[0207] For example, the plurality of vector query requests include a vector query request A1, a vector query request A2, and a vector query request A3, which are sequentially received by the cloud management platform 110 within a preset time (e.g., 1 second). Since the service execution logic among the vector query request A1, the vector query request A2, and the vector query request A3 is that the query result of the vector query request A3 is used when processing the vector query request A2, and the query result of the vector query request A1 is used when processing the vector query request A3, the cloud management platform 110 will first instruct the computing node to process the vector query request A1, then process the vector query request A3, and finally process the vector query request A1.

[0208] For example, the cloud management platform 110 sends a first vector query task C1 to one or more computing nodes to respond to the query request A1, and obtains a query result 1 (a second vector 1). Further, the cloud management platform 110 sends a first vector query task C3 to one or more computing nodes to respond to the query request A3, and obtains a query result 3 (a second vector 3). Finally, the cloud management platform 110 sends a first vector query task C2 to one or more computing nodes to respond to the vector query request A2, and obtains a query result 2 (a second vector 2).

[0209] In a possible case, when the directed acyclic graph indicates a plurality of paths (execution sequences), the cloud management platform 110 can solve the optimal path (optimal execution sequence) of the directed acyclic graph by using an optimization theory.

[0210] The optimization theory described above can be an integer programming (IP) problem solver, a local search, etc.

[0211] For example, the local search can be any one of the following: tabu search, simulated annealing, etc.

[0212] Therefore, the cloud management platform 110 can instruct the plurality of computing nodes to sequentially execute the first vector query task according to the optimal execution sequence.

[0213] In a possible embodiment, to ensure that the time delay of the computer system responding to the query request is controllable, when the query time delay exceeds a threshold during the query process, the computer system will trigger the early return of the query result, and send the early returned query result (a third vector) to the terminal 140.

[0214] In this embodiment, since the vector query is a similarity fuzzy query, the early return of the query result will lose part of the query accuracy, but the early returned query result is generally available.

[0215] After step S240 in FIG. 2, the vector processing method based on the cloud management platform further includes: the cloud management platform 110 sending a vector acquisition request to one or more computing nodes, and then acquiring a third vector sent by the one or more computing nodes.

[0216] Since the third vector is a result returned in advance by the one or more computing nodes, that is, the one or more computing nodes do not traverse all the vectors included in the first cluster, and thus can only determine the similarity between the first vector and part of the vectors, and determine the vectors corresponding to the top W similarities in descending order from the part of the similarities as the third vector.

[0217] Since the aforementioned part of the similarities has limitations compared to the similarity between the first vector and all the vectors, the vectors corresponding to the top W similarities cannot be determined from a global perspective, and therefore, in general, the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector.

[0218] As shown in FIG. 5, FIG. 5 is a flowchart of another vector processing method based on a cloud management platform provided by the present application. The cloud management platform 110 maintains a timer, which is used to time after the cloud management platform 110 issues a vector query task to one or more computing nodes. The following takes a computing node 121 in the one or more computing nodes as an example for description, and the method shown in FIG. 5 includes steps S510-S530.

[0219] Step S510, the cloud management platform 110 sends a vector acquisition request to the computing node 121 when the value recorded by the timer is greater than or equal to a threshold b.

[0220] The threshold b can be configured by a user, such as 100 milliseconds or 10 milliseconds, etc.

[0221] In one possible case, the cloud management platform 110 can poll the value recorded by the timer, and when the value is greater than or equal to the threshold b, the cloud management platform 110 sends a vector acquisition request to the computing node 121.

[0222] In another possible case, when the value recorded by the timer is greater than or equal to the threshold b, an interrupt is triggered, and then the cloud management platform 110 sends a vector acquisition request to the computing node 121.

[0223] Step S520, the computing node 121 sends a third vector to the cloud management platform 110 in response to the vector acquisition request.

[0224] The computing node 121 determines the similarity between the first vector and the vectors included in the N cluster clusters that have been traversed, and then determines the vectors corresponding to the top W similarities in descending order from the similarities as the third vector.

[0225] For example, the computing node 121 traverses the vector groups stored thereon, such as S1 and S2, to obtain a third vector from S1 and S2, and sends the third vector to the cloud management platform 110.

[0226] At step S530, the cloud management platform 110 receives the third vector sent by the computing node 121.

[0227] Since the cloud management platform 110 instructs the computing node 121 to extract the return query result, the computing node 121 does not completely traverse the vectors included in the N cluster groups, and thus the obtained third vector is a local optimal result. Therefore, the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector.

[0228] In a possible case, the cloud management platform 110 selects, from the third vector, vectors corresponding to the top Y similarities in descending order, and sends the vectors corresponding to the top Y similarities to the terminal 140. The aforementioned similarity is the similarity between the vector included in the third vector and the first vector.

[0229] In a possible embodiment, the foregoing content only shows a vector query scenario, and the present application also shows content of a vector write / insert scenario. As shown in FIG. 6, FIG. 6 is a flowchart of a vector write method provided by the present application. The method shown in FIG. 6 includes the following steps S610-S650.

[0230] At step S610, the cloud management platform 110 receives a vector write request from a tenant.

[0231] The vector write request carries a fourth vector and a second partition identifier of a partition where the fourth vector is located, and the partition where the fourth vector is located is one of the G partitions.

[0232] For details of the vector write request received at step S610, refer to the description of the vector query request received at step S210, which is not repeated here.

[0233] At step S620, the cloud management platform 110 determines I cluster groups included in the partition corresponding to the second partition identifier.

[0234] Here, I is an integer greater than or equal to 1, and I is less than M.

[0235] In a possible implementation, the cloud management platform 110 determines the partition corresponding to the second partition identifier from the mapping relationship between the identifier and the partition.

[0236] For details of step S620, refer to the description of step S220 above, which will not be repeated here.

[0237] Step S630, the cloud management platform 110 determines a second cluster with the highest similarity to the fourth vector from the I clusters according to the similarity between the fourth vector and the I clusters.

[0238] For details of step S630, refer to the description of step S230 above, which will not be repeated here.

[0239] Step S640, the cloud management platform 110 determines A computing nodes storing the vector group included in the second cluster according to the view.

[0240] A is an integer greater than or equal to 1.

[0241] For details of step S640, refer to the description of step S240 above, which will not be repeated here.

[0242] S650, the cloud management platform 110 sends a vector write task to at least one of the A computing nodes.

[0243] The above-mentioned vector write task is used to instruct writing the fourth vector into at least one of the A computing nodes.

[0244] In a possible case, the at least one computing node sends a write result to the cloud management platform 110. The write result is used to indicate a write success or a write failure.

[0245] In a possible example, the cloud management platform 110 sends a vector write task to at least one of the A computing nodes. Further, the at least one of the A computing nodes writes the fourth vector into a storage area corresponding to the second cluster in the at least one computing node according to the vector write task, and sends a write result to the cloud management platform 110 if the write is successful, or sends a write result to the cloud management platform 110 if the write fails.

[0246] For example, if A is 1 and the vector group included in the second cluster is stored in the same computing node, the cloud management platform 110 sends a vector write task to the computing node.

[0247] For example, if A is 2, the second cluster includes S4, S5 and S6, the computing node a stores S4 and S5, and the computing node b stores S6. Further, the cloud management platform 110 can send a vector write task to the computing node a. The computing node a writes the fourth vector into a storage area corresponding to S4 or S5 according to the vector write task.

[0248] Alternatively, the cloud management platform 110 can send a vector write task to the computing node b, and the computing node b writes the fourth vector into the corresponding storage area of S6 according to the vector write task.

[0249] That is, the at least one computing node is the computing node a or the computing node b.

[0250] For example, the second cluster includes S4, S5, and S6, the computing node a stores S4 and S5, the computing node b stores S6 and S4', and the computing node c stores S5' and S6'.

[0251] Further, the cloud management platform 110 can send a vector write task to the computing node a or the computing node b, and the computing node a or the computing node b writes the fourth vector into the corresponding storage area of S4, S5, or S6 according to the vector write task.

[0252] In addition, the cloud management platform 110 can send a vector write task to the computing node b or the computing node c, and the computing node b or the computing node c writes the fourth vector into the corresponding storage area of S4', S5', or S6' according to the vector write task.

[0253] That is, the at least one computing node includes the computing node a and the computing node b, or the computing node a and the computing node c, or the computing node b and the computing node c.

[0254] Since one cluster is stored by different computing nodes, if any one of the computing nodes storing one cluster fails, the computer system will re-execute the response to the vector query request, that is, re-execute the vector query task by other computing nodes, resulting in the results of the previous query being discarded, the response delay being large, and the calculation amount being increased.

[0255] The present application provides a possible embodiment to solve the above technical problems. The content of the embodiment is based on the content shown in FIG. 2, and the cloud management platform 110 is configured with a view. As shown in FIG. 7, FIG. 7 is a flowchart of a vector processing method based on a cloud management platform provided by the present application. The content shown in FIG. 7 includes the following steps S710-S730.

[0256] In step S710, the cloud management platform 110 determines a failed node in the plurality of computing nodes.

[0257] The failed node stores a first vector group, and the first cluster includes the first vector group.

[0258] In a possible implementation, the cloud management platform 110 receives heartbeat signals (usually network requests) from the plurality of computing nodes at preset time intervals. If the cloud management platform 110 does not receive a heartbeat signal from a computing node within a preset time, the computing node is determined to be a failed node.

[0259] The heartbeat signal described above includes running information of the computing node. The running information can include an identifier of the running node, a health status (such as normal or abnormal), resource usage (such as an occupancy rate of a processor, a memory, and a network bandwidth), a timestamp, and the like.

[0260] In another possible implementation, the cloud management platform 110 periodically acquires resource usage of the plurality of running nodes. If the resource usage of a computing node is abnormal (for example, a CPU workload is higher than 90% within 2 minutes), the computing node is determined to be a failed node.

[0261] In yet another possible implementation, the cloud management platform 110 can determine that a computing node is abnormal by analyzing a log file of the computing node, and then determine that the computing node is a failed node.

[0262] In step S720, the cloud management platform 110 determines, according to the view, a first computing node in which a backup of the first vector group is stored.

[0263] In a possible example, the view can also be referred to as a segment view. For content of the view, refer to Table 2.

[0264] For example, the cloud management platform 110 determines that the failed node is the computing node 121, and the cloud management platform 110 determines, from Table 2, that the computing node 122 and / or the computing node 123 store the same first vector group as the computing node 121.

[0265] In step S730, the cloud management platform 110 sends a second vector query task to the first computing node.

[0266] The second vector query task described above is used to instruct the first computing node to acquire, from the backup of the first vector group stored in the first computing node, a second vector matching the first vector.

[0267] In a possible example, in a load balancing scenario, the plurality of computing nodes that execute the first vector query task include the computing node 121, the computing node 122, and the computing node 123. The difference between data amounts queried by the computing node 121, the computing node 122, and the computing node 123 is less than or equal to a threshold a. For example, the computing node 121 queries the first vector included in S1, the computing node 122 queries the first vector included in S3, and the computing node 123 queries the first vector included in S2`.

[0268] Further, after the cloud management platform 110 determines that the failed node is the computing node 121, the cloud management platform 110 determines from the above table 2 that the computing node storing the same S1 as the computing node 121 is the computing node 122, and sends a second vector query task to the computing node 122, which instructs the computing node 122 to query the vector included in S1`.

[0269] In another possible example, the computing node 121 queries the vector included in S1 and S2, and the computing node 122 queries the vector included in S3. After the cloud management platform 110 determines that the failed node is the computing node 121, the cloud management platform 110 determines from the above table 2 that the computing node storing the same S1 as the computing node 121 is the computing node 122, and determines that the computing node storing the same S2 as the computing node 121 is the computing node 123.

[0270] Therefore, the cloud management platform 110 sends a second vector query task to the computing node 122, which instructs the computing node 122 to query the vector included in S1`, and sends a second vector query task to the computing node 123, which instructs the computing node 123 to query the vector included in S2`.

[0271] In a possible case, the cloud management platform 110 merges the second vector obtained by the first computing node in response to the second vector query task with the second vector obtained in response to the first vector query task, and sends the merged result to the terminal 140.

[0272] For example, after the cloud management platform 110 sends the first vector query task to one or more computing nodes (the computing node 121 and the computing node 122), the cloud management platform 110 only receives the second vector sent by the computing node 122 due to the failure of the computing node 121. Further, the cloud management platform 110 sends a second vector query task to the computing node 123 to query the second vector in S1 that matches the first vector. The cloud management platform 110 merges the second vector sent by the computing node 122 and the second vector sent by the computing node 123, and returns the merged result to the terminal 140.

[0273] The above only illustrates the case of failure of one computing node. In a possible case, multiple computing nodes in the computing node cluster 120 fail at the same time period. For each failed node, refer to the content shown in FIG. 7 above, which is not described herein.

[0274] With the continuous use of the computer system, the vector managed by the computing node will dynamically change (increase or decrease) with the insertion or deletion of vectors, etc. To ensure the efficiency of the computer system in querying the vector, the cloud management platform 110 regularly acquires the number of vectors included in each cluster of the computing node, or the number of vectors included in 1 S (vector group), and then dynamically adjusts the S or cluster stored by the computing node according to the number. The following provides three possible adjustment scenarios.

[0275] In the first possible scenario, the cloud management platform 110 instructs the computing node to perform vector combination.

[0276] As shown in FIG. 8a, FIG. 8a is a schematic diagram of vector combination provided by the present application. The above-mentioned H vector groups include a second vector group and a third vector group. The cloud management platform 110 determines that the sum of the number of vectors included in the second vector group and the number of vectors included in the third vector group is less than or equal to a second threshold value (such as 100), and then determines a second computing node storing the second vector group or the third vector group according to the view, and sends a first vector combination instruction to the second computing node.

[0277] The first vector combination instruction is used to instruct the second computing node to combine the second vector group and the third vector group.

[0278] The second computing node combines the second vector group and the third vector group according to the first vector combination instruction.

[0279] In a possible example, the second vector group and the third vector group are stored in the second computing node.

[0280] In another possible example, the second vector group is stored in the second computing node, and the third vector group is stored in another computing node. After the second computing node receives the first vector combination instruction, the third vector group is acquired from the other computing node. Therefore, before the second computing node combines the second vector group and the third vector group, the second vector group and the third vector group are stored in the second computing node.

[0281] In another possible example, the second vector group is stored in the second computing node, and the third vector group is stored in another computing node. After the second computing node receives the first vector combination instruction, the third vector group is acquired from the other computing node. Therefore, before the second computing node combines the second vector group and the third vector group, the second vector group and the third vector group are stored in the second computing node.

[0282] It is worth noting that the above is only an example and should not be construed as limiting the present application. In other examples of the present application, the second vector group and the third vector group described above can not be stored in the second computing node, and the cloud management platform determines to perform merging to a third computing node with lower load through a load balancing algorithm, and thus the second computing node obtains the second vector group and the third vector group from other computing nodes in response to the first vector merging instruction and merges the second vector group and the third vector group.

[0283] For example, the second computing node migrates the second vector group to the storage unit where the third vector group is located to obtain a new vector group.

[0284] For example, the second computing node migrates the second vector group to the storage unit where the third vector group is located. The aforementioned storage unit can be a block, a cache line, a segment, or a physical storage chunk.

[0285] In one possible case, the second vector group and the third vector group belong to the same cluster.

[0286] It is worth noting that the above is only an example of merging two vector groups, and the content of merging more than two vector groups in the second computing node can refer to the above description, which is not repeated here.

[0287] In a second possible scenario, the cloud management platform 110 instructs the computing node to split the cluster.

[0288] As shown in FIG. 8b, FIG. 8b is a schematic diagram of cluster splitting provided by the present application. The H vector groups include a fourth vector group and a fifth vector group, and the fourth vector group and the fifth vector group belong to the same cluster, such as the third cluster. The cloud management platform 110 determines that the sum of the number of vectors included in the fourth vector group and the number of vectors included in the fifth vector group is greater than or equal to a third threshold value (such as 300), and then determines a third computing node storing the fourth vector group or the fifth vector group according to the view, and sends a vector splitting instruction to the third computing node.

[0289] The vector splitting instruction is used to instruct the third computing node to split the third cluster.

[0290] The third computing node splits the third cluster into two or more clusters in response to the vector splitting instruction. For example, the third cluster is split into a fourth cluster and a fifth cluster. The fourth cluster includes the fourth vector group, and the fifth cluster includes the fifth vector group.

[0291] In one possible case, the third computing node stores the fourth cluster and the fifth cluster to different storage areas respectively.

[0292] In a third possible scenario, the cloud management platform 110 instructs the computing nodes to merge the cluster clusters.

[0293] As shown in FIG. 8c, FIG. 8c is a schematic diagram of the cluster cluster merging provided by the present application. The H vector groups include a sixth vector group and a seventh vector group, and the sixth vector group and the seventh vector group belong to different cluster clusters. The cloud management platform 110 determines that the sum of the number of vectors included in the sixth vector group and the number of vectors included in the seventh vector group is less than the third threshold value, and then determines, according to the view, a fourth computing node in which the sixth vector group or the seventh vector group is stored, and sends a second vector merging instruction to the fourth computing node.

[0294] The second vector merging instruction is used to instruct the fourth computing node to merge the cluster cluster in which the sixth vector group is located and the cluster cluster in which the seventh vector group is located.

[0295] The fourth computing node responds to the second vector merging instruction, and merges the cluster cluster in which the sixth vector group is located and the cluster cluster in which the seventh vector group is located to obtain a new cluster cluster.

[0296] For example, the sixth cluster cluster to which the sixth vector group belongs and the seventh cluster cluster to which the seventh vector group belongs are merged to obtain an eighth cluster cluster. The eighth cluster cluster includes the sixth vector group and the seventh vector group.

[0297] In a possible case, if the cloud management platform 110 determines that the sum of the number of vectors included in the new cluster cluster obtained after merging any two of the three or more cluster clusters is still less than the third threshold value, the cloud management platform 110 can determine to merge any two cluster clusters.

[0298] In another possible case, if the cloud management platform 110 determines that the sum of the number of vectors included in the new cluster cluster obtained after merging any two of the three or more cluster clusters is still less than the third threshold value, the cloud management platform 110 merges two cluster clusters with higher similarity according to the similarity between the cluster clusters.

[0299] In a possible example, after the computing nodes merge the vector groups / merge the cluster clusters / split the cluster clusters, the computing nodes synchronously update the new vector groups / cluster clusters obtained after the merging / splitting to the corresponding storage nodes.

[0300] It can be understood that, in order to realize the functions in the above embodiments, the cloud management platform 110 comprises a hardware structure and / or a software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the units and method steps of the examples described in the embodiments disclosed in the present application, the present application can be realized in the form of hardware or a combination of hardware and computer software. Whether a certain function is realized in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.

[0301] The cloud management platform-based vector processing method provided by the present application is described in detail above in combination with FIGS. 2 to 8c. Next, in combination with FIG. 9, which is a structural schematic diagram of a cloud management platform-based vector processing apparatus provided by the present application, the cloud management platform-based vector processing apparatus provided by the present application is described. The cloud management platform-based vector processing apparatus 900 can be used to realize the functions of the cloud management platform 110 in the above method embodiments, and thus can also realize the beneficial effects possessed by the above method embodiments. In one possible example, the cloud management platform-based vector processing apparatus is applied to a cloud management platform, the cloud management platform is used to manage the infrastructure of a cloud service, the infrastructure comprises a plurality of computing nodes, the plurality of computing nodes store H vector groups of tenants, the H vector groups belong to M cluster groups, M is less than H, each cluster group is obtained from vector clustering of the H vector groups, and the M cluster groups are divided into G partitions based on the types of the vectors included in the H vector groups, each partition has a partition identifier, the partition identifier is a scalar, and G is less than M. The cloud management platform further comprises a view, the view is used to record the association relationship between each computing node and at least one vector group stored by each computing node.

[0302] As shown in FIG. 9, the cloud management platform-based vector processing apparatus 900 comprises a receiving module 910, a first determining module 920, a second determining module 930, a third determining module 940, and a sending module 950. The cloud management platform-based vector processing apparatus 900 is used to realize the functions of the cloud management platform 110 in the above method embodiments corresponding to FIGS. 2 to 8c. In one possible example, the cloud management platform-based vector processing apparatus 900 is used to realize the specific process of the above cloud management platform-based vector processing method, which comprises the following process:

[0303] The receiving module 910 is used to receive a vector query request from a tenant, the vector query request carries a first vector and a first partition identifier of a partition where the first vector is located, and the partition where the first vector is located is one of the G partitions.

[0304] The first determining module 920 is used to determine N cluster groups included in the partition corresponding to the first partition identifier, where N is a positive integer greater than or equal to 1, and N is less than M.

[0305] The second determining module 930 is configured to determine, according to the similarity between the first vector and the N clustering clusters, a first clustering cluster with the highest similarity to the first vector from the N clustering clusters.

[0306] The third determining module 940 is configured to determine, according to the view, one or more computing nodes storing a vector group included in the first clustering cluster.

[0307] The sending module 950 is configured to send a first vector query task to the one or more computing nodes, the first vector query task being used to instruct the one or more computing nodes to obtain a second vector matching the first vector from the vector group included in the first clustering cluster.

[0308] To further implement the functions in the method embodiments shown in FIGS. 2 to 8c, the present application further provides a vector processing device based on a cloud management platform, as shown in FIG. 10, which is a structural schematic diagram two of a vector processing device based on a cloud management platform provided by the present application. The vector processing device 900 based on the cloud management platform further includes a vector obtaining module 960, a vector writing module 970, a fault retry module 980, a vector combination and merging module 990a, a clustering cluster splitting module 990b, and a clustering cluster merging module 990c.

[0309] The vector obtaining module 960 is configured to send a vector obtaining request to the one or more computing nodes and receive a third vector sent by the one or more computing nodes; the third vector is obtained by the one or more computing nodes in response to the vector obtaining request, and the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector.

[0310] The vector writing module 970 is configured to receive a vector writing request from a tenant; the vector writing request carries a fourth vector and a second partition identifier used to indicate a partition where the fourth vector is located; determine I clustering clusters included in a partition corresponding to the second partition identifier, and determine, according to the similarity between the fourth vector and the I clustering clusters, a second clustering cluster with the highest similarity to the fourth vector from the I clustering clusters; determine, according to the view, A computing nodes storing a vector group included in the second clustering cluster, and send a vector writing task to at least one computing node in the A computing nodes; wherein the partition where the fourth vector is located is one of the G partitions, I is an integer greater than or equal to 1, I is less than M, the vector writing task is used to instruct writing the fourth vector into the at least one computing node in the A computing nodes, and A is an integer greater than or equal to 1.

[0311] The fault retry module 980 is configured to determine a fault node in the plurality of computing nodes, the fault node storing a first vector group, the first cluster including the first vector group; determine, according to the view, a first computing node storing a backup of the first vector group, and send a second vector query task to the first computing node; the second vector query task is used to instruct the first computing node to obtain a second vector matching the first vector from the backup of the first vector group stored by the first computing node.

[0312] The vector combination and merging module 990a is configured to determine that a sum of a number of vectors included in the second vector group and a number of vectors included in the third vector group is less than or equal to a second threshold value, and determine, according to the view, a second computing node storing the second vector group or the third vector group, and send a first vector merging instruction to the second computing node, the first vector merging instruction being used to instruct the second computing node to combine the second vector group and the third vector group. The H vector groups include the second vector group and the third vector group.

[0313] The cluster cluster splitting module 990b is configured to determine that a sum of a number of vectors included in the fourth vector group and a number of vectors included in the fifth vector group is greater than or equal to a third threshold value, and determine, according to the view, a third computing node storing the fourth vector group or the fifth vector group, and send a vector splitting instruction to the third computing node, the vector splitting instruction being used to instruct the third computing node to split the third cluster cluster. The H vector groups include the fourth vector group and the fifth vector group, and the fourth vector group and the fifth vector group belong to the third cluster cluster.

[0314] The cluster cluster merging module 990c is configured to determine that a sum of a number of vectors included in the sixth vector group and a number of vectors included in the seventh vector group is less than a fourth threshold value, and determine, according to the view, a fourth computing node storing the sixth vector group or the seventh vector group, and send a second vector merging instruction to the fourth computing node, the second vector merging instruction being used to instruct the fourth computing node to combine a cluster cluster in which the sixth vector group is located and a cluster cluster in which the seventh vector group is located. The H vector groups include the sixth vector group and the seventh vector group, and the sixth vector group and the seventh vector group belong to different cluster clusters.

[0315] For more functions of the receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940 and the sending module 950, please refer to the description of the vector processing method based on the cloud management platform above, which will not be repeated here.

[0316] The receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940, and the sending module 950 can be implemented by software or by hardware. For example, the receiving module 910 is taken as an example to introduce the implementation of the receiving module 910. Similarly, the implementation of the first determining module 920, the second determining module 930, the third determining module 940, and the sending module 950 can refer to the implementation of the receiving module 910.

[0317] As an example of a software functional unit, the receiving module 910 can include code running on a computing instance. The computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the computing instance can be one or more. For example, the receiving module 910 can include code running on multiple hosts / virtual machines / containers.

[0318] It should be noted that the multiple hosts / virtual machines / containers for running the code can be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers for running the code can be distributed in the same availability zone (AZ) or in different AZs, and each AZ includes one data center or multiple data centers in a similar geographical location. Generally, one region can include multiple AZs.

[0319] Similarly, the multiple hosts / virtual machines / containers for running the code can be distributed in the same VPC or in multiple VPCs. Generally, one VPC is set in one region, and a communication gateway needs to be set in each VPC for cross-region communication between two VPCs in the same region or between VPCs in different regions, and the interconnection between the VPCs is realized through the communication gateway.

[0320] As an example of a hardware functional unit, the receiving module 910 can include at least one computing device, such as a server. Alternatively, the receiving module 910 can be a device implemented by an ASIC or a programmable logic device (PLD), such as a complex programmable logical device (CPLD), an FPGA, a generic array logic (GAL), or any combination thereof.

[0321] The multiple computing devices included in the receiving module 910 can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module 910 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module 910 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0322] It should be noted that, in other embodiments, the receiving module 910 can be configured to perform any of the steps of the cloud management platform-based vector processing method, the first determining module 920 can be configured to perform any of the steps of the cloud management platform-based vector processing method, the second determining module 930 can be configured to perform any of the steps of the cloud management platform-based vector processing method, the third determining module 940 can be configured to perform any of the steps of the cloud management platform-based vector processing method, and the sending module 950 can be configured to perform any of the steps of the cloud management platform-based vector processing method. The steps implemented by the receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940, and the sending module 950 can be specified as needed, and the receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940, and the sending module 950 respectively implement different steps in the cloud management platform-based vector processing method to implement all the functions of the cloud management platform 110.

[0323] It should be noted that the cloud management platform 110 of the foregoing embodiments can correspond to the cloud management platform-based vector processing apparatus 900, and can correspond to the respective subjects performing the methods of FIGS. 2-8c according to the embodiments of the present application, and the operations and / or functions of the respective modules in the cloud management platform-based vector processing apparatus 900 are respectively for implementing the respective processes of the respective methods of the corresponding embodiments of FIGS. 2-8c, and for brevity, will not be described again here.

[0324] In addition, the cloud management platform-based vector processing apparatus 900 shown in FIG. 9 or FIG. 10 can also be implemented by a communication device, which can be the cloud management platform 110 in the foregoing embodiments. When the communication device is a chip or chip system applied to a processing device, the cloud management platform-based vector processing apparatus 900 can also be implemented by a chip or chip system.

[0325] The embodiments of the present application also provide a chip system, which includes a control circuit and an interface circuit, the interface circuit is configured to obtain a vector query request, and the control circuit is configured to implement the functions of the cloud management platform 110 in the above method according to the vector query request.

[0326] In a possible design, the chip system further includes a memory for storing program instructions and / or data. The chip system can be composed of a chip, or include a chip and other discrete devices.

[0327] Embodiments of the present application further provide a computing device. Please refer to FIG. 11, which is a structural schematic diagram of a computing device provided by the present application. The computing device 1100 includes a bus 1102, a processor 1104, a memory 1106 and a communication interface 1108. The processor 1104, the memory 1106 and the communication interface 1108 are communicatively connected with each other through the bus 1102. The computing device 1100 can be a server or a terminal device. It should be understood that the number of processors and memories in the computing device 1100 is not limited. For example, the computing device 1100 can be the cloud management platform 110.

[0328] The bus 1102 can be a PCIe bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one line is used in FIG. 11, but it does not mean that there is only one bus or only one type of bus. The bus 1102 can include a path for transmitting information between various components (for example, the processor 1104, the memory 1106, the communication interface 1108) of the computing device 1100.

[0329] The processor 1104 can include any one or more of a CPU, a GPU, a FPGA, a micro processor (MP) or a DSP, etc.

[0330] The memory 1106 can include a volatile memory, for example, a RAM. The processor 1104 can further include a non-volatile memory, for example, a ROM, a flash memory, an HDD or an SSD.

[0331] The memory 1106 stores executable program codes, and the processor 1104 executes the executable program codes to respectively implement the functions of the foregoing receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940 and the sending module 950, so as to implement the cloud management platform-based vector processing method. That is, the memory 1106 stores instructions for executing the cloud management platform-based vector processing method.

[0332] The communication interface 1108 uses a transceiving module such as, but not limited to, a network interface card, a transceiver, to enable communication between the computing device 1100 and other devices or communication networks. The computing device 1100 can be a computer (e.g., a server) in a cloud data center, or a computer in an edge data center, or a terminal device.

[0333] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device, which can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a desktop computer, a notebook computer, or a terminal device such as a smart phone. For example, the computing device cluster can be the cloud management platform 110 described above.

[0334] As shown in FIG. 12, FIG. 12 is a structural diagram of a computing device cluster provided by the present application. The computing device cluster includes at least one computing device 1100. The memory 1106 in one or more computing devices 1100 in the computing device cluster can store the same instructions for performing the vector processing method based on the cloud management platform.

[0335] In some possible implementations, the memory 1106 in one or more computing devices 1100 in the computing device cluster can also respectively store partial instructions for performing the vector processing method based on the cloud management platform. In other words, the combination of one or more computing devices 1100 can collectively execute the instructions for performing the vector processing method based on the cloud management platform.

[0336] It should be noted that the memories 1106 in different computing devices 1100 in the computing device cluster can store different instructions, respectively for performing partial functions of the vector processing method based on the cloud management platform. That is, the instructions stored in the memories 1106 in different computing devices 1100 can implement the functions of one or more of the receiving module 910, the first determining module 920, the second determining module 930, the third determining module 940, and the sending module 950.

[0337] In some possible implementation, one or more of the computing devices in the cluster of computing devices can be connected through a network. In some possible implementation, the network can be a wide area network or a local area network, etc. FIG. 13 illustrates one possible implementation. As shown in FIG. 13, FIG. 13 is a schematic diagram of connection between computing devices, in which two computing devices 1100A and 1100B are connected through a network. Specifically, the computing devices are connected to the network through the communication interfaces in the computing devices. In this type of possible implementation, the memory 1106 in the computing device 1100A stores instructions for performing the functions of the receiving module 910 and the sending module 950. Meanwhile, the memory 1106 in the computing device 1100B stores instructions for performing the functions of the first determining module 920, the second determining module 930, and the third determining module 940.

[0338] It should be understood that the functions of the computing device 1100A shown in FIG. 13 can also be completed by multiple computing devices 1100. Similarly, the functions of the computing device 1100B can also be completed by multiple computing devices 1100.

[0339] The embodiments of the present application also provide a computer program product containing instructions. The computer program product can be software or a program product containing instructions, which can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device is caused to perform the vector processing method based on a cloud management platform.

[0340] The embodiments of the present application also provide a computer readable storage medium. The computer readable storage medium can be any available medium that the computing device can store or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk), etc. The computer readable storage medium contains instructions, which instruct the computing device to perform the vector processing method based on a cloud management platform.

[0341] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer programs or instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are performed. The computer can be a general purpose computer, a special purpose computer, a computer network, a network device, a user equipment or other programmable apparatus. The computer programs or instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer programs or instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center through wired or wireless manner. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center and the like integrated with one or more available media. The available media can be a magnetic medium, for example, a floppy disk, a hard disk, a magnetic tape; or an optical medium, for example, a digital video disc (digital video disc, DVD); or a semiconductor medium, for example, an SSD.

[0342] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any skilled person in the art can easily think of various equivalent modifications or replacements within the technical range disclosed in the present application, and these modifications or replacements should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A vector processing method based on a cloud management platform, characterized in that, The cloud management platform is used to manage the infrastructure of cloud services. The infrastructure includes multiple computing nodes, each storing H vector groups of a tenant. These H vector groups belong to M clusters, where M is less than H. Each cluster is obtained by clustering the vectors included in the H vector groups. The M clusters are divided into G partitions based on the type of the vectors included in the H vector groups. Each partition has a partition identifier, which is a scalar, where G is less than M. The cloud management platform also includes a view used to record the association between each computing node and at least one vector group stored on each computing node. The method includes: Receive a vector query request from the tenant, the vector query request carrying a first vector and a first partition identifier of the partition where the first vector is located, the partition where the first vector is located is one of the G partitions; Determine the N clusters included in the partition corresponding to the first partition identifier, where N is a positive integer greater than or equal to 1 and N is less than M; Based on the similarity between the first vector and the N clusters, determine the first cluster that has the highest similarity to the first vector from the N clusters; Based on the view, determine one or more computing nodes that store the vector groups included in the first cluster; A first vector query task is sent to the one or more computing nodes, the first vector query task being used to instruct the one or more computing nodes to obtain a second vector that matches the first vector from the vector group included in the first cluster.

2. The method according to claim 1, characterized in that, Each cluster includes a cluster center. The step of determining the first cluster with the highest similarity to the first vector from the N clusters based on the similarity between the first vector and the N clusters includes: Based on the similarity between the first vector and the N cluster centers, the first cluster with the highest similarity to the first vector is determined from the N clusters.

3. The method according to claim 1, characterized in that, Sending the first vector query task to the one or more computing nodes includes: Based on the vector query request and the status information of the multiple computing nodes, one or more computing nodes are determined from the multiple computing nodes according to the load balancing algorithm, and the difference in the amount of data of the vector group queried by each computing node in the one or more computing nodes is less than or equal to a first threshold. Send the first vector query task to the one or more computing nodes.

4. The method according to any one of claims 1 to 3, characterized in that, After sending the first vector query task to the one or more computing nodes, the method further includes: Send a vector acquisition request to the one or more computing nodes; The system receives a third vector sent by one or more computing nodes; the third vector is obtained by the one or more computing nodes in response to the vector acquisition request, and the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Receive a vector write request from the tenant; the vector write request carries a fourth vector and the second partition identifier of the partition where the fourth vector is located, the partition where the fourth vector is located is one of the G partitions; Determine the I clusters included in the partition corresponding to the second partition identifier, where I is an integer greater than or equal to 1 and I is less than M; Based on the similarity between the fourth vector and the I clusters, determine the second cluster that has the highest similarity to the fourth vector from the I clusters; Based on the view, determine A computational nodes that store the vector groups included in the second cluster, where A is an integer greater than or equal to 1; Send a vector write task to at least one of the A computing nodes; the vector write task is used to instruct the fourth vector to be written to at least one of the A computing nodes.

6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: Determine the faulty node among the plurality of computing nodes, wherein the faulty node stores a first vector group, and the first cluster includes the first vector group; Based on the view, determine the first computing node that stores a backup of the first vector group; A second vector query task is sent to the first computing node; the second vector query task is used to instruct the first computing node to obtain the second vector that matches the first vector from the backup of the first vector group stored on the first computing node.

7. The method according to any one of claims 1 to 6, characterized in that, The H vector groups include a second vector group and a third vector group; the method further includes: The sum of the number of vectors in the second vector group and the number of vectors in the third vector group is determined to be less than or equal to a second threshold. Based on the view, a second computing node is determined that stores either the second vector group or the third vector group; A first vector merging instruction is sent to the second computing node, which instructs the second computing node to merge the second vector group and the third vector group.

8. The method according to any one of claims 1 to 6, characterized in that, The H vector groups include a fourth vector group and a fifth vector group, and the fourth and fifth vector groups belong to the third cluster; the method further includes: The sum of the number of vectors in the fourth vector group and the number of vectors in the fifth vector group is determined to be greater than or equal to the third threshold. Based on the view, determine the third computing node that stores the fourth vector group or the fifth vector group; A vector splitting instruction is sent to the third computing node, which instructs the third computing node to split the third cluster.

9. The method according to any one of claims 1 to 6, characterized in that, The H vector groups include a sixth vector group and a seventh vector group, wherein the sixth vector group and the seventh vector group belong to different clusters; the method further includes: The sum of the number of vectors in the sixth vector group and the number of vectors in the seventh vector group is less than the fourth threshold. Based on the view, determine the fourth computation node that stores the sixth or seventh vector group; A second vector merging instruction is sent to the fourth computing node, which instructs the fourth computing node to merge the cluster containing the sixth vector group and the cluster containing the seventh vector group.

10. A vector processing device based on a cloud management platform, characterized in that, The cloud management platform is used to manage the infrastructure of cloud services. The infrastructure includes multiple computing nodes, each storing H vector groups of a tenant. These H vector groups belong to M clusters, where M is less than H. Each cluster is obtained by clustering the vectors included in the H vector groups. The M clusters are divided into G partitions based on the type of the vectors included in the H vector groups. Each partition has a partition identifier, which is a scalar, where G is less than M. The cloud management platform also includes a view used to record the association between each computing node and at least one vector group stored on each computing node. The device includes: The receiving module is configured to receive a vector query request from the tenant, the vector query request carrying a first vector and a first partition identifier of the partition in which the first vector is located, the partition in which the first vector is located being one of the G partitions; The first determining module is used to determine the N clusters included in the partition corresponding to the first partition identifier, where N is a positive integer greater than or equal to 1 and N is less than M; The second determining module is used to determine the first cluster with the highest similarity to the first vector from the N clusters based on the similarity between the first vector and the N clusters; The third determining module is used to determine, based on the view, one or more computing nodes storing the vector groups included in the first cluster; The sending module is configured to send a first vector query task to the one or more computing nodes, wherein the first vector query task is configured to instruct the one or more computing nodes to obtain a second vector that matches the first vector from the vector group included in the first cluster.

11. The apparatus according to claim 10, characterized in that, Each cluster includes a cluster center. The second determining module is specifically used to determine the first cluster with the highest similarity to the first vector from the N clusters based on the similarity between the first vector and the N cluster centers.

12. The apparatus according to claim 10, characterized in that, The sending module is specifically used to determine one or more computing nodes from the multiple computing nodes based on the vector query request and the status information of the multiple computing nodes, according to a load balancing algorithm, and send the first vector query task to the one or more computing nodes; The difference in the amount of data in the vector group queried by each of the one or more computing nodes is less than or equal to a first threshold.

13. The apparatus according to any one of claims 10 to 12, characterized in that, The device further includes: a vector acquisition module; The vector acquisition module is configured to send a vector acquisition request to the one or more computing nodes and receive a third vector sent by the one or more computing nodes; the third vector is obtained by the one or more computing nodes in response to the vector acquisition request, and the similarity between the third vector and the first vector is less than or equal to the similarity between the second vector and the first vector.

14. The apparatus according to any one of claims 10 to 13, characterized in that, The device further includes: a vector writing module; The vector writing module is configured to receive a vector writing request from the tenant; the vector writing request carries a fourth vector and a second partition identifier indicating the partition where the fourth vector is located; determine I clusters included in the partition corresponding to the second partition identifier, and determine the second cluster with the highest similarity to the fourth vector from the I clusters based on the similarity between the fourth vector and the I clusters; determine A computing nodes storing the vector group included in the second cluster according to the view, and send a vector writing task to at least one of the A computing nodes; wherein the partition where the fourth vector is located is one of the G partitions, I is an integer greater than or equal to 1, I is less than M, and the vector writing task is used to instruct the fourth vector to be written to at least one of the A computing nodes, where A is an integer greater than or equal to 1.

15. The apparatus according to any one of claims 10 to 14, characterized in that, The device further includes: a fault retry module; The fault retry module is used to identify a faulty node among the plurality of computing nodes, wherein the faulty node stores a first vector group, and the first cluster includes the first vector group; according to the view, it identifies a first computing node that stores a backup of the first vector group, and sends a second vector query task to the first computing node; the second vector query task is used to instruct the first computing node to obtain a second vector that matches the first vector from the backup of the first vector group stored by the first computing node.

16. The apparatus according to any one of claims 10 to 15, characterized in that, The H vector groups include a second vector group and a third vector group; the device also includes a vector combination and merging module; The vector merging module is used to determine that the sum of the number of vectors in the second vector group and the number of vectors in the third vector group is less than or equal to a second threshold, and according to the view, to determine a second computing node that stores the second vector group or the third vector group, and to send a first vector merging instruction to the second computing node, the first vector merging instruction being used to instruct the second computing node to merge the second vector group and the third vector group.

17. The apparatus according to any one of claims 10 to 15, characterized in that, The H vector groups include a fourth vector group and a fifth vector group, which belong to the third cluster; the device further includes a cluster splitting module; The cluster splitting module is used to determine that the sum of the number of vectors in the fourth vector group and the number of vectors in the fifth vector group is greater than or equal to a third threshold, and according to the view, to determine a third computing node that stores the fourth vector group or the fifth vector group, and to send a vector splitting instruction to the third computing node, wherein the vector splitting instruction is used to instruct the third computing node to split the third cluster.

18. The apparatus according to any one of claims 10 to 15, characterized in that, The H vector groups include a sixth vector group and a seventh vector group, which belong to different clusters; the device also includes a cluster merging module. The cluster merging module is used to determine that the sum of the number of vectors in the sixth vector group and the number of vectors in the seventh vector group is less than a fourth threshold, and according to the view, to determine a fourth computing node that stores the sixth vector group or the seventh vector group, and to send a second vector merging instruction to the fourth computing node. The second vector merging instruction is used to instruct the fourth computing node to merge the cluster in which the sixth vector group is located and the cluster in which the seventh vector group is located.

19. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1 to 9.

20. A computer-readable storage medium, characterized in that, The storage medium stores a computer program or instructions, which, when executed by a computing device, implement the method of any one of claims 1 to 9.

21. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instructions are executed by a computing device, the method of any one of claims 1 to 9 is implemented.

Citation Information

Patent Citations

  • Sample set processing method and device and sample query method and device

    CN108241745A

  • Vector retrieval method and device

    CN117131228A

  • Multilevel clustering of vector-based data

    US20210224583A1