Data access method, unloading card, system and equipment based on cloud storage service

Through the data access method of establishing a link between cloud storage servers of cloud storage services, the problem of high memory resource consumption during data interaction between processes in traditional distributed storage systems is solved, and more efficient and accurate data access is achieved.

CN119440868APending Publication Date: 2025-02-14HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311687305.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-01
Filing Date
2023-12-08
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

In traditional distributed storage systems, data interaction between processes consumes more memory resources, affecting the effectiveness of data access.

Method used

A cloud storage service-based data access method is adopted to establish a link between at least two cloud storage servers by unloading the card, and realize the direct transmission of data access requests and reduce the consumption of memory resources.

Benefits of technology

By reducing the consumption of memory resources, the effectiveness and accuracy of data access are improved and the delay in data access is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440868A_ABST
    Figure CN119440868A_ABST
Patent Text Reader

Abstract

The invention discloses a data access method based on cloud storage service, an unloading card, a system and equipment, and relates to the technical field of Internet. According to the invention, less memory resources can be consumed, and the validity of data access can be improved. The method comprises the steps that firstly, an unloading card receives a data access request sent by a client, and the data access request comprises an identifier of a source service thread, an identifier of a target storage area in a second cloud storage server and an identifier of a target object; the data access request is used for indicating to execute a preset operation on the target object in the target storage area. Then the unload card determines a link between the source service thread and the target storage area from an identifier connection relationship according to the identifier of the source service thread and the identifier of the target storage area; and finally, the unloading card sends the data access request to the second cloud storage server through a link between the source service thread and the target storage area.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the priority of the Chinese patent application filed with the State Intellectual Property Office on August 1, 2023, with application number 202310960462.7 and application name “A method, device and other equipment for message processing”, all contents of which are incorporated by reference in this application. Technical Field

[0002] The present application relates to the field of Internet technology, and in particular to a data access method, offloading card, system and device based on cloud storage service. Background Art

[0003] In a traditional distributed storage system, data can be exchanged between different storage nodes (or processes). Specifically, when a process needs to access other processes, the service module in the process can send an access request to the network module in the process, and then the network module sends the access request to the network module in other processes, so that the service modules in other processes can receive the access request and perform operations related to the access request in the service modules in other processes.

[0004] However, in the above method, the business module corresponds to the network module one by one, which results in more memory resources being consumed when data is interacted between different processes, thus affecting the effectiveness of data access. Summary of the invention

[0005] The present application provides a data access method, offload card, system and device based on cloud storage service, which solves the technical problem of consuming a large amount of memory resources when data is interacted between processes.

[0006] In a first aspect, a data access method based on a cloud storage service is provided, wherein the cloud storage service is run on at least two cloud storage servers located in at least one cloud data center in one of multiple regions, an unloading card is inserted in a first cloud storage server among the at least two cloud storage servers and a client is installed, and the method is executed by the unloading card. The method may include: first, the unloading card receives a data access request sent by the client, the data access request includes an identifier of a source service thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object, the source service thread is any one of the at least one service thread included in the client, the data access request is used to indicate to perform a preset operation on the target object in the target storage area, the preset operation includes a combination of one or more of the following operations: a read operation or a write operation, and the second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers. The unloading card then determines the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, the identification connection relationship including multiple identification combinations and link connection information corresponding to each identification combination in the multiple identification combinations, wherein the identification combination includes a business thread identification and a storage area identification; finally, the unloading card sends the data access request to the second cloud storage server through the link between the source business thread and the target storage area.

[0007] It can be understood that the method described in the first aspect can be executed by a computing device, which can be a terminal, an apparatus including a terminal, or a chip in a terminal, or the computing device can also be a network device, an apparatus including a network device, or a chip in a network device. For ease of understanding, the following description will be given by taking the execution of a computing device as an example.

[0008] In the present application, an unloading card can correspond to at least one business thread, and the client (specifically, the source business thread) can send the data access request to the unloading card after receiving the data access request. Since the data access request includes the identifier of the source business thread, the identifier of the target storage area in the second cloud storage server, and the identifier of the target object, the unloading card can determine the link between the source business thread and the target storage area from the identifier connection relationship according to the identifier of the source business thread and the identifier of the target storage area. And since the link is the only link for data access from the source business thread to the target storage area, the unloading card can send the data access request to the second cloud storage server through the link, so that the data in the target storage area can be accessed, that is, the process of performing a preset operation on the target object in the target storage area. In the present application, since the unloading card only needs to store a link between each business thread in at least one business thread and each storage area in the second cloud storage server, the memory resources consumed (or occupied) are limited, which can improve the effectiveness of data access.

[0009] Optionally, the above-mentioned unloading card determines the link between the source business thread and the target storage area from the identifier connection relationship according to the identifier of the source business thread and the identifier of the target storage area, specifically including: querying the identifier connection relationship based on the identifier of the source business thread and the identifier of the target storage area, and determining a target identifier combination that matches the identifier of the source business thread and the identifier of the target storage area from the identifier connection relationship; determining the link connection information corresponding to the target identifier combination as the target link connection information; and determining the link represented by the target link connection information as the link between the source business thread and the target storage area.

[0010] In the present application, since the target link connection information is the link connection information corresponding to the target identification combination, and the target identification combination includes the identification of the source business thread and the identification of the target storage area, the target link connection information can accurately and effectively reflect the link connection relationship between the source business thread and the target storage area. In this way, the unloading card determines the link represented by the target link connection information as the link between the source business thread and the target storage area, that is, the link between each business thread and each storage area can be accurately and effectively determined, thereby improving the accuracy of data access.

[0011] Optionally, one link connection information is a QP pair.

[0012] In the present application, one link connection information is a QP pair, that is, the link between each service thread and each storage area can be characterized based on the QP pair, so that the offload card can accurately and effectively determine the link between the source service thread and the target storage area based on the QP pair representing the source service thread and the target storage area. In this way, the effectiveness of data access can be further improved.

[0013] Optionally, the above-mentioned offload card includes at least one cache queue, the data access request is a request included in a target cache queue, and the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

[0014] In the present application, for at least one service thread, one service thread corresponds to one cache queue. Data access requests sent by different service threads are requests included in the cache queues corresponding to different service threads. Data access requests sent by different service threads can be added to the corresponding cache queues, and the unloading card can obtain the corresponding service threads from the different cache queues. Each data access request can be allocated and arranged in an orderly manner, thereby improving the orderliness of data access.

[0015] Optionally, the data access method further includes: when it is detected that the source service thread is interrupted, performing a reconstruction operation on the source service thread.

[0016] In this application, when the source service thread is detected to be interrupted, it indicates that the source service thread is in an abnormal state. At this time, the unloading card performs a reconstruction operation on the source service thread, which can ensure that the source service thread continues to be in a normal state, thereby further improving the effectiveness of data access.

