Method and system for capacity expansion of computing power resources of intelligent computing center

Through the agency service node distribution data processing request, the problem of slow processing speed of a single DISKANN service node of the Intelligent Computing Center has been solved, and the expansion of computing power resources and the improvement of user experience have been realized.

CN119376932APending Publication Date: 2025-01-28DATACANVAS LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411412616.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-10
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

The intelligent computing center uses a single DiskANN service node to process data processing requests for DiskANN objects, resulting in slow processing speed and poor user experience, and needs to expand computing resources.

Method used

Calculate the hash values ​​in the DISKANN service node cluster through the agency service node, determine the DISKANN service node of the request, and distribute data processing requests to improve the processing efficiency.

Benefits of technology

Effectively improved the data processing speed of the Diskann service and improved the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119376932A_ABST
    Figure CN119376932A_ABST
Patent Text Reader

Abstract

The invention provides an intelligent computing center computing power resource capacity expansion method and system, and the method comprises the steps: S1, calculating the hash value of each DiskANN service node in a DiskANN service node cluster through a proxy service node, and determining the position of the DiskANN service node in a hash space according to the hash value of the DiskANN service node; wherein each DiskANN service node uses the same distributed file system to store the data of the DiskANN object; s2, after receiving a data processing request for the DiskANN object, the proxy service node calculates a hash value of the data processing request according to an identifier of the DiskANN object carried in the data processing request; and S3, the proxy service node determines the DiskANN service node for processing the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distributes the data processing request to the determined DiskANN service node for data processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to the technical field of computing power infrastructure, and in particular, to a method and system for expanding computing power resources of an intelligent computing center. Background Art

[0002] With the development of artificial intelligence technology and computing power technology, the concept of intelligent computing center has emerged. "Intelligent computing center" refers to the use of large-scale heterogeneous computing power resources, including general computing power and intelligent computing power, mainly for artificial intelligence applications (such as artificial intelligence deep learning model development, model training and model reasoning and other scenarios) to provide the required computing power, data and algorithms. Intelligent computing center covers facilities, hardware, software, and can provide full-stack capabilities from bottom-level computing power to top-level application enablement.

[0003] The Intelligent Computing Center supports vector retrieval based on DiskANN. DiskANN is a vector retrieval engine based on distributed storage, which can store and retrieve billions of vector data on a single computer. Compared with traditional vector retrieval algorithms, DiskANN has higher storage efficiency and faster retrieval speed.

[0004] In related solutions, the intelligent computing center usually uses a DiskANN service node to process the received data processing requests for DiskANN objects. Since the data volume of DiskANN objects is usually large, the processing capacity of a DiskANN service node is limited. If it is necessary to perform data processing of multiple DiskANN objects at the same time, the processing speed is slow and the user experience is poor. Therefore, it is necessary to expand the computing power resources used for DiskANN services in the intelligent computing center to improve the user experience. Summary of the invention

[0005] The embodiments of the present invention provide a method and system for expanding the computing power resources of an intelligent computing center, which are used to solve the problem that in related solutions, the intelligent computing center uses a DiskANN service node to process the received data processing requests for DiskANN objects, the overall processing speed is slow, the user experience is poor, and it is necessary to expand the computing power resources used for DiskANN services in the intelligent computing center.

[0006] In order to solve the above-mentioned technical problems, the present invention is achieved as follows:

[0007] In a first aspect, an embodiment of the present invention provides a method for expanding computing resources of an intelligent computing center, including:

[0008] Step S1: The proxy service node calculates the hash value of each DiskANN service node in the DiskANN service node cluster, and determines the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; wherein each DiskANN service node uses the same distributed file system to store the data of the DiskANN object;

[0009] Step S2: After receiving the data processing request for the DiskANN object, the proxy service node calculates the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request;

[0010] Step S3: The proxy service node determines the DiskANN service node for processing the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distributes the data processing request to the determined DiskANN service node for data processing.

[0011] Optionally, also include:

[0012] Step S4: when a new DiskANN service node is added to the DiskANN service node cluster, the proxy service node calculates the hash value of the new DiskANN service node, determines the position of the new DiskANN service node in the hash space according to the hash value of the new DiskANN service node, determines the next DiskANN service node of the new DiskANN service node in the hash space, and records the corresponding relationship between the next DiskANN service node and the identifier of the DiskANN object that is processing data on the next DiskANN service node;

[0013] Step S5: After receiving the data processing request for the DiskANN object, the proxy service node obtains the identifier of the DiskANN object in the currently received data processing request, and determines whether the recorded corresponding relationship contains the identifier of the DiskANN object;

[0014] Step S6: When the recorded corresponding relationship includes the identifier of the DiskANN object, the proxy service node distributes the currently received data processing request to the corresponding DiskANN service node for data processing according to the corresponding relationship;

[0015] Step S7: When the recorded corresponding relationship does not contain the identifier of the DiskANN object, execute steps S2 and S3.

[0016] Optionally, step S4 includes:

[0017] Step S41: the monitoring service node monitors the monitoring indicators of each DiskANN service node in the DiskANN service node cluster, and determines whether a new DiskANN service node needs to be added according to the monitoring indicators of each DiskANN service node;

[0018] Step S42: when a new DiskANN service node needs to be added, the monitoring service node adds the new DiskANN service node to the DiskANN service node cluster;

[0019] Step S43: the monitoring service node notifies the proxy service node of the information of the newly added DiskANN service node.

[0020] Optionally, also include:

