Information processing device, information processing system, and control method for information processing device
By using a logic circuit and service mesh function unit to manage pseudo-requests and responses, the device maintains high throughput and reduces processing delays in microservices, enabling effective service mesh functionality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- 1FINITY INC
- Filing Date
- 2022-08-29
- Publication Date
- 2026-06-23
AI Technical Summary
In a microservices architecture, offloading microservice processing to an FPGA reduces throughput and increases delay due to the involvement of Envoy, which is implemented by software, making it difficult to implement service mesh functions such as destination control and monitoring.
An information processing device with a logic circuit and a service mesh function unit that generates pseudo-requests and responses to manage communication, allowing the logic circuit to process microservices without Envoy intervention, and a pseudo-application to send responses with rewritten destination information.
This approach enables the implementation of service mesh functions while maintaining high throughput and reducing processing delays, improving the performance of microservices in a microservices architecture.
Smart Images

Figure 0007877957000001 
Figure 0007877957000002 
Figure 0007877957000003
Abstract
Description
Technical Field
[0004] , , , , , , , , ,
[0005] , , , , , , ,
[0001] The present invention relates to an information processing apparatus, an information processing system, and a control method for an information processing apparatus.
Background Art
[0002] There is known a network service apparatus equipped with an FPGA (Field-Programmable Gate Array) that has an interface for transmitting and receiving packets and a plurality of service processing resources, and distributes received packets to the service processing resources based on transfer rules. As a result, the distribution of packets to the virtual space is accelerated (see, for example, Patent Document 1).
[0003] There is known a virtualized network system having a network interface card equipped with an FPGA having a buffer section for storing respectively a received packet and a replicated packet, and a network application section operating in a virtualized environment. The network application section performs normal network processing and constant monitoring on one and the other of the packets stored in the buffer section, and analyzes the packet being constantly monitored when a malfunction event occurs. As a result, the load and cost are suppressed, and the malfunction event is analyzed without affecting the network processing (see, for example, Patent Document 2).
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0005] For example, in a microservices architecture service environment, each of multiple servers interconnected via a network has a virtual machine that performs microservice processing, and each virtual machine has a Pod containing Envoy and an application container. When offloading the processing of microservices performed in the application container to an FPGA, it is conceivable to have Envoy manage communication to the FPGA.
[0006] However, since Envoy is implemented by software executed by the processor, the involvement of Envoy may reduce the throughput of microservice processing by the FPGA and increase the delay before processing results are output. On the other hand, if communication to the FPGA is not managed by Envoy, it becomes difficult for Envoy to obtain information about the processing of microservices performed by the FPGA. As a result, it becomes difficult to implement service mesh functions such as destination control and monitoring.
[0007] In one aspect, the present invention aims to realize a service mesh function while suppressing a decrease in the throughput of microservices that are offloaded to logic circuits. [Means for solving the problem]
[0008] From one perspective, the information processing device is an information processing device included in an information processing system employing a microservices architecture, and comprises a logic circuit having a processing function unit that performs microservice processing and a communication interface unit connected to a network, a service mesh function unit that realizes a service mesh, and a pseudo-application connected to the logic circuit via the service mesh function unit and not having microservice processing functionality, wherein the logic circuit, upon receiving data plane communication request data from another first information processing device at the communication interface unit, starts processing a service using the request data via the processing function unit, generates a pseudo-request for control plane communication, and transmits the generated pseudo-request to the pseudo-application, and the Based on the completion of processing of the service by the processing function unit, a processing completion notification is sent to the pseudo application. The pseudo application, after receiving the pseudo request, sends a pseudo response to the logic circuit based on the receipt of the processing completion notification. When the service mesh function unit detects the pseudo response sent from the pseudo application to the logic circuit, it rewrites the destination information included in the pseudo response, and transfers the pseudo response with the rewritten destination information to the logic circuit. Based on the receipt of the pseudo response containing the rewritten destination information, the logic circuit generates request data for the next data plane communication, including the rewritten destination information in the data after processing of the service, and transmits the generated request data from the communication interface unit to another second information processing device. [Effects of the Invention]
[0009] This allows for the implementation of a service mesh function while suppressing the reduction in throughput of microservices that are offloaded to logic circuits. [Brief explanation of the drawing]
[0010] [Figure 1] Block diagram showing an example of an information processing system in one embodiment. [Figure 2]Block diagram showing an example of an information processing system in another embodiment. [Figure 3] Figure 2 is a block diagram showing an example of the functional configuration of server 120a. [Figure 4] Figure 2 is a functional block diagram showing an example of the hardware configuration of server 120a. [Figure 5] Figure 3 is a flowchart showing an example of FPGA operation. [Figure 6] Figure 3 is a flowchart illustrating an example of how Envoy operates. [Figure 7] Figure 3 is a flowchart illustrating an example of how the pseudo-container operates. [Modes for carrying out the invention]
[0011] The embodiments will be described below with reference to the drawings.
[0012] Figure 1 shows an example of an information processing system in one embodiment. The information processing system 100A shown in Figure 1 has a plurality of information processing devices 110 (110a, 110b, 110c) that are interconnected via a network. The arrows connecting each information processing device 110a, 110b, and 110c indicate a part of the network. The number of information processing devices 110 installed in the information processing system 100A is not limited to three. Information processing device 110b is an example of another first information processing device, and information processing device 110c is an example of another second information processing device.
[0013] The information processing system 100A employs a microservices architecture in which, for example, each information processing device 110 has the function to perform microservice processing, and multiple microservices are connected and coordinated via a network. Furthermore, although not particularly limited, Istio is used as a service mesh platform to manage the connections between microservices. The configuration shown in Figure 1 represents the data plane of the service mesh.
[0014] The information processing device 110a includes a logic circuit 210, a service mesh function unit 310, and a pseudo-application 410 that does not have microservice processing capabilities. For example, the service mesh function unit 310 and the pseudo-application 410 are implemented as virtual machines by software executed by a processor such as a CPU (Central Processing Unit) mounted on the information processing device 110a. The logic circuit 210 is mounted on hardware such as an FPGA, and the microservice processing capabilities are offloaded.
[0015] The logic circuit 210 includes a communication interface unit 211, a processing function unit 212, a processing result holding unit 213, and a destination information holding unit 214. The logic circuit 210 is connected to the pseudo-application 410 via a service mesh function unit 310. The service mesh function unit 310 includes a monitoring unit 311 and a destination rewriting unit 312. For example, the service mesh function unit 310 has the function of a load balancer that determines the information processing device 110 to process the next request data according to the degree of network congestion, and the transfer path for the next request data.
[0016] The communication interface unit 211 is, for example, a NIC (Network Interface Controller) and is connected to other information processing devices 110b, 110c, etc. via the network. The processing function unit 212 receives data plane communication request data from the information processing device 110b via the communication interface unit 211 and starts processing microservices using the request data.
[0017] Based on the start of the processing of the microservice using the request data by the processing function unit 212, the logic circuit 210 generates a pseudo-request REQ for control plane communication and transmits the generated pseudo-request REQ to the pseudo-application 410. For example, the pseudo-request REQ includes the destination information included in the request data received from the information processing device 110b. The destination information includes, for example, a destination address and indicates the destination of the next request data to be transmitted by the information processing device 110a. The pseudo-application 410 receives the pseudo-request REQ.
[0018] The monitoring unit 311 of the service mesh function unit 310 monitors the information transferred between the logic circuit 210 and the pseudo-application 410. When the monitoring unit 311 detects the pseudo-request REQ transmitted from the logic circuit 210 to the pseudo-application 410, it holds the detected time as the start time of the processing of the microservice. Also, when the monitoring unit 311 detects the pseudo-request REQ, it accumulates the number of starts of the processing of the microservice.
[0019] Also, the service mesh function unit 310 may calculate the number of starts of the processing of the microservice per a predetermined time (for example, per minute) as the reception frequency of the request data or the processing frequency of the microservice. For example, one or more of the start time, the number of starts, and the processing frequency of the microservice detected or calculated by the service mesh function unit 310 may be acquired by the control plane.
[0020] Based on the completion of the processing of the microservice by the processing function unit 212, the logic circuit 210 transmits a processing completion notification CMPT to the pseudo-application 410. Also, when the destination information corresponding to the data after the processing of the microservice is held in the destination information holding unit 214, the logic circuit 210 acquires the destination information held in the destination information holding unit 214 based on the completion of the processing of the microservice.
[0021] The logic circuit 210 then includes the acquired destination information in the processed data of the microservice to generate request data for the next data plane communication, and sends the generated request data to the information processing device 110c. As a result, if the destination information rewritten by the service mesh function unit 310 is held in the destination information holding unit 214, the logic circuit 210 can send the next request data to the information processing device 110c without waiting for the reception of the pseudo-response RES. Therefore, the throughput of microservice processing can be improved and the delay until the processing results of the microservice are output can be reduced.
[0022] On the other hand, if the destination information corresponding to the processed data of the microservice is not held in the destination information holding unit 214, the logic circuit 210 stores the processed data of the microservice in the processing result holding unit 213.
[0023] The pseudo-application 410 sends a pseudo-response RES to the logic circuit 210 based on the receipt of a processing completion notification CMPT after receiving a pseudo-request REQ. Thus, the pseudo-application 410 has only the function of receiving the pseudo-request REQ and the processing completion notification CMPT, and the function of sending a pseudo-response RES in response to the receipt of the processing completion notification CMPT.
[0024] When the monitoring unit 311 of the service mesh function unit 310 detects a pseudo-response RES sent from the pseudo-application 410 to the logic circuit 210, it stores the time of detection as the completion time of the microservice processing. Alternatively, the service mesh function unit 310 may also store the time of detection of the processing completion notification CMPT from the logic circuit 210 as the completion time of the microservice processing.
[0025] The monitoring unit 311 calculates the time from the start time to the completion time as the processing time of the microservice. Furthermore, if the monitoring unit 311 detects a pseudo-response RES, it accumulates the number of times the microservice processing has completed as the number of successful microservice processing attempts.
[0026] The destination rewriting unit 312 of the service mesh function unit 310 rewrites the destination information contained in the pseudo-response RES with appropriate destination information based on the monitoring unit 311 receiving the pseudo-response RES. Then, the destination rewriting unit 312 transfers the pseudo-response RES with the appropriate destination information to the logic circuit 210. By rewriting the destination information by the service mesh function unit 310, the transfer path for the next request data can be appropriately set, and a decrease in the processing efficiency of microservices can be suppressed.
[0027] The monitoring unit 311 may also determine the success rate or failure rate of the microservice processing by calculating the ratio of the number of completions to the number of starts. For example, one or more of the microservice completion time, processing time, number of completions, success rate (failure rate), and rewritten destination information detected or calculated by the monitoring unit 311 may be obtained by the control plane.
[0028] If the logic circuit 210 has not sent the processed data of the microservice to the information processing device 110c, it retrieves the processed data held in the processing result holding unit 213 based on the receipt of a pseudo-response RES containing the rewritten destination information. The logic circuit 210 generates request data for the next data plane communication, including the rewritten destination information in the retrieved processed data. The logic circuit 210 transmits the generated request data from the communication interface unit 211 to the other information processing device 110c. The logic circuit 210 also stores the rewritten destination information included in the pseudo-response in the destination information holding unit 214 based on the receipt of the pseudo-response RES.
[0029] In this embodiment, by offloading the microservice processing function using request data to the logic circuit 210 instead of embedding it in the application within the virtual machine, microservice processing can be performed without the intervention of the service mesh function unit 310.
[0030] The logic circuit 210 and the pseudo-application 410 are interconnected via the service mesh function unit 310. Therefore, the service mesh function unit 310 can detect pseudo-requests REQ, processing completion notifications CMPT, and pseudo-responses RES, and can obtain information regarding request data and microservice processing.
[0031] For example, the service mesh function unit 310 can detect the start time of microservice processing based on a pseudo-request REQ, and can detect the completion time of microservice processing based on a pseudo-response RES. The service mesh function unit 310 can then calculate the processing time of the microservice based on the start time and completion time. In addition, the service mesh function unit 310 can accumulate the number of times microservice processing has started and the number of times microservice processing has succeeded.
[0032] The control plane can then appropriately update the service mesh control function by acquiring information about the processing of microservices acquired or calculated by the service mesh function unit 310. As a result, the service mesh function can be realized while suppressing a decrease in the throughput of microservice processing offloaded to the logic circuit 210.
[0033] By enabling service mesh functionality while suppressing the degradation of microservice processing, the processing performance of the information processing device 110 included in the microservice architecture can be improved. Therefore, the performance of the information processing system 100A operating in a microservice architecture environment can be improved. For example, the performance of various platforms, data centers, or clouds operating in a microservice architecture environment can be improved.
[0034] The service mesh function unit 310 rewrites destination information based on the detection of a pseudo-response RES. If destination information is not held in the destination information holding unit 214, the logic circuit 210 stores the processed data of the microservice in the processing result holding unit 213 and waits for a pseudo-response RES from the pseudo-application 410. This allows the destination information to be rewritten by the destination rewriting unit 312 to be obtained even when the processing function unit 212 is offloaded, and the next request data can be sent. In other words, the transfer path for the next request data can be appropriately set, and a decrease in the processing efficiency of the microservice can be suppressed.
[0035] If destination information is stored in the destination information storage unit 214, the logic circuit 210 can generate the next request data without waiting for a pseudo-response RES, thereby improving the throughput of microservice processing.
[0036] Figure 2 shows an example of an information processing system in another embodiment. Detailed explanations of elements identical or similar to those in Figure 1 are omitted. The information processing system 100B shown in Figure 2 has multiple servers 120 (120a, 120b, 120c) interconnected via a network. The arrows connecting each server 120a, 120b, and 120c indicate a portion of the network. The servers 120a, 120b, and 120c, and the network connecting them, represent the data plane (DPL) of the service mesh.
[0037] Server 120 is an example of an information processing device. Server 120b is an example of another second information processing device that receives request data from 120a, or another first information processing device that sends request data to server 120c. The number of servers 120 installed in the information processing system 100B is not limited to three. Since servers 120a and 120c have the same configuration and the same functions as each other, the configuration and functions of server 120a will be described below.
[0038] Information processing system 100B, like information processing system 100A in Figure 1, employs a microservices architecture in which multiple microservices, each performed by server 120, are connected and coordinated via a network. Furthermore, Istio, for example, is used as the service mesh platform.
[0039] Server 120a has an FPGA 220 and a virtual machine 520. FPGA 220 has a communication interface unit 221 such as a NIC, an offload circuit unit 222 in which microservice processing functions are offloaded, and a destination control unit 223. Virtual machine 520 has a Pod 522 which includes a pseudo-container 420 and an Envoy 320. FPGA 220 is an example of a logic circuit. The offload circuit unit 222 is an example of a processing function unit. The pseudo-container 420 is an example of a pseudo-application. Envoy 320 is an example of a service mesh function unit and is a type of proxy that includes load balancer functionality.
[0040] FPGA220 is connected to the pseudo-container 420 via Envoy320. The communication interface unit 221 is connected to other servers 120 etc. via the network. The offload circuit unit 222 receives data plane communication request data from other servers 120 via the communication interface unit 211 and performs microservice processing using the request data.
[0041] The offload circuit unit 222 notifies the destination control unit 223 of the completion of microservice processing. Based on the commencement of microservice processing by the offload circuit unit 222, the FPGA 220 generates, for example, an HTTP (Hyper Text Transfer Protocol) request REQ for control plane communication and sends it to the pseudo-container 420. The HTTP request REQ is an example of a pseudo-request sent to the pseudo-container 420. Hereafter, the HTTP request REQ will also be referred to as a pseudo-request REQ.
[0042] FPGA220 sends a processing completion notification CMPT to the pseudo-container 420 based on the completion of microservice processing by the offload circuit unit 222. After receiving the pseudo-request REQ, the pseudo-container 420 sends an HTTP response RES to FPGA220 based on the receipt of the processing completion notification CMPT. The HTTP response RES is an example of a pseudo-response. Hereafter, the HTTP response RES will also be referred to as the pseudo-response RES.
[0043] For example, the pseudo-container 420, like the pseudo-application 410 in Figure 1, only has the function of receiving pseudo-requests REQ and processing completion notifications CMPT, and the function of sending pseudo-responses RES in response to the receipt of processing completion notifications CMPT.
[0044] The Envoy320 detects pseudo-requests (REQ), completion notifications (CMPT), and pseudo-responses (RES) to obtain information about the processing of microservices. For example, the information about microservice processing obtained by the Envoy320 may be retrieved by the control plane (CPL) and used for destination control of request data and load balancing.
[0045] Envoy320 rewrites the destination address included in the pseudo-response RES from pseudo-container 420. The destination address is an example of destination information indicating the destination of the next request data sent by server 120a (or 120c).
[0046] The destination control unit 223 notifies the communication interface unit 221 of the destination address included in the pseudo-response RES received from the pseudo-container 420 as the destination for the data processed by the offload circuit unit 222 (the next request data). The communication interface unit 221 then generates the request data for the next data plane communication, including the destination address notified by the destination control unit 223 in the data processed by the offload circuit unit 222. The communication interface unit 221 then sends the generated request data to the server 120b.
[0047] Server 120b has a virtual machine 520b, which in turn has a Pod 522b containing Envoy320b and an application container 420b. Envoy320b controls communication between servers 120 and controls the application container 420b to perform microservice processing using request data received from other servers 120.
[0048] The application container 420b uses the request data received from Envoy320 to process the microservices and forwards the processed data from the microservices back to Envoy320. Envoy320 rewrites the destination address of the processed data to generate the next request data and sends the generated next request data to another server 120c.
[0049] For example, server 120a sequentially receives frame data of a video, decodes the received frame data to generate image data, and transmits the generated image data to server 120b. For this reason, the offload circuit unit 222 of server 120a has the function of decoding each frame data of the video.
[0050] For example, server 120b corrects the brightness of image data for each frame received from server 120a and sends the corrected image data to server 120c. Therefore, the application container 420b of server 120b has a function to correct the brightness of image data. Server 120c uses the corrected image data received from server 120b to perform object detection processing in the image. Therefore, the offload circuit unit 222 of server 120c has an image recognition function. This allows image recognition processing to be performed at high speed using microservices.
[0051] Figure 3 shows an example of the functional configuration of server 120a in Figure 2. FPGA 220 has a notification processing unit 224 in addition to the configuration in Figure 2. The destination control unit 223 has a destination change unit 2231, a processing result holding unit 2232, and a destination information holding unit 2233. The configuration of the processing result holding unit 2232 is the same as the configuration of the processing result holding unit 213 in Figure 1. The configuration of the destination information holding unit 2233 is the same as the configuration of the destination information holding unit 214 in Figure 1.
[0052] Envoy320 has a monitoring unit 321 and a destination rewriting unit 322. Pseudo-container 420 has a notification reply unit 421 and a completion notification waiting unit 422. The completion notification waiting unit 422 has a queue 423 having multiple entries.
[0053] When the offload circuit unit 222 starts processing a microservice using request data received from the communication interface unit 221, it outputs a processing start notification to the notification processing unit 224. When the offload circuit unit 222 completes processing the microservice, it outputs a processing completion notification to the notification processing unit 224. In addition, when the offload circuit unit 222 completes processing the microservice, it outputs the processed data along with the processing completion notification to the destination control unit 223.
[0054] The notification processing unit 224 sends a pseudo-request REQ (Figure 2) to the pseudo-container 420 based on the start notification from the offload circuit unit 222. The notification processing unit 224 sends a processing completion notification CMPT (Figure 2) to the pseudo-container 420 based on the completion notification from the offload circuit unit 222.
[0055] The monitoring unit 321 of Envoy320, similar to the monitoring unit 311 in Figure 1, detects pseudo-requests REQ and processing completion notifications CMPT from the notification processing unit 224 and obtains information about the processing of the microservice. The monitoring unit 321 also detects pseudo-responses RES (Figure 2) from the pseudo-container 420 and obtains information about the processing of the microservice. For example, the information obtained by the monitoring unit 321 includes one or more of the start time, number of starts, completion time, processing time, and number of successes for the microservice processing.
[0056] The destination rewriting unit 322 of the Envoy320 rewrites the destination address included in the pseudo-response RES from the pseudo-container 420 to an appropriate destination address, similar to the destination rewriting unit 312 in Figure 1.
[0057] When the pseudo-container 420 receives a pseudo-request REQ, it stores the received pseudo-request REQ in queue 423, associating it with the request data. When the pseudo-container 420 receives a processing completion notification CMPT, the notification reply unit 421 of the pseudo-container 420 retrieves the pseudo-request REQ corresponding to the received processing completion notification CMPT from queue 423. The notification reply unit 421 extracts the information contained in the retrieved pseudo-request REQ (including the destination address), generates a pseudo-response RES, and sends the generated pseudo-response RES to FPGA 220.
[0058] When the notification processing unit 224 receives a pseudo-response RES from the pseudo-container 420, it outputs the destination address included in the pseudo-response RES to the destination change unit 2231. When the destination change unit 2231 receives a completion notification of the request data along with the processed data of the microservice from the offload circuit unit 222, it determines whether the destination address corresponding to the processed data is held in the destination information holding unit 2233. If the destination address corresponding to the processed data is held in the destination information holding unit 2233, the destination change unit 2231 retrieves the destination address from the destination information holding unit 2233. The destination change unit 2231 includes the retrieved destination address in the processed data by the offload circuit unit 222 to generate the request data for the next data plane communication, and outputs the generated request data to the communication interface unit 221.
[0059] If the destination change unit 2231 does not have a destination address corresponding to the processed data stored in the destination information storage unit 2233, it stores the processed data received from the offload circuit unit 222 in the processing result storage unit 2232. Then, if the destination change unit 2231 receives a pseudo-response RES from the pseudo-container 420 via the notification processing unit 224, it retrieves the processed data stored in the processing result storage unit 2232. The destination change unit 2231 includes the destination address contained in the pseudo-response RES in the processed data retrieved from the processing result storage unit 2232 to generate request data for the next data plane communication, and outputs the generated request data to the communication interface unit 221.
[0060] The communication interface unit 221 transmits the new request data received from the destination change unit 2231 to the destination address included in the new request data.
[0061] Figure 4 shows an example of the hardware configuration of server 120a in Figure 2. Server 120a has an FPGA 220 including a communication interface unit 221 such as a NIC, and a CPU processing unit 500. The CPU processing unit 500 has a CPU 501 and RAM (Random Access Memory) 502.
[0062] Although not particularly limited, the communication interface unit 221 is connected to a switch 600 located outside the server 120a via Ethernet (registered trademark) ETH. Also, although not particularly limited, the FPGA 220 is connected to the CPU 501 via a PCI (Peripheral Component Interconnect) interface. The CPU 501 then executes a program such as a hypervisor stored in RAM 502 to construct a virtual machine 520 having a Pod 522 including Envoy 320 and a pseudo-container 420.
[0063] Figure 5 shows an example of the operation of FPGA 220 in Figure 3. Figure 5 shows an example of how to control server 120a. Based on the fact that FPGA 220 has received request data at the communication interface unit 221, it starts the operation flow shown in Figure 5.
[0064] First, in step S100, FPGA220 generates a pseudo-request REQ and sends the generated pseudo-request REQ to the pseudo-container 420. Next, in step S102, FPGA220 performs offload processing of the request data using the offload circuit 222. Note that the operations in steps S100 and S102 may be performed in reverse order or in parallel.
[0065] Next, in step S104, FPGA220 generates a completion notification based on the completion of the offload processing and sends the generated completion notification to the pseudo-container 420. Next, in step S106, FPGA220 determines whether the destination address corresponding to the offloaded request data is held in the destination information holding unit 2233. If the destination address is held in the destination information holding unit 2233, FPGA220 performs the operation in step S114. If the destination address is not held in the destination information holding unit 2233, FPGA220 performs the operation in step S108.
[0066] In step S108, FPGA220 stores the result of the offload processing in the processing result holding unit 2232. Next, in step S110, FPGA220 waits to receive a pseudo-response RES from the pseudo-container 420, and if it receives a pseudo-response RES, it performs the operation in step S112.
[0067] In step S112, FPGA220 stores the destination address included in the pseudo-response RES in the destination information storage unit 2233 and performs the operation in step S114. In step S114, FPGA220 sends the result of the offload processing as the next request data according to the destination address stored in the destination information storage unit 2233, and terminates the request data offload processing shown in Figure 5.
[0068] Figure 6 shows an example of the operation of the Envoy320 in Figure 3. Figure 6 also shows an example of how the server 120a is controlled. The operation shown in Figure 6 is performed repeatedly. First, in step S200, if the Envoy320 detects a pseudo-request REQ, it performs the operation in step S202. If it does not detect a pseudo-request REQ, it terminates the operation shown in Figure 6.
[0069] In step S202, the Envoy320 stores the start time of the microservice processing based on the detection time of the pseudo-request REQ. Next, in step S204, the Envoy320 accumulates the number of times the microservice processing has started based on the detection of the pseudo-request REQ. Note that the operations in steps S202 and S204 may be performed in reverse order or in parallel.
[0070] Next, in step S206, if the Envoy320 detects a false response RES, it performs the operation in step S208. If it does not detect a false response RES, it terminates the operation shown in Figure 6.
[0071] In step S208, Envoy320 calculates the processing time of the microservice based on the difference between the detection time of the pseudo-response RES and the start time held in step S202. Next, in step S210, Envoy320 calculates the number of successful microservice processings by accumulating the number of times the pseudo-response RES has been detected. Note that the operations in steps S208 and S210 may be performed in reverse order or in parallel.
[0072] Next, in step S212, the Envoy320 rewrites the destination address included in the pseudo-response RES, transfers the pseudo-response RES with the rewritten destination address to the FPGA220, and completes the operation shown in Figure 6.
[0073] Figure 7 shows an example of the operation of the pseudo-container 420 in Figure 3. Figure 7 also shows an example of how to control the server 120a. The operation shown in Figure 7 is performed repeatedly.
[0074] First, in step S300, if the pseudo-container 420 receives a pseudo-request REQ from FPGA 220, it performs the operation in step S302. If it does not receive a pseudo-request REQ, it terminates the operation shown in Figure 7. In step S302, the pseudo-container 420 stores the received pseudo-request REQ in the completion notification waiting unit 422.
[0075] Next, in step S304, the pseudo-container 420 waits until it receives a processing completion notification CMPT from FPGA220. If the pseudo-container 420 receives the processing completion notification CMPT, it performs step S306; if it does not receive the processing completion notification CMPT, it terminates the operation shown in Figure 7. In step S306, the pseudo-container 420 generates a pseudo-response RES containing information such as the destination address included in the pseudo-request REQ, sends the generated pseudo-response RES to FPGA220, and terminates the operation shown in Figure 7.
[0076] As described above, the same effects as those of the embodiments described can be obtained in this embodiment as well. For example, by offloading the microservice processing function that uses request data to the FPGA220 instead of installing it in the application container within the virtual machine 520, the microservice processing can be performed without the intervention of the Envoy320.
[0077] By connecting FPGA220 and pseudo-container420 via Envoy320, Envoy320 can detect pseudo-requests (REQ), processing completion notifications (CMPT), and pseudo-responses (RES). Therefore, Envoy320 can obtain information regarding request data and microservice processing.
[0078] This allows the control plane CPL to appropriately update the service mesh control functions, enabling the implementation of service mesh functionality while suppressing a decrease in the throughput of microservices offloaded to FPGA220. Because service mesh functionality can be implemented while suppressing a decrease in microservice processing performance, the processing performance of the information processing unit 110 included in the microservice architecture and the information processing system can be improved. As a result, for example, image recognition processing can be performed at high speed using microservices.
[0079] If the destination address is not stored in the destination information storage unit 2233, the destination change unit 2231 stores the processed data of the microservice in the processing result storage unit 2232 and waits for a pseudo-response RES from the pseudo-application 410. This allows the destination address to be rewritten by the Envoy320 to be obtained even when the processing function of the microservice is offloaded to the offload circuit unit 222, and the next request data can be sent.
[0080] The destination change unit 2231 can generate the next request data without waiting for a pseudo-response RES if the destination address is held in the destination information holding unit 2233, thereby improving the throughput of microservice processing.
[0081] The features and advantages of the embodiments will become clear from the detailed description above. This is intended to be so as not to deviate from the spirit and scope of the claims, that the features and advantages of the embodiments described above are included. Furthermore, any improvement and modification should be readily conceivable to a person with ordinary skill in the art. Therefore, there is no intention to limit the scope of inventive embodiments to those described above, and it is also possible to rely on appropriate improvements and equivalents that fall within the scope disclosed in the embodiments. [Explanation of Symbols]
[0082] 100A, 100B Information Processing System 110 (110a, 110b, 110c) Information Processing Device 120 (120a, 120b, 120c) Server 210 Logic Circuits 211 Communication Interface Section 212 Processing Function Unit 213 Processing result holding unit 214 Destination Information Holding Unit 220 FPGA 221 Communication Interface Section 222 Off-road circuit section 223 Destination Control Unit 2231 Destination Change Section 2232 Processing result holding unit 2233 Destination Information Storage Unit 224 Notification Processing Unit 310 Service Mesh Functional Unit 311 Monitoring Department 312 Destination Rewriting Section 320, 320b Envoy 321 Monitoring Department 322 Destination Rewriting Unit 410 Virtual Application 420 Virtual Container 420b Application Container 421 Notification Reply Unit 422 Completion Notification Waiting Unit 500 CPU Processing Unit 501 CPU 502 RAM 520 Virtual Machine 522, 522b Pod 600 Switch CMPT Processing Completion Notification REQ Virtual Request RES Virtual Response
Claims
1. An information processing device included in an information processing system employing a microservices architecture, A logic circuit having a processing function unit that performs microservice processing and a communication interface unit that is connected to a network, A service mesh function unit that implements a service mesh, It has a pseudo-application that is connected to the logic circuit via the service mesh function unit and does not have microservice processing capabilities, Based on the fact that the communication interface unit has received data plane communication request data from another first information processing device, the logic circuit starts processing a service using the request data via the processing function unit, generates a pseudo request for control plane communication, sends the generated pseudo request to the pseudo application, and sends a processing completion notification to the pseudo application based on the completion of the service processing by the processing function unit. The pseudo application, upon receiving the processing completion notification after receiving the pseudo request, sends a pseudo response to the logic circuit. When the service mesh function unit detects the pseudo-response transmitted from the pseudo-application to the logic circuit, it rewrites the destination information included in the pseudo-response, and transfers the pseudo-response with the rewritten destination information to the logic circuit. Based on the receipt of the pseudo-response containing the rewritten destination information, the logic circuit generates request data for the next data plane communication by including the rewritten destination information in the processed data of the service, and transmits the generated request data from the communication interface unit to another second information processing device. Information processing device.
2. The logic circuit has a destination information holding unit that holds the rewritten destination information, and if destination information corresponding to the processed request data is held in the destination information holding unit, it generates the next data plane communication request data by including the destination information held in the destination information holding unit in the processed data of the service without waiting for the reception of the pseudo-response. The information processing apparatus according to claim 1.
3. The logic circuit has a processing result holding unit that holds data after processing of the service, and if destination information corresponding to the processed request data is not held in the destination information holding unit, it stores the processed data of the service in the processing result holding unit, and based on the receipt of the pseudo-response, it generates request data for the next data plane communication by including the rewritten destination information included in the pseudo-response in the processed data of the service, and stores the rewritten destination information in the destination information holding unit. The information processing apparatus according to claim 2.
4. When the service mesh function unit detects the pseudo-request sent from the logic circuit to the pseudo-application, it stores the time of detection as the start time of processing for the service. The information processing apparatus according to any one of claims 1 to 3.
5. When the service mesh function unit detects the pseudo-response transmitted from the pseudo-application to the logic circuit, it stores the detected time as the completion time of the service processing and calculates the processing time of the service based on the completion time and the start time. The information processing apparatus according to claim 4.
6. When the service mesh function unit detects the pseudo request sent from the logic circuit to the pseudo application, it accumulates the number of times the service processing has been started. The information processing apparatus according to any one of claims 1 to 3.
7. When the service mesh function unit detects the pseudo-response transmitted from the pseudo-application to the logic circuit, it accumulates the number of times the service processing has been completed as the number of times the service processing has been successful. The information processing apparatus according to claim 6.
8. An information processing system having multiple information processing devices and employing a microservices architecture, One or more of the aforementioned information processing devices are A logic circuit having a processing function unit that performs microservice processing and a communication interface unit that is connected to a network, A service mesh function unit that implements a service mesh, It has a pseudo-application that is connected to the logic circuit via the service mesh function unit and does not have microservice processing capabilities, Based on the fact that the communication interface unit has received data plane communication request data from another first information processing device, the logic circuit starts processing a service using the request data via the processing function unit, generates a pseudo request for control plane communication, sends the generated pseudo request to the pseudo application, and sends a processing completion notification to the pseudo application based on the completion of the service processing by the processing function unit. The pseudo application, upon receiving the processing completion notification after receiving the pseudo request, sends a pseudo response to the logic circuit. When the service mesh function unit detects the pseudo-response transmitted from the pseudo-application to the logic circuit, it rewrites the destination information included in the pseudo-response, and transfers the pseudo-response with the rewritten destination information to the logic circuit. Based on the receipt of the pseudo-response containing the rewritten destination information, the logic circuit generates request data for the next data plane communication by including the rewritten destination information in the processed data of the service, and transmits the generated request data from the communication interface unit to another second information processing device. Information processing system.
9. A control method for an information processing device included in an information processing system employing a microservice architecture, comprising: a logic circuit having a processing function unit for performing microservice processing and a communication interface unit connected to a network; a service mesh function unit for realizing a service mesh; and a pseudo-application connected to the logic circuit via the service mesh function unit and not having microservice processing capabilities, wherein the information processing device is included in an information processing system employing a microservice architecture, Based on the fact that the communication interface unit has received data plane communication request data from another first information processing device, the logic circuit starts processing a service using the request data via the processing function unit, generates a pseudo request for control plane communication, sends the generated pseudo request to the pseudo application, and sends a processing completion notification to the pseudo application based on the completion of the service processing by the processing function unit. The pseudo application, upon receiving the processing completion notification after receiving the pseudo request, sends a pseudo response to the logic circuit. When the service mesh function unit detects the pseudo-response transmitted from the pseudo-application to the logic circuit, it rewrites the destination information included in the pseudo-response, and transfers the pseudo-response with the rewritten destination information to the logic circuit. Based on the receipt of the pseudo-response containing the rewritten destination information, the logic circuit generates request data for the next data plane communication by including the rewritten destination information in the processed data of the service, and transmits the generated request data from the communication interface unit to another second information processing device. A method for controlling an information processing device.