[0017] Optionally, the data access method also includes: the offload card receives an access success response sent by the second cloud storage server, the access success response is used to notify the offload card that the preset operation is successfully performed on the target object in the target storage area; the offload card sends the access success response to the client.

[0018] In the present application, after receiving the access success response sent by the unloading card, the client (specifically, the source service thread) can determine that the unloading card has successfully performed the preset operation on the target object in the target storage area. Before and after the unloading card accesses the data in the target storage area, the client (or the source service thread) only sends and receives messages through the unloading card, without the need to perceive the connection relationship between each service thread and each storage area, and can quickly access the relevant service data, thereby reducing the delay generated during the data access process.

[0019] Optionally, the above-mentioned unloading card includes at least one cache queue. Before determining the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, the data access method also includes: adding the data access request to the target cache queue, which is the cache queue corresponding to the source business thread in the at least one cache queue.

[0020] In the present application, after receiving the data access request sent by the client, the unload card can add the data access request to the target cache queue corresponding to the source business thread, thereby ensuring that the data access request sent by each business thread can be added to the corresponding cache queue, and each data access request can be effectively cached, thereby improving the effectiveness and orderliness of data access.

[0021] Optionally, the above-mentioned determining the link between the source business thread and the target storage area from the identification connection relationship based on the identification of the source business thread and the identification of the target storage area specifically includes: reading the data access request from the target cache queue, and determining the link from the identification connection relationship based on the identification of the source business thread and the identification of the target storage area included in the read data access request.

[0022] In the present application, each service thread can follow single-threaded polling, specifically, a service thread always sends the data access request it obtains to the unloading card (specifically, the cache queue corresponding to the service thread in the unloading card). Then the unloading card can read the data access request corresponding to each service thread from the cache queue corresponding to each service thread, thereby realizing the access process of related data. In this way, the unloading card and at least one service thread can be combined to obtain an RTC model, which can reduce the end-to-end delay in the data access process.

[0023] In a second aspect, an offload card based on a cloud storage service is provided. The cloud storage service runs on at least two cloud storage servers located in at least one cloud data center in one of multiple regions. The offload card is inserted in a first cloud storage server among the at least two cloud storage servers and a client is installed. The offload card includes a receiving module, a determining module and a sending module. The receiving module is used to receive a data access request sent by the client. The data access request includes an identifier of a source business thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object. The source business thread is any one of the at least one business thread included in the client. The data access request is used to indicate that an operation is performed on the target object in the target storage area. A preset operation, the preset operation includes one or more of the following operations in combination: a read operation or a write operation, the second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers; the determination module is used to determine the link between the source business thread and the target storage area from an identification connection relationship according to the identification of the source business thread and the identification of the target storage area, the identification connection relationship includes multiple identification combinations and link connection information corresponding to each identification combination in the multiple identification combinations, wherein the identification combination includes a business thread identification and a storage area identification; the sending module is used to send the data access request to the second cloud storage server through the link between the source business thread and the target storage area.

[0024] Optionally, the determination module is specifically used to query the identification connection relationship based on the identification of the source business thread and the identification of the target storage area, and determine the target identification combination that matches the identification of the source business thread and the identification of the target storage area from the identification connection relationship; the determination module is also specifically used to determine the link connection information corresponding to the target identification combination as the target link connection information; the determination module is also specifically used to determine the link represented by the target link connection information as the link between the source business thread and the target storage area.

[0025] Optionally, one link connection information is a QP pair.

[0026] Optionally, the above-mentioned offload card further includes at least one cache queue, the data access request is a request included in a target cache queue, and the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

[0027] Optionally, the above-mentioned unloading card further includes a reconstruction module; the reconstruction module is used to perform a reconstruction operation on the source service thread when it is detected that the source service thread is interrupted.

[0028] Optionally, the receiving module is also used to receive an access success response sent by the second cloud storage server, and the access success response is used to notify the unloading card that the preset operation on the target object in the target storage area has been successfully performed; the sending module is also used to send the access success response to the client.

[0029] Optionally, the above-mentioned unloading card also includes an adding module; the adding module is used to add the data access request to a target cache queue, and the target cache queue is a cache queue corresponding to the source service thread in the at least one cache queue.

[0030] Optionally, the above-mentioned unloading card also includes a reading module; the reading module is used to read the data access request from the target cache queue; the determination module is specifically used to determine the link from the identification connection relationship based on the identification of the source business thread included in the read data access request and the identification of the target storage area.

[0031] In addition, the technical effect of the unloading card described in the second aspect can refer to the technical effect of the method described in the first aspect, and will not be repeated here.

[0032] According to a third aspect, a data access system based on a cloud storage service is provided, wherein the cloud storage service runs on at least two cloud storage servers located in at least one cloud data center in one of multiple regions, and the data access system includes the at least two cloud storage servers, wherein an offload card is inserted in a first cloud storage server of the at least two cloud storage servers and a client is installed thereon; the client sends a data access request to the offload card, wherein the data access request includes an identifier of a source business thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object, wherein the source business thread is any one of the at least one business thread included in the client, and the data access request is used to indicate an offload request to the target object in the target storage area. The method comprises the steps of: performing a preset operation, wherein the preset operation includes one or more of the following operations: a read operation or a write operation, wherein the second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers; the unloading card determines a link between the source business thread and the target storage area from an identifier connection relationship according to an identifier of the source business thread and an identifier of the target storage area, and sends the data access request to the second cloud storage server through the link between the source business thread and the target storage area, wherein the identifier connection relationship includes multiple identifier combinations and link connection information corresponding to each identifier combination in the multiple identifier combinations, wherein the identifier combination includes a business thread identifier and a storage area identifier.

[0033] In addition, the technical effects of the data access system described in the third aspect can refer to the technical effects of the method described in the first aspect, and will not be repeated here.

[0034] In a fourth aspect, a data access device is provided. The data access device includes: a module for executing the method described in the first aspect, such as a transceiver module and a processing module. For example, the transceiver module is used to execute the transceiver function of the data access device, and the processing module is used to execute functions of the data access device other than the transceiver function.

[0035] Optionally, the transceiver module may include a sending module and a receiving module, wherein the sending module is used to implement the sending function of the unloading card described in the second aspect, and the receiving module is used to implement the receiving function of the unloading card described in the second aspect.

[0036] Optionally, the data access device described in the fourth aspect may further include a storage module, wherein the storage module stores a program or instruction. When the processing module executes the program or instruction, the data access device may execute the method described in the first aspect.