[0021] Step S0: the proxy service node divides each DiskANN service node in the DiskANN service node cluster into N groups, wherein the DiskANN service nodes in each group are used to perform different types of data processing, and N is an integer greater than or equal to 2;

[0022] Wherein, the step S3 comprises:

[0023] Step S31: the proxy service node distributes the data processing request to the DiskANN service node of the corresponding group for data processing according to the type of the received data processing request.

[0024] Optionally, the step S0 includes:

[0025] Step S01: the proxy service node divides each DiskANN service node in the DiskANN service node cluster into two groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node, and constructing a graph index for the vector data of the DiskANN object, and the data processing corresponding to the second group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object;

[0026] or,

[0027] Step S02: The proxy service node divides each DiskANN service node in the DiskANN service node cluster into three groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node; the data processing corresponding to the second group includes: building a graph index for the vector data of the DiskANN object; the data processing corresponding to the third group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object.

[0028] Optionally, also include:

[0029] Step S8: After the data processing performed by the DiskANN service nodes in the first group is completed, the proxy service node divides the DiskANN service nodes in the first group that have completed the data processing into a second group, wherein the first group and the second group are both one group among the N groups.

[0030] In a second aspect, an embodiment of the present invention provides a system for expanding computing resources of an intelligent computing center, including:

[0031] DiskANN service node cluster, including multiple DiskANN service nodes;

[0032] A distributed file system connected to each DiskANN service node in the DiskANN service node cluster; each DiskANN service node uses the distributed file system to store data of the DiskANN object;

[0033] The proxy service node is connected to each DiskANN service node, and is used to calculate the hash value of each DiskANN service node, and determine the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; after receiving a data processing request for a DiskANN object, calculate the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request; determine the DiskANN service node used to process the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distribute the data processing request to the determined DiskANN service node for data processing.

[0034] In a third aspect, an embodiment of the present invention provides a server comprising: a processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, the steps of the method for expanding computing power resources of an intelligent computing center as described in the first aspect above are implemented.

[0035] In a fourth aspect, an embodiment of the present invention provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps of the method for expanding the computing power resources of an intelligent computing center as described in the first aspect above are implemented.

[0036] In a fifth aspect, a computer program product is provided, comprising computer instructions, which, when executed by a processor, implement the steps of the method for expanding the computing power resources of an intelligent computing center as described in the first aspect above.

[0037] In an embodiment of the present invention, the intelligent computing center provides a DiskANN service node cluster including multiple DiskANN service nodes, replacing a single DiskANN service node in a related solution, that is, providing more computing resources (DiskANN service nodes), thereby effectively improving the data processing speed of the DiskANN service. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be considered as limiting the present invention. Moreover, the same reference symbols are used throughout the accompanying drawings to represent the same components. In the accompanying drawings:

[0039] Figure 1 This is a schematic diagram of the overall process of vector data query based on DiskANN;

[0040] Figure 2 A schematic diagram of the structure of a system for expanding computing power resources of an intelligent computing center in the related art;

[0041] Figure 3 A schematic diagram of the structure of a system for expanding computing power resources of an intelligent computing center according to an embodiment of the present invention;

[0042] Figure 4 A schematic diagram of a process for expanding computing power resources of an intelligent computing center according to an embodiment of the present invention;

[0043] Figure 5 This is one of the schematic diagrams of a hash ring according to an embodiment of the present invention;

[0044] Figure 6A flowchart of a method for expanding computing resources of an intelligent computing center according to another embodiment of the present invention;

[0045] Figure 7 This is a second schematic diagram of a hash ring according to an embodiment of the present invention;

[0046] Figure 8 This is a third schematic diagram of a hash ring according to an embodiment of the present invention;

[0047] Fig. 9 Schematic diagram of the structure of a server according to an embodiment of the present invention. DETAILED DESCRIPTION

[0048] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0049] First, the technical terms involved in the present invention are briefly explained below.

[0050] The "computing power" mentioned in the present invention is the ability of computer equipment or computing / data center to process information. It is the ability of computer hardware and software to work together to execute certain computing requirements. It is the computing power to achieve target result output by processing information data. It is a new type of productivity that integrates information computing power, network carrying capacity, and data storage capacity. It mainly provides services to the society through computing power infrastructure.

[0051] The "computing power" (Computational Power, CP) described in the present invention is the ability of a data center server to process data and output results. It is a comprehensive indicator to measure the computing power of a data center, including general computing power, super computing power and intelligent computing power. The commonly used unit of measurement is the number of floating point operations performed per second (FLOPS: Floating Point Operations Per Second, 1EFLOPS = 10^18FLOPS). The larger the value, the stronger the comprehensive computing power. According to calculations, 1EFLOPS is approximately the computing power output of 5 Tianhe-2A or 500,000 mainstream server CPUs or 2 million mainstream notebooks. The calculation formula is: CP = CP 通用 +CP 智能 +CP 超级 .

[0052] The "Network Power" (NP) described in the present invention is a manifestation of the data transmission capability of computing facilities, including comprehensive capabilities such as network architecture, network bandwidth, transmission latency, intelligent management and scheduling, etc. The carrying capacity involves network transmission within and between data centers, and is a comprehensive indicator for measuring network transmission scheduling capabilities. In the embodiment of the present invention, the carrying capacity uses the memory bandwidth.