[0037] It can be understood that the data access device described in the fourth aspect can be a terminal or a network device, or a chip (system) or other parts or components that can be set in a terminal or a network device, or a device that includes a terminal or a network device, and this application does not limit this.

[0038] In addition, the technical effects of the data access device described in the fourth aspect can refer to the technical effects of the other aspects mentioned above, and will not be repeated here.

[0039] In a fifth aspect, a data access device is provided, wherein the data access device comprises: a processor, wherein the processor is configured to execute the method described in the first aspect.

[0040] In a possible design solution, the data access device described in the fifth aspect may further include a transceiver. The transceiver may be a transceiver circuit or an interface circuit. The transceiver may be used for the data access device described in the fifth aspect to communicate with other devices.

[0041] In a possible design, the data access device described in the fifth aspect may further include a memory. The memory may be integrated with the processor or may be separately provided. The memory may be used to store the computer program and / or data involved in the method described in the first aspect.

[0042] In an embodiment of the present application, the communication device described in the fifth aspect may be the terminal or network device described in the first aspect, or a chip (system) or other parts or components that may be set in the terminal or network device, or a device that includes the terminal or network device.

[0043] In addition, the technical effects of the data access device described in the fifth aspect can refer to the technical effects of the method described in the first aspect, and will not be repeated here.

[0044] In a sixth aspect, a data access device is provided. The communication device comprises: a processor, the processor is coupled to a memory, and the processor is used to execute a computer program stored in the memory, so that the data access device executes the method described in the first aspect.

[0045] In a possible design solution, the data access device described in the sixth aspect may further include a transceiver. The transceiver may be a transceiver circuit or an interface circuit. The transceiver may be used for the data access device described in the sixth aspect to communicate with other devices.

[0046] In an embodiment of the present application, the data access device described in the sixth aspect may be the terminal or network device described in the first aspect, or a chip (system) or other parts or components that may be set in the terminal or network device, or a device that includes the terminal or network device.

[0047] In addition, the technical effects of the data access device described in the sixth aspect can refer to the technical effects of the method described in the first aspect, and will not be repeated here.

[0048] In a seventh aspect, a data access device is provided, comprising: a processor and a memory; the memory is used to store a computer program, and when the processor executes the computer program, the data access device executes the method described in the first aspect.

[0049] In a possible design solution, the data access device described in the seventh aspect may further include a transceiver. The transceiver may be a transceiver circuit or an interface circuit. The transceiver may be used for the data access device described in the seventh aspect to communicate with other devices.

[0050] In an embodiment of the present application, the data access device described in the seventh aspect may be the terminal or network device described in the first aspect, or a chip (system) or other parts or components that may be set in the terminal or network device, or a device that includes the terminal or network device.

[0051] In addition, the technical effects of the data access device described in the seventh aspect can refer to the technical effects of the method described in the first aspect, and will not be repeated here.

[0052] In an eighth aspect, a computing device cluster is provided, comprising at least one computing device, each computing device comprising a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method described in the first aspect.

[0053] In a ninth aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computing device cluster, the computing device cluster executes the method described in the first aspect.

[0054] In a tenth aspect, a computer-readable storage medium is provided, comprising computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method described in the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] Figure 1 A schematic diagram showing the principle of message transmission between different processes provided by an embodiment of the present application is shown;

[0056] Figure 2 A schematic diagram of a principle of data access provided by an embodiment of the present application is shown;

[0057] Figure 3 Another schematic diagram of the principle of data access provided by an embodiment of the present application is shown;

[0058] Figure 4 A schematic diagram of a network architecture of a data access system provided by an embodiment of the present application is shown;

[0059] Figure 5 A schematic diagram showing the principle of a data access method provided by an embodiment of the present application is shown;

[0060] Figure 6 A schematic diagram showing the principle of sending and receiving data access requests based on a cache queue provided in an embodiment of the present application is shown;

[0061] Figure 7 A schematic diagram showing the principle of another data access method provided by an embodiment of the present application is shown;

[0062] Figure 8 Another schematic diagram of the principle of data access provided by an embodiment of the present application is shown;

[0063] Fig. 9 A schematic diagram of the structure of an unloading card provided in an embodiment of the present application is shown;

[0064] Fig.10 A schematic diagram of the structure of a computing device provided in an embodiment of the present application is shown;

[0065] Fig.11 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application is shown;

[0066] Fig.12 A schematic diagram of a network architecture of a computing device cluster provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0067] To facilitate understanding of the solutions provided by the embodiments of the present application, some concepts involved in the present application are explained before introducing the solutions provided by the embodiments of the present application.

[0068] Remote direct memory access (RDMA) means remote direct address access. Through RDMA, the local node can directly access the memory of the remote node. The so-called direct means that the remote memory can be read and written by bypassing the complex transmission control protocol (TCP) / Internet protocol (IP) and other network protocol stacks of traditional Ethernet just like accessing local memory. The remote end is not aware of this process, and most of the work in the entire reading and writing process is completed by the local hardware. In the embodiment of the present application, the offload card can access the data in the second cloud storage server (specifically the target storage area) through RDMA.

[0069] A queue pair (QP pair) is a concept in RDMA, which refers to a group of send queues and receive queues. In the embodiment of the present application, a QP pair is a link connection information, and a link connection information can represent a link between a service thread and a storage area.

[0070] A thread is the smallest unit that an operating system can schedule operations on, and is an execution unit with a smaller granularity than a process. A process can contain multiple threads, and the multiple threads can share all resources of the process. In an embodiment of the present application, the unload card can determine the link between the source business thread and the target storage area from the identification connection relationship based on the identification of any business thread (i.e., the source business thread) included in the client and the identification of the target storage area in the second cloud storage server.

[0071] The run to complete (RTC) model is a full user mode scheduling model. A program is generally divided into several different logical functions, but these logical functions will run on the core of a central processing unit (CPU), specifically, a request is processed by one thread during its life cycle. In the embodiment of the present application, the offload card and at least one service thread can be combined to obtain an RTC model to reduce the end-to-end delay in the data access process.

[0072] In traditional distributed storage systems, each submodule can be written using a traditional framework, which allows the business modules under the basic programming framework to send and receive messages through network threads. In order to use the network communication function provided by the network thread, at least two modules need to be registered in a process: a network module and a business module. The entity of a module is a thread in the process. Specifically, modules can pass messages to each other, and processes can also pass messages to each other. When passing messages between a process and other processes, they need to be transferred through their respective network modules. The general process of passing messages is as follows: Figure 1 As shown, if the business module 101 in process A needs to send an access request to the business module 104 in process B, the business module 101 needs to first send the access request to the network module 102 in process A; then, the network module 102 can send the access request to the network module 103 in process B; finally, the network module 103 can send the access request to the business module 104, thereby realizing the data interaction process between process A and process B.

[0073] In addition, if Figure 1 As shown, for a module within a process, the business module in the process (such as business module 101) can also send a control message to the network module in the process (i.e., network module 102), and the control message is used to control the network module to implement a certain function, such as network link establishment.

[0074] In a possible implementation, the number of service threads and the number of network threads configured in the client may be different. For example, N service threads and M network threads may be configured, where N is an integer greater than or equal to 1, and M is an integer greater than or equal to 1, and N≠M. For example, Figure 2 As shown, the client includes 5 business threads (i.e., business thread 201, business thread 202, business thread 203, business thread 204, and business thread 205), 6 queues (i.e., queue 206, queue 207, queue 208, queue 209, queue 210, and queue 211), and 6 network threads (i.e., network thread 212, network thread 213, network thread 214, network thread 215, network thread 216, and network thread 217), and one network thread corresponds to one queue. Specifically, after receiving an access request, business thread 201 determines the network thread (e.g., network thread 214) that receives the access request, and sends and adds the access request to the queue (i.e., queue 208) corresponding to the network thread 214. Afterwards, network thread 214 can read the access request from queue 208 and access data in the corresponding storage area on the server. Figure 2In the data access process shown, the requests sent by N business threads can be evenly distributed to M network threads, and the M network threads can evenly share the network pressure. However, the business thread and the network thread run on different CPU cores. The business thread sending access requests to the network thread can be understood as an inter-core task about thread switching, and this inter-core task will generate a certain delay overhead, resulting in a higher access delay. This affects the data access process in delay-sensitive scenarios (or scenarios with low delay requirements).

[0075] In another possible implementation, the number of service threads configured in the client may be the same as the number of network threads. For example, N service threads and N network modules may be configured, that is, one service thread corresponds to one network module (service threads and network modules are bound one to one). Figure 3 As shown, the client includes 4 business threads (i.e., business thread 301, business thread 302, business thread 303, and business thread 304) and 4 network modules (i.e., network module 305, network module 306, network module 307, and network module 308). One business thread corresponds to (or is bound to) one network module. Specifically, after receiving the access request, business thread 301 sends an access request to the corresponding network module (i.e., network module 305). After receiving the access request, network module 305 can access data in the corresponding storage area on the server. Figure 3 In the data access process shown, the business thread corresponds to the network module one by one, and the business thread and the network thread run on the same CPU core. N business threads send access requests through their bound network modules, and there is no thread switching process, which reduces the latency when accessing data. However, this method consumes a lot of memory resources, and the problem of memory resource occupation needs to be solved.

[0076] Based on this, the embodiment of the present application provides a data access method based on cloud storage service, an unloading card can correspond to at least one business thread, and the client (specifically, the source business thread) can send the data access request to the unloading card after receiving the data access request. Since the data access request includes the identifier of the source business thread, the identifier of the target storage area in the second cloud storage server, and the identifier of the target object, the unloading card can determine the link between the source business thread and the target storage area from the identifier connection relationship according to the identifier of the source business thread and the identifier of the target storage area. Since the link is the only link for data access from the source business thread to the target storage area, the unloading card can send the data access request to the second cloud storage server through the link, so that the data in the target storage area can be accessed, that is, the process of performing a preset operation on the target object in the target storage area. In the embodiment of the present application, since the unloading card only needs to store a link between each business thread in at least one business thread and each storage area in the second cloud storage server, the memory resources consumed (or occupied) are limited, which can improve the effectiveness of data access.

[0077] The data access method, offloading card, system and device based on cloud storage service provided by the embodiment of the present application are applied to data access scenarios (including but not limited to large-scale storage cluster scenarios, delay-sensitive scenarios and bandwidth-type business load scenarios). After the offloading card receives the data access request sent by the client, it can determine the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, and send the data access request to the second cloud storage server through the link.

[0078] In order to enable ordinary persons in the art to better understand the technical solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the accompanying drawings.

[0079] It is understood that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the attached claims.

[0080] It should also be understood that the term “comprising” indicates the presence of described features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements and / or components.

[0081] The data access method, offload card, system and device based on cloud storage service provided by the embodiments of the present application can be applied to data access system. Figure 4 As shown, the data access system includes a computing device 401 and a computing device 402. The computing device 401 is plugged with a client 4011 and installed with an uninstall card 4012. Usually, in practical applications, the connection between the above-mentioned devices can be a wireless connection. In order to conveniently and intuitively represent the connection relationship between the various devices, Figure 4 Solid lines are used to indicate.

[0082] The client 4011 includes at least one service thread, and the computing device 402 includes one or more storage areas. Exemplarily, a storage area included in the computing device 402 can also be understood as a memory (or disk) in the computing device 402. The computing device 402 can also include at least one storage pool, and the one or more storage areas can belong to the same storage pool or different storage pools.

[0083] Specifically, the client 4011 may send a data access request to the offload card 4012. The offload card 4012 then determines the link between the source service thread and the target storage area from the identification connection relationship according to the identification of the source service thread and the identification of the target storage area, and sends the data access request to the computing device 402 through the link.

[0084] Optionally, a server may be installed and run in the computing device 402 .

[0085] In one example, the computing device may be a server, which may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It may also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, network acceleration services (content delivery network, CDN), as well as big data and artificial intelligence platforms.

[0086] It should be understood that Figure 4 The two computing devices shown in the figure may be deployed in at least one cloud data center, which may belong to one of a plurality of regions, and the two computing devices are used to provide cloud storage services.

[0087] Understandably, Figure 4 The two computing devices shown in the figure are only an example in the embodiment of the present application. The embodiment of the present application does not specifically limit the number of computing devices included in the data access system.

[0088] In another example, the computing device may also be a terminal, which may also be referred to as user equipment (UE), access terminal, subscriber unit (subscriber unit), user station, mobile station (MS), mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent or user device. The terminal in the embodiments of the present application can be a mobile phone, a cellular phone, a smart phone, a tablet computer, a wireless data card, a personal digital assistant (PDA), a wireless modem, a handset, a laptop computer, a machine type communication (MTC) terminal, a computer with a wireless transceiver function, a virtual reality (VR) terminal, an augmented reality (AR) terminal, a smart home device (for example, a refrigerator, a television, an air conditioner, an electric meter, etc.), an intelligent robot, a robotic arm, a workshop equipment, a wireless terminal in industrial control, a wireless terminal in self driving, a wireless terminal in remote medical, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, a vehicle-mounted terminal, a roadside unit with a terminal function, and a wireless terminal in a smart city. The terminal of the present application may also be a vehicle-mounted module, a vehicle-mounted module, a vehicle-mounted component, a vehicle-mounted chip or a vehicle-mounted unit built into a vehicle as one or more components or units. The terminal may also be other devices with terminal functions, for example, the terminal may also be a device that functions as a terminal in device to device (D2D) communication.