[0053] The "Storage Power" (SP) described in the present invention is the comprehensive ability of a data center in terms of data storage capacity, performance, safety and reliability, and green and low-carbon. It is a comprehensive indicator for measuring the data storage capacity of a data center, including external storage devices such as storage arrays and server built-in storage devices. The commonly used unit of measurement for storage capacity is exabyte (EB, 1EB = 2^60bytes), and the commonly used unit of measurement for performance is the number of reads and writes per second per unit capacity (IOPS / TB, Input / Output Operations Per Second / TB). The disaster recovery ratio is an important manifestation of safety and reliability.

[0054] The "computing power infrastructure" described in the present invention is a new type of information infrastructure that integrates information computing power, network carrying capacity, and data storage capacity. It can realize centralized computing, storage, transmission and application of information, and presents characteristics such as diversity and ubiquity, intelligence and agility, security and reliability, and green and low-carbon.

[0055] The “computing power” mentioned in the present invention includes general computing power, intelligent computing power and super computing power.

[0056] The “general computing power” mentioned in the present invention refers to the computing power provided by servers based on CPU (Central Processing Unit) chips, which is used to support basic general computing such as cloud computing and edge computing.

[0057] The "intelligent computing power" described in the present invention is a computing platform for large-scale deployment of special chips such as GPU (Graphics Processing Unit), FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit) for various innovative applications of artificial intelligence, such as natural language processing and machine vision.

[0058] The "super computing power" mentioned in the present invention is mainly the computing power provided by high-performance computing clusters such as supercomputers. It utilizes the centralized computing resources of multiple computer systems working in parallel and uses a dedicated operating system to handle extremely complex or data-intensive problems. It is mainly used for calculations in cutting-edge scientific fields, such as planetary simulation, drug molecule design, and gene analysis.

[0059] The "intelligent computing center" described in the present invention refers to a facility that provides the required computing power, data and algorithms for artificial intelligence applications (such as artificial intelligence deep learning model development, model training and model reasoning scenarios) by using large-scale heterogeneous computing power resources, including general computing power (CPU: Central Processing Unit) and intelligent computing power (GPU: Graphics Processing Unit, FPGA: Field Programmable Gate Array, ASIC: Application Specific Integrated Circuit, etc.). The intelligent computing center covers facilities, hardware, and software, and can provide full-stack capabilities from bottom-level computing power to top-level application enablement.

[0060] The "computing resources" mentioned in the present invention refer to the technologies and facilities with information calculation, transmission, storage and application capabilities required for the development of the digital society, including but not limited to computing resources such as CPU (Central Processing Unit), GPU (Graphics Processing Unit), network resources such as switches and routers, storage resources such as storage arrays and distributed storage, security resources such as firewalls and intrusion detection systems, as well as supporting and guarantee resources such as wind, fire, water and electricity.

[0061] The "DiskANN" described in the present invention is a vector search engine based on distributed storage, which can store and retrieve billions of vector data on a single computer. Compared with traditional vector search algorithms, DiskANN has higher storage efficiency and faster search speed.

[0062] In the embodiment of the present invention, the overall process of vector data query based on DiskANN can be found in the attached Figure 1The overall process mainly includes the following tasks: creating a DiskANN object (referred to as Create), importing vector data to the DiskANN object (referred to as ImportData), importing vector data into the DiskANN service (referred to as Push Data), building a graph index for the imported vector data (referred to as Build), loading the graph index into memory (referred to as Load), querying vector data based on the graph index (referred to as Search), closing the DiskANN object (referred to as Close) and destroying the DiskANN object (referred to as Destroy).

[0063] Among them, creating a DiskANN object means that the DiskANN service node creates a DiskANN object according to the Create request of the client. When the DiskANN object is created, there is no data in it. It is in a dataless state and cannot provide any services to the outside. The Create request of the client is sent to the DiskANN service node through the Index service node. After the DiskANN service node completes the creation of the DiskANN object, it notifies the client through the Index service node.

[0064] In the task of importing vector data for the DiskANN object, the client sends an ImportData request containing vector data to the Index service node, and the Index service temporarily stores the vector data in the ImportData request in the database of the Index service node. The Index service node notifies the client after the data import is completed.

[0065] After the data import task, the client can send a build request to the Index service node. The Index service node executes the Push Data task according to the build request, that is, the Index service node imports the vector data in the database of the Index service node to the DiskANN service node. The DiskANN service node notifies the Index service node after the vector data is stored on the disk to form a file.

[0066] The build task refers to the process by which the DiskANN service node processes the vector data of the imported DiskANN object based on the build request sent by the Index service node, obtains the graph index of the vector data, and saves the vector data and the graph index. After the DiskANN service node completes the build task, it notifies the client through the Index service node.

[0067] The load task refers to the client sending a load request to the DiskANN service node through the Index service node, and the DiskANN service node loads at least part of the graph index of the vector data of the DiskANN object into the memory based on the load request. After the load is completed, the DiskANN service node notifies the client through the Index service node.

[0068] The search task refers to the client sending a vector data query request to the DiskANN service node through the Index service node. The DiskANN service node retrieves the vector data most similar to the vector data to be queried based on the graph index, and returns the retrieved most similar vector data to the client through the Index service node.

[0069] The Close task refers to the client sending a DiskANN object close request to the DiskANN service node through the Index service node, and the DiskANN service node closes the DiskANN object based on the close request. After the close is completed, the DiskANN service node notifies the client through the Index service node.

[0070] The Destroy task refers to the client sending a destruction request of the DiskANN object to the DiskANN service node through the Index service node, and the DiskANN service node destroys the DiskANN object based on the destruction request. After the destruction is completed, the DiskANN service node notifies the client through the Index service node.