[0089] The embodiments of the present application do not limit the device form of the terminal. The device for realizing the function of the terminal can be a terminal; it can also be a device that can support the terminal to realize the function, such as a chip system. The device can be installed in the terminal, or used in combination with the terminal. In the embodiments of the present application, the chip system can be composed of chips, or it can include chips and other discrete devices.

[0090] In combination with the description of the above embodiments, the embodiments of the present application provide a data access method based on a cloud storage service, wherein the cloud storage service runs on at least two cloud storage servers of at least one cloud data center in one of multiple regions, and an offload card is inserted in the first cloud storage server of the at least two cloud storage servers and a client is installed, and the method is executed by the offload card. Specifically, Figure 5 As shown, the method may include S101-S103.

[0091] S101. The client sends a data access request to the offload card.

[0092] Among them, the data access request includes the identification of the source business thread, the identification of the target storage area in the second cloud storage server, and the identification of the target object. The source business thread is any one of the at least one business thread included in the client. The data access request is used to indicate a preset operation to be performed on the target object in the target storage area. The preset operation includes one or a combination of the following operations: a read operation or a write operation. The second cloud storage server is a cloud storage server other than the first cloud storage server among the above-mentioned at least two cloud storage servers.

[0093] It should be understood that the first cloud storage server is any one of the at least two cloud storage servers. The second cloud storage server may include at least one storage area, and the target storage area is any one of the at least one storage area.

[0094] It is understandable that the client sending the data access request to the unloading card can specifically be the source service thread sending the data access request to the unloading card. Specifically, the user can initiate a data access request on the client, and then the client sends the data access request to any one of the at least one service threads (i.e., the source service thread) based on the scattering algorithm. In this way, the source service thread can receive the data access request and send the data access request to the unloading card.

[0095] S102: The offload card determines a link between the source service thread and the target storage area from an identification connection relationship according to an identification of the source service thread and an identification of the target storage area.

[0096] The identification connection relationship includes a plurality of identification combinations and link connection information corresponding to each identification combination in the plurality of identification combinations, and the identification combination includes a service thread identification and a storage area identification.

[0097] In one implementation of the embodiment of the present application, a link can be characterized by a link connection information. The unloading card can first determine the link connection information that can characterize the link between the source business thread and the target storage area, so as to determine the link between the source business thread and the target storage area. That is, the above-mentioned unloading card determines the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, which can specifically include steps A to C.

[0098] Step A: the offload card queries the identifier connection relationship based on the identifier of the source service thread and the identifier of the target storage area, and determines the target identifier combination matching the identifier of the source service thread and the identifier of the target storage area from the identifier connection relationship.

[0099] It should be understood that the identification connection relationship is a mapping relationship pre-stored by the client during the initialization phase, and the link connection information corresponding to an identification combination is used to characterize the link between the business thread corresponding to the business thread identifier included in the identification combination and the storage area corresponding to the storage area identifier included in the identification combination.

[0100] Optionally, one link connection information may be a QP pair. In a specific use process, the QP pair may be uniquely identified based on an identifier or a serial number (number, referred to as QPN) of the QP pair.

[0101] Step B: The offload card determines the link connection information corresponding to the target identifier combination as the target link connection information.

[0102] It can be understood that the target link connection information is used to characterize the link between the source service thread and the target storage area.

[0103] Exemplarily, the following Table 1 is an example of an identification connection relationship provided in an embodiment of the present application. Specifically, the identification connection relationship includes 4 identification combinations (including identification combination 1, identification combination 2, identification combination 3 and identification combination 4) and link connection information corresponding to each of the 4 identification combinations. Specifically, the link connection information corresponding to identification combination 1 is link connection information 1, the link connection information corresponding to identification combination 2 is link connection information 2, the link connection information corresponding to identification combination 3 is link connection information 3, and the link connection information corresponding to identification combination 4 is link connection information 4. Identification combination 1 includes business thread identification 1 and storage area identification 1, identification combination 2 includes business thread identification 1 and storage area identification 2, identification combination 3 includes business thread identification 2 and storage area identification 1, and identification combination 4 includes business thread identification 2 and storage area identification 2.

[0104] Table 1

[0105] Logo combination Link connection information Identifier combination 1 (business thread identifier 1 + storage area identifier 1) Link connection information 1 Identifier combination 2 (business thread identifier 1 + storage area identifier 2) Link connection information 2 Identifier combination 3 (business thread identifier 2 + storage area identifier 1) Link connection information 3 Identifier combination 4 (business thread identifier 2 + storage area identifier 2) Link connection information 4

[0106] Assuming that the identifier of the source service thread is service thread identifier 1 and the identifier of the target storage area is storage area identifier 2, the offload card determines that the target link connection information is link connection information 2.

[0107] Step C: The offload card determines the link represented by the target link connection information as the link between the source service thread and the target storage area.

[0108] In the embodiment of the present application, since the target link connection information is the link connection information corresponding to the target identification combination, and the target identification combination includes the identification of the source business thread and the identification of the target storage area, the target link connection information can accurately and effectively reflect the link connection relationship between the source business thread and the target storage area. In this way, the unloading card determines the link represented by the target link connection information as the link between the source business thread and the target storage area, that is, the link between each business thread and each storage area can be accurately and effectively determined, thereby improving the accuracy of data access.

[0109] S103: The offload card sends a data access request to the second cloud storage server through the link between the source service thread and the target storage area.

[0110] It is understandable that after receiving the data access request through the link between the source service thread and the target storage area, the second cloud storage server can access the data in the target storage area, specifically, perform a preset operation on the target object in the target storage area.

[0111] In the embodiment of the present application, an unloading card can correspond to at least one business thread, and the client (specifically, the source business thread) can send the data access request to the unloading card after receiving the data access request. Since the data access request includes the identifier of the source business thread, the identifier of the target storage area in the second cloud storage server, and the identifier of the target object, the unloading card can determine the link between the source business thread and the target storage area from the identifier connection relationship according to the identifier of the source business thread and the identifier of the target storage area. And since the link is the only link for data access from the source business thread to the target storage area, the unloading card can send the data access request to the second cloud storage server through the link, so that the data in the target storage area can be accessed, that is, the process of performing a preset operation on the target object in the target storage area. In the embodiment of the present application, since the unloading card only needs to store a link between each business thread in at least one business thread and each storage area in the second cloud storage server, the memory resources consumed (or occupied) are limited, which can improve the effectiveness of data access.