[0071] The above process includes three execution entities: the client, the Index service node and the DiskANN service node. The purpose of using the Index service node is to make the DiskANN service node as lightweight as possible. The DiskANN service node only handles the DiskANN core business, and other businesses are outsourced to the Index service node to ensure that the overall service is stable and reliable. Before executing the above process, the Index service node and the DiskANN service node need to make a handshake connection in advance to provide services for subsequent businesses. The above-mentioned Index service node and DiskANN service node can be deployed on different physical machines or on the same physical machine, and the present invention does not limit this.

[0072] Please refer to Figure 2In the related schemes, the intelligent computing center usually uses a DiskANN service node to process the received data processing requests for DiskANN objects. Since the data volume of DiskANN objects is usually large, the processing capacity of a DiskANN service node is limited. If it is necessary to perform data processing of multiple DiskANN objects at the same time, the processing speed is slow and the user experience is poor. Therefore, it is necessary to expand the computing power resources used by the intelligent computing center for DiskANN services to improve the user experience.

[0073] The "distributed file system" described in the embodiments of the present invention refers to the physical storage resources managed by the file system that are not necessarily directly connected to the local node, but are connected to the node (which can be simply understood as a computer) through a computer network; or a complete hierarchical file system formed by combining several different logical disk partitions or volumes. The distributed file system provides a logical tree-shaped file system structure for resources distributed anywhere on the network, making it easier for users to access shared files distributed on the network.

[0074] Please refer to Figure 3 , Figure 3 The structure diagram of the system for expanding computing power resources of an intelligent computing center according to an embodiment of the present invention is as follows. The system for expanding computing power resources of an intelligent computing center includes:

[0075] DiskANN service node cluster, including multiple DiskANN service nodes;

[0076] A distributed file system connected to each DiskANN service node in the DiskANN service node cluster; each DiskANN service node uses the distributed file system to store data of the DiskANN object;

[0077] The proxy service node is connected to each of the DiskANN service nodes.

[0078] Please refer to Figure 4 , Figure 4 The flowchart of the method for expanding computing power resources of an intelligent computing center according to an embodiment of the present invention is as follows:

[0079] Step S1: The proxy service node calculates the hash value of each DiskANN service node in the DiskANN service node cluster, and determines the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; wherein each DiskANN service node uses the same distributed file system to store the data of the DiskANN object;

[0080] Step S2: After receiving the data processing request for the DiskANN object, the proxy service node calculates the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request;

[0081] In the embodiment of the present invention, the data processing request may be sent by the client to the Index service node, and the Index service node forwards the data processing request to the proxy service node.

[0082] In the embodiment of the present invention, if there are multiple Index service nodes, the client sends the data processing request to the designated Index service node, and the remaining Index service nodes are standby nodes.

[0083] Step S3: The proxy service node determines the DiskANN service node for processing the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distributes the data processing request to the determined DiskANN service node for data processing.

[0084] In an embodiment of the present invention, the intelligent computing center provides a DiskANN service node cluster including multiple DiskANN service nodes, replacing a single DiskANN service node in a related solution, for providing DiskANN services, that is, providing more computing resources for the DiskANN service, thereby effectively improving the data processing speed of the DiskANN service.

[0085] In the embodiment of the present invention, optionally, the data processing request may include at least one of the following:

[0086] Push Data request, i.e., a request to import the vector data of the DiskANN object to the DiskANN service node;

[0087] Build request, which is a request to build a graph index for the vector data of the DiskANN object;

[0088] Load request, which is a request to load the graph index of the vector data of the DiskANN object into the memory;

[0089] Search request, that is, a request to query vector data based on the graph index of the vector data of the DiskANN object.

[0090] In the embodiment of the present invention, optionally, the data processing may include at least one of the following:

[0091] Push Data, that is, import the vector data of the DiskANN object to the DiskANN service node;

[0092] Bulid, which is to build a graph index for the vector data of the DiskANN object;

[0093] Load, which loads the graph index of the vector data of the DiskANN object into memory;

[0094] Search, that is, querying vector data based on the graph index of the vector data of the DiskANN object.

[0095] In the embodiment of the present invention, the proxy service node uses a hash algorithm to calculate the hash value of each DiskANN service node in the DiskANN service node cluster. In some embodiments, the hash algorithm may be a consistent hash algorithm. The consistent hash algorithm may map the entire hash space into a virtual ring (also called a hash ring), such as Figure 5 As shown, each DiskANN service node is mapped to the hash ring according to the calculated hash value of each DiskANN service node. Figure 5 In the example, there are five DiskANN service nodes (A, B, C, D, E), which are mapped to different positions of the hash ring. In the embodiment of the present invention, optionally, the value range of the hash space can be 0 to 2^32-1.

[0096] After receiving the data processing request for the DiskANN object, the proxy service node calculates the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request, and sends the data processing request (such as Figure 5 The data processing request 1) is mapped to the hash ring, and the first DiskANN service node encountered is searched clockwise along the hash ring (such as Figure 5 C) in the figure serves as the DiskANN service node that handles the data processing request.

[0097] A fixed number of DiskANN service nodes can handle a certain amount of data processing tasks, but when the data processing tasks suddenly increase, it is still difficult to handle. To solve the above problem, please refer to Figure 6 Another embodiment of the present invention provides a method for expanding computing power resources of an intelligent computing center, the method for expanding computing power resources of an intelligent computing center comprising:

[0098] Steps S1 to S3, see Figure 4 Description of the illustrated embodiment.

[0099] Step S4: when a new DiskANN service node is added to the DiskANN service node cluster, the proxy service node calculates the hash value of the new DiskANN service node, determines the position of the new DiskANN service node in the hash space according to the hash value of the new DiskANN service node, determines the next DiskANN service node of the new DiskANN service node in the hash space, and records the corresponding relationship between the next DiskANN service node and the identifier of the DiskANN object that is processing data on the next DiskANN service node;

[0100] Step S5: After receiving the data processing request for the DiskANN object, the proxy service node obtains the identifier of the DiskANN object in the currently received data processing request, and determines whether the recorded corresponding relationship contains the identifier of the DiskANN object;

[0101] Step S6: When the recorded corresponding relationship includes the identifier of the DiskANN object, the proxy service node distributes the currently received data processing request to the corresponding DiskANN service node for data processing according to the corresponding relationship;

[0102] Step S7: When the recorded corresponding relationship does not contain the identifier of the DiskANN object, execute steps S2 and S3.

[0103] like Figure 7 As shown in FIG. 1 , assuming that the entire hash space is mapped into a hash ring, when a new DiskANN service node is added, the only DiskANN service node affected is the next DiskANN service node after the new DiskANN service node (clockwise), and other DiskANN service nodes are not affected. The reason is that if DiskANN service node C is processing a Push data task of a DiskANN object, and a DiskANN service node F is added between DiskANN service nodes C and B, then if a Push data request for the DiskANN object is received again (such as Figure 7 The data processing request 2 in the DiskANN object is located between B and F. At this time, if you search in a clockwise direction, the first DiskANN service node you encounter (such as Figure 7F) in the figure is used as the DiskANN service node that processes the data processing request, which is incorrect because the Push data request of the DiskANN object is being executed on the DiskANN service node C, and the Push data request of the DiskANN object needs to be distributed to the DiskANN service node C. In order to ensure that the Push data request of the DiskANN object is distributed to the DiskANN service node C, after adding the DiskANN service node F, it is necessary to record the correspondence between the DiskANN service node C and the DiskANN object being processed on it. When the data processing request of the DiskANN object is received again, the data processing request of the DiskANN object can be distributed to the DiskANN service node C through the above-recorded correspondence.

[0104] In an embodiment of the present invention, the number of DiskANN service nodes in a DiskANN service node cluster can be expanded as needed, and during expansion, the correspondence between the next DiskANN service node of the newly added DiskANN service node and the identifier of the DiskANN object that is performing data processing on the next DiskANN service node is recorded; after receiving a data processing request for the DiskANN object, the data processing request is distributed to the corresponding DiskANN service node for data processing according to the correspondence, so that the task being processed by the next DiskANN service node is not affected, thereby achieving smooth expansion of computing resources.

[0105] In the embodiment of the present invention, optionally, the method may further include:

[0106] Step S9: After the execution of the data processing request corresponding to the DiskANN is completed, the proxy service node deletes the recorded corresponding relationship.

[0107] For example, after the PushData task or the Build task of the DiskANN object on the DiskANN service node C is processed, the corresponding relationship between the DiskANN service node C and the DiskANN object may be deleted to release storage space.

[0108] In some embodiments, optionally, step S4 includes:

[0109] Step S41: the monitoring service node monitors the monitoring indicators of each DiskANN service node in the DiskANN service node cluster, and determines whether a new DiskANN service node needs to be added according to the monitoring indicators of each DiskANN service node;

[0110] In the embodiment of the present invention, optionally, the monitoring indicator may include at least one of the following: CPU, memory, number of DiskANN objects, and number of vector data of each DiskANN object of the DiskANN service node.

[0111] Step S42: when a new DiskANN service node needs to be added, the monitoring service node adds the new DiskANN service node to the DiskANN service node cluster;

[0112] Step S43: the monitoring service node notifies the proxy service node of the information of the newly added DiskANN service node.

[0113] In some embodiments, optionally, the monitoring service node and the proxy service node may be the same node.

[0114] In some embodiments, optionally, the method further includes:

[0115] Step S0: the proxy service node divides each DiskANN service node in the DiskANN service node cluster into N groups, wherein the DiskANN service nodes in each group are used to perform different types of data processing, and N is an integer greater than or equal to 2;

[0116] Wherein, the step S3 comprises:

[0117] Step S31: the proxy service node distributes the data processing request to the DiskANN service node of the corresponding group for data processing according to the type of the received data processing request.

[0118] It should be noted that after the DiskANN service nodes in the DiskANN service node cluster are divided into N groups, each group corresponds to a hash space (such as a hash ring). After receiving a data processing request, according to the type of the data processing request (such as a Push Data request, a Build request, a Load request, and a Search request), the corresponding DiskANN service node is searched in the hash ring of the group corresponding to the type of the data processing request.

[0119] In some embodiments, optionally, the step S0 includes:

[0120] Step S01: The proxy service node divides each DiskANN service node in the DiskANN service node cluster into two groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node (i.e., Push Data), and building a graph index for the vector data of the DiskANN object (i.e., Build); the data processing corresponding to the second group includes: loading the graph index of the vector data of the DiskANN object into the memory (i.e., Load), and performing vector data query based on the graph index of the vector data of the DiskANN object (i.e., Search).

[0121] In this embodiment, the DiskANN service nodes are divided into two groups, one group is used to execute Push Data and Build, and the other group is used to execute Load and Search. The group used to execute Push Data and Build can also be called a training group, and the group used to execute Load and Search can also be called an inference group.

[0122] At this time, there are two hash rings, Push Data request and Bulid request correspond to one hash ring (such as hash ring 1), Load request and Search request correspond to one hash ring (such as hash ring 2). After receiving a Push Data request or a Bulid request, the DiskANN service node corresponding to the hash value of the Push Data request or the Bulid request is searched in hash ring 1. After receiving a Load request or a Search request, the DiskANN service node corresponding to the hash value of the Load request or the Search request is searched in hash ring 2.

[0123] In some embodiments, optionally, the step S0 includes:

[0124] Step S02: The proxy service node divides each DiskANN service node in the DiskANN service node cluster into three groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node (i.e., Push Data); the data processing corresponding to the second group includes: building a graph index for the vector data of the DiskANN object (i.e., Build); the data processing corresponding to the third group includes: loading the graph index of the vector data of the DiskANN object into the memory (i.e., Load), and performing vector data query based on the graph index of the vector data of the DiskANN object (i.e., Search).

[0125] In this embodiment, the DiskANN service nodes are divided into three groups, one group is used to execute Push Data, one group is used to execute Build, and one group is used to execute Load and Search.

[0126] At this time, there are three hash rings in total, a Push Data request corresponds to a hash ring (such as hash ring 1), a Build request corresponds to a hash ring (such as hash ring 2, and a Load request and a Search request correspond to a hash ring (such as hash ring 3). After receiving a Push Data request, the DiskANN service node corresponding to the hash value of the Push Data request is searched in hash ring 1. After receiving a Build request, the DiskANN service node corresponding to the hash value of the Build request is searched in hash ring 2. After receiving a Load request or a Search request, the DiskANN service node corresponding to the hash value of the Load request or the Search request is searched in hash ring 3.

[0127] In some embodiments, optionally, the method further comprises:

[0128] Step S8: After the data processing performed by the DiskANN service nodes in the first group is completed, the proxy service node divides the DiskANN service nodes in the first group that have completed the data processing into a second group, wherein the first group and the second group are both one group among the N groups.

[0129] For example, the training phase usually consumes more resources, so the idle DiskANN service nodes of the inference group can be divided into the training group. When the training group is trained, the idle DiskANN service nodes can also be divided into the inference group.

[0130] In the embodiment of the present invention, DiskANN service nodes in different groups can be time-division multiplexed, thereby saving computing resources.

[0131] The above method is illustrated below with reference to different data processing requests.

[0132] Training process: The client sends a Bulid request for the DiskANN object to the Index service node, the Index service node initiates a Push Data request for the DiskANN object to the proxy service node, the proxy service node calculates the hash value of the Push Data request, and forwards the Push Data request to the corresponding DiskANN service node according to the hash value of the Push Data request, and the DiskANN service node forms a file with the data on the disk and sends it to the distributed file system. At this time, the Index service node may initiate multiple Push Data requests for the DiskANN object until the Index service node has sent all the vector data of the DiskANN object (in an embodiment of the present invention, the Index service node may carry indication information in the Push Data request sent to indicate whether the vector data has been sent). Then, the Index service node initiates a Bulid request of the DiskANN object to the proxy service node. The proxy service node calculates the hash value of the Bulid request and forwards the Bulid request to the corresponding DiskANN service node according to the hash value of the Bulid request. The DiskANN service node establishes a graph index for the vector data of the DiskANN object stored in the distributed file system and stores the established graph index in the distributed file system.

[0133] Reasoning process: The client sends a Load request for the DiskANN object to the Index service node. The Index service node initiates the Load request for the DiskANN object to the proxy service node. The proxy service node calculates the hash value of the Load request and forwards the Load request to the corresponding DiskANN service node based on the hash value of the Load request. The DiskANN service node loads the graph index from the distributed file system into the memory. Then, the Index service node initiates a Search request for the DiskANN object to the proxy service node. The proxy service node calculates the hash value of the Search request and forwards the Search request to the corresponding DiskANN service node based on the hash value of the Search request. The DiskANN service node searches for vector data based on the graph index stored in the memory and the graph index stored in the distributed file system.

[0134] In the embodiment of the present invention, optionally, the method may further include:

[0135] Step S10: When the monitoring service node monitors that all DiskANN objects in the first DiskANN service node have completed data processing, the first DiskANN service node is taken offline.

[0136] For example, during the training phase: if all DiskANN objects on a DiskANN service node have completed building, they can be taken offline, that is, the DiskANN service is stopped and the DiskANN service node resources are recycled. Figure 8 As shown, if the DiskANN service node C goes offline, the data processing request 3 between B and C can be forwarded to D. If the DiskANN service node C exits abnormally, all unfinished Build tasks on node C are lost and need to be restarted.

[0137] In the inference phase: If all DiskANN objects on a DiskANN service node have completed loading and there is no Search operation for a long time, it can be taken offline, that is, stop the DiskANN service and recycle the DiskANN service node resources.

[0138] The following is a brief description of the working process of the distributed file system.

[0139] After receiving a data import request for a DiskANN object, the DiskANN service node writes the imported vector data into the local cache of the distributed file system, and the distributed file system performs object storage on the local cached vector data; the data import request may be a Push Data request. The data import request includes the vector data to be imported into the DiskANN object.

[0140] After receiving the construction request for the DiskANN object, the DiskANN service node reads the vector data of the DiskANN object from the distributed file system and constructs a graph index for the vector data; the construction request may be a Build request, and the construction request includes an identifier of the DiskANN object for which a graph index needs to be constructed.

[0141] The DiskANN service node writes the constructed graph index into the local cache of the distributed file system, and the distributed file system performs object storage on the locally cached graph index.

[0142] After receiving the load request for the DiskANN object, the DiskANN service node reads at least part of the graph index of the DiskANN object from the distributed file system and loads it into the memory. In an embodiment of the present invention, a sequential read or a random read method may be used when reading the graph index. The load request may be a Load request.

[0143] After receiving the query request, the DiskANN service node queries the vector data from the distributed file system based on the graph index stored in the memory and the graph index stored in the distributed file system to obtain a vector data query result. The query request may be a Search request.

[0144] In the embodiment of the present invention, since the data that the DiskANN service node needs to store (including vector data and the graph index constructed for the vector data) only needs to be written once when the file is formed on the disk, but it needs to be read multiple times when executing the vector data query, that is, it has the characteristics of only writing once but may need to be read multiple times, which matches the characteristics of the object storage of the distributed file system, and thus the distributed file system is applied to the DiskANN service. At the same time, when the DiskANN service writes data to the distributed file system or reads data from the distributed file system, it writes the data into the local cache of the distributed file system or reads the data from the local cache. The read and write speed of the cache is much faster than that of the disk, so the data read and write speed of the DiskANN service can be effectively improved. In other words, the distributed file system is used to replace the local disk in the relevant scheme as the data storage method of the DiskANN service, which improves the computing power resource configuration of the computing power computing center for the DiskANN service (the local cache of the distributed file system is used as an expanded computing power resource). Furthermore, the distributed file system can store multiple copies of data files and multiple copies of metadata, so that even if an object storage node fails, the data file will not be lost.

[0145] Please refer again Figure 3 The embodiment of the present invention further provides a system for expanding computing power resources of an intelligent computing center, including:

[0146] DiskANN service node cluster, including multiple DiskANN service nodes;

[0147] A distributed file system connected to each DiskANN service node in the DiskANN service node cluster; each DiskANN service node uses the distributed file system to store data of the DiskANN object;

[0148] The proxy service node is connected to each DiskANN service node, and is used to calculate the hash value of each DiskANN service node, and determine the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; after receiving a data processing request for a DiskANN object, calculate the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request; determine the DiskANN service node used to process the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distribute the data processing request to the determined DiskANN service node for data processing.

[0149] In an embodiment of the present invention, the intelligent computing center provides a DiskANN service node cluster including multiple DiskANN service nodes, replacing a single DiskANN service node in a related solution, that is, providing more computing resources (DiskANN service nodes), thereby effectively improving the data processing speed of the DiskANN service.

[0150] Optionally, the proxy service node is also used to calculate the hash value of the newly added DiskANN service node when a DiskANN service node is added to the DiskANN service node cluster, determine the position of the newly added DiskANN service node in the hash space according to the hash value of the newly added DiskANN service node, and determine the next DiskANN service node of the newly added DiskANN service node in the hash space, and record the correspondence between the next DiskANN service node and the identifier of the DiskANN object that is performing data processing on the next DiskANN service node; after receiving a data processing request for the DiskANN object, obtain the identifier of the DiskANN object in the currently received data processing request, and determine the recorded corresponding relationship. whether it contains the identifier of the DiskANN object; when the recorded corresponding relationship contains the identifier of the DiskANN object, the proxy service node distributes the currently received data processing request to the corresponding DiskANN service node for data processing according to the corresponding relationship; when the recorded corresponding relationship does not contain the identifier of the DiskANN object, according to the identifier of the DiskANN object carried in the currently received data processing request, calculate the hash value of the currently received data processing request; according to the hash value of the currently received data processing request and the hash value of the DiskANN service node, determine the DiskANN service node for processing the currently received data processing request, and distribute the currently received data processing request to the determined DiskANN service node for data processing.

[0151] Optionally, the system for expanding computing power resources of the intelligent computing center further includes:

[0152] A monitoring service node is used to monitor the monitoring indicators of each DiskANN service node in the DiskANN service node cluster, and determine whether a new DiskANN service node needs to be added according to the monitoring indicators of each DiskANN service node; when a new DiskANN service node needs to be added, the new DiskANN service node is added to the DiskANN service node cluster; and the information of the new DiskANN service node is notified to the proxy service node.

[0153] Optionally, the proxy service node is also used to divide each DiskANN service node in the DiskANN service node cluster into N groups, wherein the DiskANN service nodes in each group are used to perform different types of data processing, and N is an integer greater than or equal to 2; according to the type of the received data processing request, the data processing request is distributed to the DiskANN service node of the corresponding group for data processing.

[0154] Optionally, the proxy service node is further used to divide each DiskANN service node in the DiskANN service node cluster into two groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node, and building a graph index for the vector data of the DiskANN object, and the data processing corresponding to the second group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object;

[0155] or,

[0156] Optionally, the proxy service node is also used to divide each DiskANN service node in the DiskANN service node cluster into three groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node; the data processing corresponding to the second group includes: building a graph index for the vector data of the DiskANN object; the data processing corresponding to the third group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object.

[0157] Optionally, the proxy service node is further used to divide the DiskANN service nodes in the first group that have completed data processing into a second group after the data processing performed by the DiskANN service nodes in the first group is completed, wherein the first group and the second group are each one of the N groups.

[0158] Please refer to Fig. 9 The embodiment of the present invention further provides a server 20, including a processor 21, a memory 22, and a computer program stored in the memory 22 and executable on the processor 21. When the computer program is executed by the processor 21, each process of the embodiment of the method for expanding the computing power resources of the above-mentioned intelligent computing center is implemented, and the same technical effect can be achieved. To avoid repetition, it will not be described here.

[0159] The embodiment of the present invention also provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, each process of the above-mentioned method for expanding computing power resources of an intelligent computing center is implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here. The computer-readable storage medium is, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0160] The present application also provides a computer program product, including computer instructions, which, when executed by a processor, implement the above Figure 4 The various processes of the method embodiment shown can achieve the same technical effect, and will not be described again here to avoid repetition.

[0161] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0162] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present invention.