[0112] In one implementation of the embodiment of the present application, the above-mentioned unloading card includes at least one cache queue, and for the above-mentioned at least one business thread, one business thread corresponds to one cache queue. Before the above-mentioned unloading card determines the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, the unloading card can also add the above-mentioned data access request to the target cache queue. Afterwards, the unloading card can read the data access request from the target cache queue, and determine the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area included in the read data access request.

[0113] Specifically, the target cache queue is a cache queue corresponding to the source service thread in the at least one cache queue, and the data access request is a request included in the target cache queue.

[0114] For example, Figure 6 As shown, the client includes three business threads (i.e., business thread 501, business thread 502, and business thread 503), and the offload card includes three cache queues (i.e., cache queue 504, cache queue 505, and cache queue 506) and four QP pairs (including QP pair 507, QP pair 508, QP pair 509, and QP pair 510), wherein one business thread corresponds to one cache queue, and one QP pair is used to characterize the link between one business thread and one storage area.

[0115] Assuming that the source service thread in the above-mentioned client is service thread 502, service thread 502 sends the data access request to the unloading card after receiving the data access request, and the unloading card adds the data access request to the cache queue (specifically cache queue 505) corresponding to the service thread 502 after receiving the data access request. Then the unloading card reads the data access request from the cache queue 505, and determines the link between the service thread 502 and the target storage area from the identification connection relationship according to the identification of the service thread 502 included in the read data access request and the identification of the target storage area (assuming it is the link represented by QP pair 509). Finally, the unloading card sends the data access request to the second cloud storage server through the link represented by the QP pair 509.

[0116] In an embodiment of the present application, after receiving the data access request sent by the client, the unloading card can add the data access request to the target cache queue corresponding to the source business thread. Thus, the unloading card can read the data access request from the target cache queue, and determine the link between the source business thread and the target storage area from the identifier connection relationship according to the identifier of the source business thread included in the read data access request and the identifier of the target storage area. Finally, the unloading card sends the data access request to the second cloud storage server through the link. In an embodiment of the present application, each business thread can follow single-threaded polling, specifically a business thread always sends the data access request it obtains to the unloading card (specifically the cache queue corresponding to the business thread in the unloading card). Then the unloading card can read the data access request corresponding to each business thread from the cache queue corresponding to each business thread, thereby realizing the access process of related data. In this way, the unloading card and at least one business thread can be combined to obtain an RTC model, which can reduce the end-to-end delay in the data access process.

[0117] Optionally, the offload card further includes a network processing unit (NPU), wherein the NPU is configured to add the data access request to a target cache queue and read the data access request from the target cache queue.

[0118] In one implementation of the embodiment of the present application, the unloading card can perform real-time detection on each of the at least one service thread. When it is detected that any service thread (e.g., source service thread) of the at least one service thread is interrupted, the unloading card can perform a reconstruction operation on the source service thread.

[0119] Specifically, the reconstruction operation is an operation for re-establishing the link, which can also be understood as a message keep-alive mechanism. The interruption of a business thread (or single thread) can also be understood as the disconnection of the business thread or the business thread is in an abnormal state. In the embodiment of the present application, when the interruption of the source business thread is detected, it means that the source business thread is in an abnormal state. At this time, the unload card performs a reconstruction operation on the source business thread, which can ensure that the source business thread continues to be in a normal state, thereby further improving the effectiveness of data access.

[0120] It is worth noting that after the unloading card sends a data access request to the second cloud storage server through the link between the source service thread and the target storage area, the unloading card may have a successful data access or a failed data access. At this time, the second cloud storage server can return a corresponding message to the unloading card to prompt the unloading card whether the data access to the target storage area is successful. Based on this, combined with Figure 5 ,like Figure 7 As shown, the data access method provided in the embodiment of the present application may also include S104-S105.

[0121] S104: The offloading card receives an access success response sent by the second cloud storage server.

[0122] The access success response is used to notify the offloading card that a preset operation is successfully performed on the target object in the target storage area.

[0123] It should be understood that after the unloading card sends the data access request to the second cloud storage server through the link between the source service thread and the target storage area, the second cloud storage server can determine whether the unloading card can successfully perform the preset operation on the target object in the target storage area. In the case where the unloading card successfully performs the preset operation on the target object in the target storage area, the second cloud storage server can send the access success response to the unloading card.

[0124] In the embodiment of the present application, the unloading card successfully performing a preset operation on the target object in the target storage area can also be understood as the unloading card successfully accessing the data in the target storage area.

[0125] S105: The uninstall card sends an access success response to the client.

[0126] It is understandable that after receiving the access success response sent by the unloading card, the client (specifically, the source service thread) can determine that the unloading card has successfully performed the preset operation on the target object in the target storage area. Before and after the unloading card accesses the data in the target storage area, the client (or the source service thread) only sends and receives messages through the unloading card, and does not need to perceive the connection relationship between each service thread and each storage area, so it can quickly access the relevant service data, reducing the delay generated during the data access process.

[0127] In an optional implementation, when the unloading card cannot perform a preset operation on the target object in the target storage area or the unloading card cannot access the data in the target storage area, the second cloud storage server may also send an access failure response to the unloading card, and the access failure response is used to notify the unloading card that the preset operation cannot be performed on the target object in the target storage area. At this time, the unloading card may also send the access failure response to the client (specifically, the source service thread).

[0128] Optionally, the above-mentioned unloading card (or NPU) may include a network data module and a network routing module. Specifically, the network data module is used to receive a data access request sent by the client, and receive an access success response sent by the second cloud storage server. The network routing module is used to determine the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area.

[0129] The following is a complete example to illustrate the process of accessing data in the target storage area in an embodiment of the present application:

[0130] like Figure 8 As shown, an embodiment of the present application provides a data access system, which includes a first cloud storage server and a second cloud storage server, wherein the first cloud storage server includes a client 60 and an uninstall card 70, the client 60 includes a service thread 601, a service thread 602, a service thread 603, a service thread 604, and a service thread 605, and the second cloud storage server includes a storage pool 801 and a storage pool 802. Among them, the storage pool 801 includes a storage area 8011, a storage area 8012, and a storage area 8013. The storage pool 802 includes a storage area 8021, a storage area 8022, and a storage area 8023.

[0131] Assume that the above-mentioned source business thread is business thread 601, and the target storage area is storage area 8011. Then the data access process is specifically as follows: First, after receiving the data access request, the business thread 601 in the client 60 sends a data access request to the unloading card 70, and the data access request includes the identifier of the business thread 601 and the identifier of the storage area 8011. Afterwards, the unloading card 70 determines the link between the business thread 601 and the storage area 8011 from the identifier connection relationship according to the identifier of the business thread 601 and the identifier of the storage area 8011, and sends the data access request to the second cloud storage server through the link. Then, the unloading card 70 receives the access success response sent by the second cloud storage server, and the access success response is used to notify the unloading card 70 that the preset operation is successfully performed on the target object in the storage area 8011. Finally, the unloading card 70 sends the access success response to the business thread 601 in the client 60.