[0163] The embodiments of the present invention are described above in conjunction with the accompanying drawings, but the present invention is not limited to the above-mentioned specific implementation modes, which are merely illustrative rather than restrictive. Under the guidance of the present invention, ordinary technicians in this field can also make many forms without departing from the scope of protection of the present invention and the claims, all of which are within the protection of the present invention.

Claims

1. A method for expanding computing power resources of an intelligent computing center, characterized in that: include: Step S1: The proxy service node calculates the hash value of each DiskANN service node in the DiskANN service node cluster, and determines the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; wherein each DiskANN service node uses the same distributed file system to store the data of the DiskANN object; Step S2: After receiving the data processing request for the DiskANN object, the proxy service node calculates the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request; Step S3: The proxy service node determines the DiskANN service node for processing the data processing request according to the hash value of the data processing request and the hash value of the DiskANN service node, and distributes the data processing request to the determined DiskANN service node for data processing.

2. The method according to claim 1, characterized in that Also includes: Step S4: when a new DiskANN service node is added to the DiskANN service node cluster, the proxy service node calculates the hash value of the new DiskANN service node, determines the position of the new DiskANN service node in the hash space according to the hash value of the new DiskANN service node, determines the next DiskANN service node of the new DiskANN service node in the hash space, and records the corresponding relationship between the next DiskANN service node and the identifier of the DiskANN object that is processing data on the next DiskANN service node; Step S5: After receiving the data processing request for the DiskANN object, the proxy service node obtains the identifier of the DiskANN object in the currently received data processing request, and determines whether the recorded corresponding relationship contains the identifier of the DiskANN object; Step S6: When the recorded corresponding relationship includes the identifier of the DiskANN object, the proxy service node distributes the currently received data processing request to the corresponding DiskANN service node for data processing according to the corresponding relationship; Step S7: When the recorded corresponding relationship does not contain the identifier of the DiskANN object, execute steps S2 and S3.