[0132] The present application also provides an offload card based on a cloud storage service, the cloud storage service running on at least two cloud storage servers located in at least one cloud data center in one of the multiple regions, the offload card being inserted in a first cloud storage server of the at least two cloud storage servers and having a client installed thereon. Fig. 9 As shown, the unloading card 90 includes: a receiving module 901 , a determining module 902 and a sending module 903 .

[0133] The receiving module 901 is used to receive a data access request sent by the client, wherein the data access request includes an identifier of a source business thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object. The source business thread is any one of at least one business thread included in the client. The data access request is used to indicate that a preset operation is performed on the target object in the target storage area. The preset operation includes one or a combination of the following operations: a read operation or a write operation. The second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers.

[0134] Determination module 902 is used to determine the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, wherein the identification connection relationship includes multiple identification combinations and link connection information corresponding to each identification combination in the multiple identification combinations, wherein the identification combination includes a business thread identification and a storage area identification.

[0135] The sending module 903 is used to send the data access request to the second cloud storage server through the link between the source service thread and the target storage area.

[0136] Optionally, the determination module 902 is specifically used to query the identifier connection relationship based on the identifier of the source business thread and the identifier of the target storage area, and determine the target identifier combination that matches the identifier of the source business thread and the identifier of the target storage area from the identifier connection relationship.

[0137] The determination module 902 is further specifically configured to determine the link connection information corresponding to the target identifier combination as the target link connection information.

[0138] The determination module 902 is further specifically configured to determine the link represented by the target link connection information as the link between the source service thread and the target storage area.

[0139] Optionally, one link connection information is a QP pair.

[0140] Optionally, the above-mentioned offload card 90 further includes at least one cache queue, the data access request is a request included in a target cache queue, and the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

[0141] Optionally, the above-mentioned unloading card 90 also includes a reconstruction module 904 .

[0142] The reconstruction module 904 is used to perform a reconstruction operation on the source service thread when it is detected that the source service thread is interrupted.

[0143] Optionally, the receiving module 901 is further used to receive an access success response sent by the second cloud storage server, where the access success response is used to notify the unloading card that the preset operation is successfully performed on the target object in the target storage area.

[0144] The sending module 903 is further configured to send the access success response to the client.

[0145] Optionally, the above-mentioned unloading card 90 also includes an adding module 905 .

[0146] The adding module 905 is used to add the data access request to a target cache queue, where the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

[0147] Optionally, the above-mentioned unloading card also includes a reading module 906 .

[0148] The reading module 906 is used to read the data access request from the target cache queue.

[0149] The determination module 902 is specifically configured to determine the link according to the identifier of the source service thread and the identifier of the target storage area included in the read data access request.

[0150] Among them, the receiving module 901, the determining module 902, the sending module 903, the reconstruction module 904, the adding module 905 and the reading module 906 can all be implemented by software, or can be implemented by hardware. Exemplarily, the implementation of the determining module 902 is described below by taking the determining module 902 as an example. Similarly, the implementation of the receiving module 901, the sending module 903, the reconstruction module 904, the adding module 905 and the reading module 906 can refer to the implementation of the determining module 902.

[0151] As an example of a software functional unit, the module 902 can include code running on a computing instance. Among them, the computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance can be one or more. For example, the module can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with close geographical locations. Among them, usually a region can include multiple AZs.

[0152] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0153] As an example of a hardware functional unit, the determination module 902 may include at least one computing device, such as a server, etc. Alternatively, the determination module 902 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0154] The multiple computing devices included in the determination module 902 may be distributed in the same region or in different regions. The multiple computing devices included in the determination module 902 may be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the determination module 902 may be distributed in the same VPC or in multiple VPCs. The multiple computing devices may be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0155] It should be noted that, in other embodiments, the determination module 902 can be used to execute any step in the data access method, the receiving module 901 can be used to execute any step in the data access method, the sending module 903 can be used to execute any step in the data access method, the reconstruction module 904 can be used to execute any step in the data access method, the adding module 905 can be used to execute any step in the data access method, and the reading module 906 can also be used to execute any step in the data access method. The steps that the receiving module 901, the determination module 902, the sending module 903, the reconstruction module 904, the adding module 905 and the reading module 906 are responsible for implementing can be specified as needed, and the receiving module 901, the determination module 902, the sending module 903, the reconstruction module 904, the adding module 905 and the reading module 906 respectively implement different steps in the data access method to realize all the functions of the unloading card.

[0156] The present application also provides a computing device 1000. Fig.10As shown, computing device 1000 includes: bus 1002, processor 1004, memory 1006 and communication interface 1008. Processor 1004, memory 1006 and communication interface 1008 communicate through bus 1002. Computing device 1000 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in computing device 1000.

[0157] The bus 1002 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.10 The bus 1004 may include a path for transmitting information between various components of the computing device 1000 (eg, the memory 1006, the processor 1004, and the communication interface 1008).

[0158] The processor 1004 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0159] The memory 1006 may include a volatile memory, such as a random access memory (RAM). The processor 1004 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).

[0160] The memory 1006 stores executable program codes, and the processor 1004 executes the executable program codes to respectively implement the functions of the aforementioned receiving module, determining module, sending module, reconstruction module, adding module, and reading module, thereby implementing the data access method. That is, the memory 1006 stores instructions for executing the data access method.

[0161] The communication interface 1003 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1000 and other devices or a communication network.

[0162] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device 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 terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0163] like Fig.11 As shown, the computing device cluster includes at least one computing device 1000. The memory 1006 in one or more computing devices 1000 in the computing device cluster may store the same instructions for executing the data access method.

[0164] In some possible implementations, the memory 1006 of one or more computing devices 1000 in the computing device cluster may also store partial instructions for executing the data access method. In other words, the combination of one or more computing devices 1000 may jointly execute instructions for executing the data access method.

[0165] It should be noted that the memory 1006 in different computing devices 1000 in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the data access device. That is, the instructions stored in the memory 1006 in different computing devices 1000 can implement the functions of one or more modules of the receiving module, the determining module, the sending module, the adding module, the reading module and the reconstruction module.

[0166] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.12 A possible implementation is shown. Fig.12 As shown, two computing devices 1000A and 1000B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 1006 in the computing device 1000A stores instructions for executing the functions of the determination module, the addition module, the reading module, and the reconstruction module. At the same time, the memory 1006 in the computing device 1000B stores instructions for executing the functions of the receiving module and the sending module.

[0167] Fig.12The connection mode between the computing device clusters shown may be considered to be that the data access method provided by the present application requires a large number of receiving processes and sending processes, so it is considered to hand over the functions implemented by the receiving module and the sending module to the computing device 1000B for execution.