3. The method according to claim 2, characterized in that The step S4 comprises: Step S41: the monitoring service node monitors the monitoring indicators of each DiskANN service node in the DiskANN service node cluster, and determines whether a new DiskANN service node needs to be added according to the monitoring indicators of each DiskANN service node; Step S42: when a new DiskANN service node needs to be added, the monitoring service node adds the new DiskANN service node to the DiskANN service node cluster; Step S43: the monitoring service node notifies the proxy service node of the information of the newly added DiskANN service node.

4. The method according to claim 1, characterized in that Also includes: Step S0: the proxy service node divides each DiskANN service node in the DiskANN service node cluster into N groups, wherein the DiskANN service nodes in each group are used to perform different types of data processing, and N is an integer greater than or equal to 2; Wherein, the step S3 comprises: Step S31: the proxy service node distributes the data processing request to the DiskANN service node of the corresponding group for data processing according to the type of the received data processing request.

5. The method according to claim 4, characterized in that The step S0 comprises: Step S01: the proxy service node divides each DiskANN service node in the DiskANN service node cluster into two groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node, and constructing a graph index for the vector data of the DiskANN object, and the data processing corresponding to the second group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object; or, Step S02: The proxy service node divides each DiskANN service node in the DiskANN service node cluster into three groups, wherein the data processing corresponding to the first group includes: importing the vector data of the DiskANN object to the DiskANN service node; the data processing corresponding to the second group includes: building a graph index for the vector data of the DiskANN object; the data processing corresponding to the third group includes: loading the graph index of the vector data of the DiskANN object into the memory, and performing vector data query based on the graph index of the vector data of the DiskANN object.