[0168] It should be understood that Fig.12 The functions of the computing device 1000A shown in FIG. 1000A may also be completed by multiple computing devices 1000. Similarly, the functions of the computing device 1000B may also be completed by multiple computing devices 1000.

[0169] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Fig.11 and Fig.12 The connection mode of the computing device cluster is different in that the memory 1006 in one or more computing devices 1000 in the computing device cluster may store the same instructions for executing the data access method.

[0170] In some possible implementations, the memory 1006 of one or more computing devices 1000 in the computing device cluster may also store partial instructions for executing the data access method. In other words, the combination of one or more computing devices 1000 may jointly execute instructions for executing the data access method.

[0171] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that 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 executes the data access method.

[0172] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute a data access method.

[0173] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data access method based on cloud storage service, characterized in that: The cloud storage service is run on at least two cloud storage servers located in at least one cloud data center in one of the multiple regions, an offload card is inserted in a first cloud storage server of the at least two cloud storage servers and a client is installed, and the method is performed by the offload card, and the method includes: receiving a data access request sent by the client, the data access request including an identifier of a source service thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object, the source service thread being any one of at least one service thread included in the client, the data access request being used to instruct to perform a preset operation on the target object in the target storage area, the preset operation including one or a combination of the following operations: a read operation or a write operation, the second cloud storage server being a cloud storage server other than the first cloud storage server among the at least two cloud storage servers; Determine a link between the source business thread and the target storage area from an identification connection relationship according to the identification of the source business thread and the identification of the target storage area, wherein the identification connection relationship includes a plurality of identification combinations and link connection information corresponding to each of the plurality of identification combinations, wherein the identification combination includes a business thread identification and a storage area identification; The data access request is sent to the second cloud storage server through a link between the source service thread and the target storage area.

2. The data access method according to claim 1, characterized in that: The determining, from the identifier connection relationship according to the identifier of the source service thread and the identifier of the target storage area, a link between the source service thread and the target storage area comprises: querying the identifier connection relationship based on the identifier of the source service thread and the identifier of the target storage area, and determining a target identifier combination matching the identifier of the source service thread and the identifier of the target storage area from the identifier connection relationship; Determine the link connection information corresponding to the target identifier combination as the target link connection information; The link represented by the target link connection information is determined as a link between the source service thread and the target storage area.

3. The data access method according to claim 1 or 2, characterized in that: One link connection information is a queue QP pair.

4. The data access method according to any one of claims 1 to 3, characterized in that: The offload card includes at least one cache queue, the data access request is a request included in a target cache queue, and the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

5. The data access method according to any one of claims 1 to 4, characterized in that: The method further comprises: When the interruption of the source service thread is detected, a reconstruction operation is performed on the source service thread.

6. The data access method according to any one of claims 1 to 5, characterized in that: The method further comprises: receiving an access success response sent by the second cloud storage server, wherein the access success response is used to notify the offloading card that the preset operation is successfully performed on the target object in the target storage area; Sending the access success response to the client.

7. An offloading card based on cloud storage service, characterized in that: The cloud storage service is run on at least two cloud storage servers located in at least one cloud data center in one of the multiple regions, the first cloud storage server among the at least two cloud storage servers is plugged with the offload card and installed with a client, and the offload card includes: a receiving module, a determining module, and a sending module; The receiving module is used to receive a data access request sent by the client, the data access request includes an identifier of a source business thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object, the source business thread is any one of at least one business thread included in the client, the data access request is used to instruct to perform a preset operation on the target object in the target storage area, the preset operation includes one or a combination of the following operations: a read operation or a write operation, the second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers; The determination module is used to determine the link between the source business thread and the target storage area from an identification connection relationship according to the identification of the source business thread and the identification of the target storage area, wherein the identification connection relationship includes multiple identification combinations and link connection information corresponding to each identification combination in the multiple identification combinations, wherein the identification combination includes a business thread identification and a storage area identification; The sending module is used to send the data access request to the second cloud storage server through the link between the source service thread and the target storage area.

8. The uninstall card according to claim 7, characterized in that: The determination module is specifically used to query the identifier connection relationship based on the identifier of the source service thread and the identifier of the target storage area, and determine the target identifier combination matching the identifier of the source service thread and the identifier of the target storage area from the identifier connection relationship; The determination module is further specifically configured to determine the link connection information corresponding to the target identifier combination as the target link connection information; The determining module is further specifically configured to determine the link represented by the target link connection information as the link between the source service thread and the target storage area.

9. The unloading card according to claim 7 or 8, characterized in that: One link connection information is a queue QP pair.

10. The unloading card according to any one of claims 7 to 9, characterized in that: The offload card further includes at least one cache queue, the data access request is a request included in a target cache queue, and the target cache queue is a cache queue in the at least one cache queue corresponding to the source service thread.

11. The unloading card according to any one of claims 7 to 10, characterized in that: The uninstall card also includes a reconstruction module; The reconstruction module is used to perform a reconstruction operation on the source service thread when it is detected that the source service thread is interrupted.

12. The unloading card according to any one of claims 7 to 11, characterized in that: The receiving module is further used to receive an access success response sent by the second cloud storage server, wherein the access success response is used to notify the unloading card that the preset operation is successfully performed on the target object in the target storage area; The sending module is further used to send the access success response to the client.

13. A data access system based on cloud storage service, characterized in that: The cloud storage service is run on at least two cloud storage servers located in at least one cloud data center in one of the multiple regions, the data access system comprises the at least two cloud storage servers, and an offload card is inserted in a first cloud storage server of the at least two cloud storage servers and a client is installed; The client sends a data access request to the offload card, the data access request includes an identifier of a source service thread, an identifier of a target storage area in a second cloud storage server, and an identifier of a target object, the source service thread is any one of at least one service thread included in the client, the data access request is used to instruct to perform a preset operation on the target object in the target storage area, the preset operation includes one or a combination of the following operations: a read operation or a write operation, the second cloud storage server is a cloud storage server other than the first cloud storage server among the at least two cloud storage servers; The unloading card determines the link between the source business thread and the target storage area from the identification connection relationship according to the identification of the source business thread and the identification of the target storage area, and sends the data access request to the second cloud storage server through the link between the source business thread and the target storage area, wherein the identification connection relationship includes multiple identification combinations and link connection information corresponding to each identification combination in the multiple identification combinations, wherein the identification combination includes a business thread identification and a storage area identification.

14. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a 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, so that the computing device cluster executes the data access method according to any one of claims 1 to 6.

15. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the data access method according to any one of claims 1 to 6.

16. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the data access method according to any one of claims 1 to 6.