6. The method according to claim 4 or 5, characterized in that Also includes: Step S8: After the data processing performed by the DiskANN service nodes in the first group is completed, the proxy service node divides the DiskANN service nodes in the first group that have completed the data processing into a second group, wherein the first group and the second group are both one group among the N groups.

7. A system for expanding computing power resources of an intelligent computing center, characterized in that: include: DiskANN service node cluster, including multiple DiskANN service nodes; A distributed file system connected to each DiskANN service node in the DiskANN service node cluster; each DiskANN service node uses the distributed file system to store data of the DiskANN object; A proxy service node connected to each DiskANN service node, used to calculate the hash value of each DiskANN service node, and determine the position of the DiskANN service node in the hash space according to the hash value of the DiskANN service node; after receiving a data processing request for a DiskANN object, calculate the hash value of the data processing request according to the identifier of the DiskANN object carried in the data processing request; According to the hash value of the data processing request and the hash value of the DiskANN service node, a DiskANN service node for processing the data processing request is determined, and the data processing request is distributed to the determined DiskANN service node for data processing.

8. A server, characterized in that: include: A processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, the steps of the method for expanding computing power resources of an intelligent computing center as described in any one of claims 1 to 6 are implemented.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps of the method for expanding computing power resources of an intelligent computing center as described in any one of claims 1 to 6.

10. A computer program product, characterized in that It includes computer instructions, which, when executed by a processor, implement the steps of the method for expanding the computing power resources of an intelligent computing center as described in any one of claims 1 to 6.

Citation Information

Cited By

  • Computing power center capacity expansion method based on distributed storage and mixed data archiving

    CN121300907A