Method, apparatus, device, and storage medium for processing data

By obtaining and comparing the target calls and actual calls of parameters in safe multi-party calculations, we judge whether the parameters will still be used and processed accordingly, solving the problem of computing node parameters occupying a large amount of memory, realizing the reduction of memory usage and the correctness of calculation.

CN113961944BActive Publication Date: 2025-06-13BAIDU ONLINE NETWORK TECH (BEIJIBG) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010700636.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-07-20
Publication Date
2025-06-13
Estimated Expiration
2040-07-20

AI Technical Summary

Technical Problem

In safe multi-party computing, the parameters generated by the computing nodes when processing data occupy a large amount of memory, resulting in high memory usage.

Method used

By obtaining the processing information of the target data, the target number of calls for each parameter is determined, and the actual number of calls is obtained from the calculation node in real time. According to the two, it is judged whether the parameters will still be used, and the parameter value is processed based on the judgment results to reduce memory usage.

Benefits of technology

On the premise of ensuring the correctness of calculations, the memory usage is effectively reduced and the memory utilization efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113961944B_ABST
    Figure CN113961944B_ABST
Patent Text Reader

Abstract

The present application discloses a method, apparatus, device, and storage medium for processing data, relating to the fields of secure multi-party computing, cryptography, and data processing. The specific implementation solution is as follows: obtain processing information for target data; determine the target call times of each parameter in the processing information; according to the processing information, send a data processing instruction to at least two computing nodes for the at least two computing nodes to process the target data; obtain in real time each parameter value and the actual call times of each parameter obtained during the data processing from the at least two computing nodes; process each parameter value according to the target call times and the actual call times. This implementation manner can determine whether a parameter will still be used according to the actual call times and the target call times of the parameter, and process the parameter value according to the judgment result, effectively reducing the memory occupancy on the premise of ensuring correct calculation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, specifically to the fields of secure multi-party computation, cryptography, and data processing, and particularly to methods, devices, equipment, and storage media for processing data. Background Art

[0002] Secure multi-party computation is actually a security protocol. As a subfield of cryptography, it allows multiple data owners to perform collaborative computations without trusting each other, output the computation results, and ensure that no party can obtain any information other than the deserved computation results. In other words, secure multi-party computation technology can obtain the usage value of data without disclosing the content of the original data.

[0003] A considerable amount of mathematical and cryptographic knowledge is required in the design process of secure multi-party computation protocols, such as encryption systems, secret sharing, oblivious transfer, etc. A large number of parameters will be generated during the computation. If these parameters are saved, it will inevitably occupy a large amount of memory. Summary of the Invention

[0004] There is provided a method, a device, equipment, and a storage medium for processing data.

[0005] According to a first aspect, there is provided a method for processing data, including: obtaining processing information for target data; determining the target call times of each parameter in the processing information; sending a data processing instruction to at least two computing nodes according to the processing information for the at least two computing nodes to process the target data; obtaining in real time each parameter value and the actual call times of each parameter obtained during the data processing from the at least two computing nodes; and processing each parameter value according to the target call times and the actual call times.

[0006] According to a second aspect, there is provided a device for processing data, including: an information obtaining unit configured to obtain processing information for target data; a times determining unit configured to determine the target call times of each parameter in the processing information; a processing instruction sending unit configured to send a data processing instruction to at least two computing nodes according to the processing information for the at least two computing nodes to process the target data; a times obtaining unit configured to obtain in real time each parameter value and the actual call times of each parameter obtained during the data processing from the at least two computing nodes; and a parameter processing unit configured to process each parameter value according to the target call times and the actual call times.

[0007] According to a third aspect, there is provided an electronic device for processing data, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the first aspect.

[0008] According to a fourth aspect, there is provided a non-transitory computer-readable storage medium storing computer instructions for causing a computer to execute the method described in the first aspect.

[0009] According to the technology of the present application, it is possible to determine whether a parameter will still be used based on the actual number of invocations and the target number of invocations of the parameter, and process the parameter value according to the determination result, effectively reducing the memory occupancy while ensuring correct calculation.

[0010] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The drawings are used to better understand the solution and do not constitute a limitation to the present application. Among them:

[0012] Figure 1 is an exemplary system architecture diagram to which an embodiment of the present application can be applied;

[0013] Figure 2 is a flowchart of an embodiment of the method for processing data according to the present application;

[0014] Figure 3 is a schematic diagram of an application scenario of the method for processing data according to the present application;

[0015] Figure 4 is a flowchart of another embodiment of the method for processing data according to the present application;

[0016] Figure 5 is a schematic structural diagram of an embodiment of the apparatus for processing data according to the present application;

[0017] Figure 6 is a block diagram of an electronic device for implementing the method for processing data in the embodiments of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0018] The exemplary embodiments of the present application will be described below with reference to the accompanying drawings. Various details of the embodiments of the present application are included to facilitate understanding, and they should be considered merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present application. Similarly, descriptions of well-known functions and structures are omitted in the following description for clarity and conciseness.

[0019] It should be noted that, without conflict, the embodiments in the present application and the features in the embodiments can be combined with each other. The present application will be described in detail below with reference to the drawings and in conjunction with the embodiments.

[0020] Figure 1 An exemplary system architecture 100 is shown, which can apply the embodiments of the method for processing data or the apparatus for processing data of the present application.

[0021] As Figure 1 shown, the system architecture 100 may include data providing nodes 101, 102, a management node 103, computing nodes 104, 105, and a privacy providing node 106. Communication can be carried out between each node through a network. The network can include various connection types, such as wired, wireless communication links, or fiber optic cables, etc.

[0022] The data providing nodes 101, 102 can store various data available for processing for the computing nodes 104, 105, so that the computing nodes 104, 105 can process the above data. These data cannot be obtained by other devices. The data providing nodes 101, 102 can output the data after encryption.

[0023] The computing nodes 104, 105 can be various electronic devices available for processing data. They can receive the processing instructions sent by the management node 103 and perform various operations on the data received from the data providing nodes 101, 102 according to the processing instructions.

[0024] The privacy providing node 106 is used to provide random numbers during the calculation process of the computing nodes 104, 105, so that the computing nodes 104 and 105 can obtain the correct processing results of the original data on the basis of not being able to obtain the original data.

[0025] It should be noted that the data providing nodes 101 and 102, the management node 103, the computing nodes 104 and 105, and the privacy providing node 106 can be either hardware or software. When the data providing nodes 101 and 102, the management node 103, the computing nodes 104 and 105, and the privacy providing node 106 are hardware, they can be implemented as a distributed cluster composed of multiple electronic devices or as a single electronic device. When the data providing nodes 101 and 102, the management node 103, the computing nodes 104 and 105, and the privacy providing node 106 are software, they can be implemented as multiple software or software modules (for example, used to provide distributed services) or as a single software or software module. No specific limitation is made here.

[0026] It should be noted that the method for processing data provided by the embodiments of the present application is generally executed by the management node 103. Correspondingly, the device for processing data is generally arranged in the management node 103.

[0027] It should be understood that Figure 1 the numbers of the data providing nodes, the management node, the computing nodes, and the privacy providing node in

[0028] Continue to refer to Figure 2 , which shows a flow 200 of an embodiment of the method for processing data according to the present application. The method for processing data in this embodiment includes the following steps:

[0029] Step 201, obtain the processing information for the target data.

[0030] In this embodiment, the execution subject of the method for processing data (such as Figure 1 the management node shown) can obtain the processing information for the target data. Here, the processing information can be the description information of the processing flow for the target data, and the processing information can include code information, formula information, text, etc. Technical personnel can write the processing information through the terminals they use, and the execution subject can be connected to the terminals used by the technical personnel and obtain the processing information written by the technical personnel. Here, the target data refers to the data received by the computing nodes (such as Figure 1 the computing nodes 104 and 105 shown). According to Figure 1 the system architecture shown, the computing nodes can receive the data provided by the data providing nodes or the data provided by the privacy providing nodes.

[0031] In the field of secure multi-party computing, since in addition to the data providing nodes (such as Figure 1Except for the data providing nodes 101 and 102 shown, other electronic devices cannot obtain the original data. Therefore, the data obtained by the computing nodes can be the data encrypted by the data providing nodes. For example, the original data includes two numbers, x = 3 and y = 5 respectively. The data received by the two computing nodes is different from the original data. The data received by computing node 1 can be x = 1, and the data received by computing node 2 can be x = 2. Of course, in order to distinguish the values sent to different computing nodes, subscripts can be used to label the two values. For example, the data sent to computing node 1 is labeled as x 1 , and the data sent to computing node 2 is labeled as x 2 . Similarly, y may also be divided into two values and sent to the two computing nodes respectively. For example, y 1 = 4, y 2 = 1. If the calculation for x and y is z = x * y, that is, the final obtained z value is 15. The privacy providing node needs to provide some random numbers during the calculation process so that the final calculation results of computing node 1 and computing node 2 are equal to 15.

[0032] Step 202, determine the target call times of each parameter in the processing information.

[0033] After obtaining the processing information, the execution entity can analyze the processing information to determine the target call times of each parameter therein. This analysis can include analyzing the call relationships of each function, and determining the target call times of each parameter according to the call relationships. It can be understood that since the target data includes the data sent by the data provider to the computing node and the data sent by the privacy provider to the computing node, there are many parameters in the calculation process. The execution entity can count the call times of each parameter.

[0034] For example, in the following code, the target call times of parameter x is 2. The first call is in w.dot(x), and the second is in dz.dot(x.transpose()).

[0035] SharedEntity z = w.dot(x).plus(b);

[0036] SharedEntity a = z.sigmoid();

[0037] SharedEntity dz = a.minus(y);

[0038] SharedEntity dw = dz.dot(x.transpose()).div(samples);

[0039] SharedEntity db = dz.sumH().div(samples);

[0040] w = w.minus(alpha.multiply(dw));

[0041] b = b.minus(alpha.multiply(db));

[0042] Step 203: According to the processing information, send data processing instructions to at least two computing nodes for the at least two computing nodes to process the target data.

[0043] After obtaining the above processing information, the execution entity can send data processing instructions to at least two computing nodes. After receiving the data processing instructions, each computing node can process the data received from the data providing node and the privacy providing node. Here, the data processing instructions can be the instructions obtained by the execution entity through analyzing the processing information. For example, the data processing instruction can be w.dot(x). After receiving this instruction, the computing node can calculate based on the w value and the x value. It can be understood that after the computing node completes the calculation of the data processing instruction, it can report to the execution entity that the calculation has been completed, so that the execution entity can send new data processing instructions for the obtained calculation results to the computing node.

[0044] Step 204: Obtain in real time each parameter value and the actual invocation times of each parameter obtained during the data processing from at least two computing nodes.

[0045] In this embodiment, the execution entity can also obtain in real time each parameter value and the actual invocation times of each parameter obtained during the data processing from each computing node. Specifically, the execution entity can receive the reports from the computing nodes to determine the data processing process. According to the data processing process, determine each parameter value obtained by calculation and the actual invocation times of each parameter.

[0046] Step 205: Process each parameter value according to the target invocation times and the actual invocation times.

[0047] The execution entity can compare the actual invocation times of the obtained parameters with the target invocation times. If the two are equal, it means that the parameter will not be invoked again. Then some parameter values can be deleted, which can effectively save memory space. Correspondingly, if the actual invocation times are less than the target invocation times, it means that the parameter will still be invoked. To ensure the accuracy of the calculation, the parameter value needs to be saved.

[0048] Continue to refer to Figure 3 , which shows a schematic diagram of an application scenario of the method for processing data according to the present application. In Figure 3In the application scenario, the database 301 of Hospital 1 stores the medical record information of diabetic patients, and the database 302 of Hospital 2 also stores the medical record information of diabetic patients. Due to the existing privacy data protection scheme, the medical record information of diabetic patients in Hospital 1 and Hospital 2 cannot be shared with other electronic devices. In secure multi-party computation, Hospital 1 and Hospital 2 can encrypt the medical record information of diabetic patients and send it to computing nodes 303 and 304 respectively. At the same time, the privacy data provider 305 can also send random numbers to computing nodes 303 and 304 for processing. The server 306 can obtain the processing information for the above-mentioned medical record information of diabetic patients. After the processing of steps 202 to 205, after the data processing is completed, the server 306 can delete the parameter values obtained during the calculation process.

[0049] The method for processing data provided by the above embodiment of the present application can determine whether a parameter will still be used according to the actual call times and the target call times of the parameter, and process the parameter value according to the judgment result, effectively reducing the memory occupation on the premise of ensuring correct calculation.

[0050] Continue to refer to Figure 4 , which shows the flow 400 of another embodiment of the method for processing data according to the present application. As Figure 4 shown, the method for processing data in this embodiment may include the following steps:

[0051] Step 401, send instructions to a privacy providing node and at least one data providing node, so that the privacy providing node and at least one data providing node send target data to at least two computing nodes.

[0052] In this embodiment, the execution subject can send instructions to the privacy providing node and at least one data providing node to notify the privacy providing node and at least one data providing node to send target data to at least two computing nodes. In some specific application scenarios, after the privacy providing node, each data providing node, and each computing node are started, they need to first register with the execution subject. After the registration is completed, if the execution subject determines that each node is in a normal working state, it can send instructions to the privacy providing node and at least one data providing node, so that the privacy providing node and at least one data providing node send target data to at least two computing nodes. After receiving the data, the computing node can obtain the computing logic from the execution subject to calculate the received data.

[0053] Step 402, obtain the processing information for the target data.

[0054] Step 403, determine the function call chain according to the processing information.

[0055] In this embodiment, the execution entity can determine the function call chain according to the processing information. Specifically, the execution entity can first analyze the processing information to determine the call relationships between functions in the code. By connecting the call relationships of each function in series, the function call chain is obtained.

[0056] Step 404: Determine the target call times of each parameter according to the function call chain.

[0057] After obtaining the function call chain, the execution entity can count the number of occurrences of each parameter in the function call chain and use the obtained number as the target call times.

[0058] Step 405: Send data processing instructions to at least two computing nodes according to the processing information for the at least two computing nodes to process the target data.

[0059] Step 406: Real-time obtain the values of each parameter and the actual call times of each parameter obtained during the data processing from at least two computing nodes.

[0060] The principles of Steps 405-406 are similar to those of Steps 203-204 and will not be elaborated here.

[0061] Step 407: In response to determining that the target call times of each parameter value are greater than the actual call times, store each parameter value and send a storage instruction to at least two computing nodes to store each parameter value.

[0062] In this embodiment, if the target call times of each parameter value are greater than the actual call times, it indicates that the parameter value will still be called. In this case, the execution entity can obtain the parameter values calculated from each computing node and store each parameter value. At the same time, the execution entity can also send a storage instruction to at least two computing nodes, that is, notify each computing node to store each parameter value.

[0063] Step 408: In response to determining that the target call times of each parameter value are equal to the actual call times, determine the parameter values other than the parameter values at the top of the function call chain as the parameter values to be deleted; delete the parameter values to be deleted and send a deletion instruction to at least two computing nodes to delete the parameter values to be deleted.

[0064] In this embodiment, if the target call times of each parameter value are equal to the actual call times, it indicates that the calculation logic has been completed. At this time, the execution entity can only retain the parameter values at the top of the function call chain. Here, the parameters at the top of the function call chain can be at least one calculated value finally obtained. The execution entity can only retain these parameter values for subsequent calculations. Take the remaining parameter values as the parameter values to be deleted and delete the previously stored parameter values to be deleted. At the same time, the execution entity can also send a deletion instruction to at least two computing nodes, that is, notify each computing node to delete the parameter values to be deleted.

[0065] Step 409: According to the data provided by at least one data providing node, send an instruction to at least one data providing node, so that at least one data providing node obtains the data processing results from at least two computing nodes.

[0066] In this embodiment, after determining that each computing node has completed data processing, the execution entity can return the data processing results to the data providing nodes. However, when there are multiple data providing nodes, due to the privacy data protection scheme, the data processing results of data providing node A cannot be sent to data providing node B. Since the data sent by each data providing node to each computing node has an identifier, the execution entity can send an instruction to each data providing node according to the identifier of the data provided by each data providing node, so that it obtains the data processing results corresponding to the identifier of the data from the computing node. In this way, both the utilization of the original data can be ensured and the processing results of the original data will not be leaked.

[0067] The method for processing data provided in the foregoing embodiments of the present application can determine the target call times of each parameter according to the function call chain, and determine whether the parameter value will still be used according to the target call times and the actual call times. After determining that it will not be used, only the parameter value at the top of the function call chain is saved for subsequent use. In addition, the data processing results can also be returned to the data providing node that provides the corresponding data.

[0068] Further referring to Figure 5 , as an implementation of the methods shown in the above figures, the present application provides an embodiment of an apparatus for processing data. This apparatus embodiment corresponds to Figure 2 the method embodiment shown, and this apparatus can be specifically applied to various electronic devices.

[0069] As shown in Figure 5 , the data processing apparatus 500 in this embodiment includes: an information acquisition unit 501, a times determination unit 502, a processing instruction sending unit 503, a times acquisition unit 504, and a parameter processing unit 505.

[0070] The information acquisition unit 501 is configured to acquire the processing information for the target data.

[0071] The times determination unit 502 is configured to determine the target call times of each parameter in the processing information.

[0072] The processing instruction sending unit 503 is configured to send a data processing instruction to at least two computing nodes according to the processing information, for at least two computing nodes to process the target data.

[0073] The frequency acquisition unit 504 is configured to obtain, in real time, each parameter value and the actual invocation frequency of each parameter obtained during the data processing from at least two computing nodes.

[0074] The parameter processing unit 505 is configured to process each parameter value according to the target invocation frequency and the actual invocation frequency.

[0075] In some optional implementation manners of this embodiment, the frequency determination unit 502 may be further configured to: determine a function call chain according to the processing information; and determine the target invocation frequency of each parameter according to the function call chain.

[0076] In some optional implementation manners of this embodiment, the parameter processing unit 505 may be further configured to: in response to determining that the target invocation frequency of each parameter value is greater than the actual invocation frequency, store each parameter value and send a storage instruction to at least two computing nodes to store each parameter value.

[0077] In some optional implementation manners of this embodiment, the parameter processing unit 505 may be further configured to: in response to determining that the target invocation frequency of each parameter value is equal to the actual invocation frequency, determine the parameter values other than the parameter value at the top of the function call chain as the parameter values to be deleted; delete the parameter values to be deleted and send a deletion instruction to at least two computing nodes to delete the parameter values to be deleted.

[0078] In some optional implementation manners of this embodiment, the apparatus 500 may further include Figure 5 a first instruction sending unit (not shown in the figure), configured to send instructions to a privacy providing node and at least one data providing node, so that the privacy providing node and at least one data providing node send target data to at least two computing nodes.

[0079] In some optional implementation manners of this embodiment, the apparatus 500 may further include Figure 5 a second instruction sending unit (not shown in the figure), configured to send instructions to at least one data providing node according to the data provided by at least one data providing node, so that at least one data providing node obtains a data processing result from at least two computing nodes.

[0080] It should be understood that the units 501 to 505 described in the apparatus 500 for processing data respectively correspond to the respective steps in the method described in the reference Figure 2 Therefore, the operations and features described above for the method for processing data also apply to the apparatus 500 and the units included therein, and are not described herein again.

[0081] According to the embodiments of the present application, the present application also provides an electronic device and a readable storage medium.

[0082] As shown Figure 6 in the figure, it is a block diagram of an electronic device for executing a method for processing data according to an embodiment of the present application. The electronic device is intended to represent various forms of digital computers, such as, a laptop computer, a desktop computer, a workbench, a personal digital assistant, a server, a blade server, a mainframe computer, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as, a personal digital processor, a cellular phone, a smart phone, a wearable device, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or claimed herein.

[0083] As shown Figure 6 in the figure, the electronic device includes: one or more processors 601, a memory 602, and an interface for connecting the components, including a high-speed interface and a low-speed interface. Each component is interconnected using different buses and can be installed on a common motherboard or in other ways as needed. The processor can process instructions executed within the electronic device, including instructions stored in the memory or on the memory to display graphical information of a GUI on an external input / output device (such as a display device coupled to the interface). In other embodiments, if needed, multiple processors and / or multiple buses can be used with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides part of the necessary operations (such as, as a server array, a set of blade servers, or a multi-processor system). Figure 6 Here, one processor 601 is taken as an example.

[0084] The memory 602 is the non-transitory computer-readable storage medium provided by the present application. Wherein, the memory stores instructions executable by at least one processor, so that the at least one processor executes the method for processing data provided by the present application. The non-transitory computer-readable storage medium of the present application stores computer instructions, and the computer instructions are used to cause a computer to execute the method for processing data provided by the present application.

[0085] The memory 602, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as the program instructions / modules corresponding to the method for processing data executed in the embodiment of the present application (for example, attached Figure 5The information acquisition unit 501, the frequency determination unit 502, the processing instruction sending unit 503, the frequency acquisition unit 504, and the parameter processing unit 505) shown. The processor 601 executes various functional applications and data processing of the server by running non-transitory software programs, instructions, and modules stored in the memory 602, that is, implements the method for processing data in the above method embodiments.

[0086] The memory 602 may include a program storage area and a data storage area. Among them, the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created according to the use of the electronic device for processing data, etc. In addition, the memory 602 may include a high-speed random access memory, and may also include a non-transitory memory, such as at least one disk storage device, a flash memory device, or other non-transitory solid-state storage devices. In some embodiments, the memory 602 may optionally include a memory remotely provided with respect to the processor 601, and these remote memories may be connected to the electronic device for processing data through a network. Examples of the above network include but are not limited to the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.

[0087] The electronic device for executing the method for processing data may further include: an input device 603 and an output device 604. The processor 601, the memory 602, the input device 603, and the output device 604 may be connected through a bus or other means, Figure 6 Taking the connection through the bus as an example.

[0088] The input device 603 may receive input digital or character information, and generate key signal inputs related to the user settings and function controls of the electronic device for processing data, such as input devices such as a touch screen, a keypad, a mouse, a trackpad, a touchpad, a pointing stick, one or more mouse buttons, a trackball, a joystick, etc. The output device 604 may include a display device, an auxiliary lighting device (for example, an LED), a tactile feedback device (for example, a vibration motor), etc. The display device may include but is not limited to a liquid crystal display (LCD), a light-emitting diode (LED) display, and a plasma display. In some embodiments, the display device may be a touch screen.

[0089] The various embodiments of the systems and techniques described herein can be implemented in digital electronic circuitry, integrated circuit systems, application specific ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include: being implemented in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be a special-purpose or general-purpose programmable processor that receives data and instructions from, and transmits data and instructions to, a storage system, at least one input device, and at least one output device.

[0090] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and / or device (e.g., a disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.

[0091] In order to provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or trackball) by which the user can provide input to the computer. Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0092] The systems and techniques described herein can be implemented in a computing system including backend components (e.g., as a data server), or a computing system including middleware components (e.g., an application server), or a computing system including frontend components (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or a computing system including any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected to each other by digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include: local area network (LAN), wide area network (WAN), and the Internet.

[0093] A computer system can include a client and a server. The client and the server are generally remote from each other and typically interact through a communication network. The client - server relationship is created by computer programs running on the respective computers and having a client - server relationship with each other.

[0094] According to the technical solution of the embodiment of the present application, it is possible to determine whether a parameter will still be used based on the actual call count and the target call count of the parameter, and process the parameter value according to the determination result. On the premise of ensuring correct calculation, the memory occupancy is effectively reduced.

[0095] It should be understood that various forms of the processes shown above can be used, with steps reordered, added, or deleted. For example, the steps recited in the present application can be executed in parallel, sequentially, or in a different order, as long as the desired results of the technical solution disclosed in the present application can be achieved. No limitation is made herein.

[0096] The above - mentioned specific implementation manners do not constitute a limitation on the protection scope of the present application. Those skilled in the art should understand that various modifications, combinations, sub - combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principle of the present application shall be included within the protection scope of the present application.

Claims

1. A method for processing data, comprising: obtaining processing information for target data; determining the target call times of the parameters in the processing information; sending a data processing instruction to at least two computing nodes according to the processing information for the at least two computing nodes to process the target data; obtaining in real time the parameter values and the actual call times of the parameters obtained during the data processing from the at least two computing nodes; processing the parameter values according to the target call times and the actual call times, including: in response to determining that the target call times of the parameter values are equal to the actual call times, determining the parameter values other than the parameter values at the top of the function call chain as the parameter values to be deleted; deleting the parameter values to be deleted and sending a deletion instruction to the at least two computing nodes to delete the parameter values to be deleted, and the function call chain is determined based on the processing information.

2. The method according to claim 1, wherein, the determining the target call times of the parameters in the processing information includes: determining the target call times of the parameters according to the function call chain.

3. The method according to claim 2, wherein, the processing the parameter values according to the target call times and the actual call times further includes: in response to determining that the target call times of the parameter values are greater than the actual call times, storing the parameter values and sending a storage instruction to the at least two computing nodes to store the parameter values.

4. The method according to claim 1, wherein, the method further includes: sending instructions to a privacy providing node and at least one data providing node to enable the privacy providing node and the at least one data providing node to send the target data to the at least two computing nodes.

5. The method according to claim 4, wherein, the method further includes: sending an instruction to the at least one data providing node according to the data provided by the at least one data providing node to enable the at least one data providing node to obtain the data processing result from the at least two computing nodes.

6. A device for processing data, comprising: an information obtaining unit configured to obtain processing information for target data; a times determining unit configured to determine the target call times of the parameters in the processing information; a processing instruction sending unit configured to send a data processing instruction to at least two computing nodes according to the processing information for the at least two computing nodes to process the target data; a times obtaining unit configured to obtain in real time the parameter values and the actual call times of the parameters obtained during the data processing from the at least two computing nodes; a parameter processing unit configured to process the parameter values according to the target call times and the actual call times; wherein the parameter processing unit is further configured to: in response to determining that the target call times of the parameter values are equal to the actual call times, determine the parameter values other than the parameter values at the top of the function call chain as the parameter values to be deleted; Delete the parameter value to be deleted and send a deletion instruction to the at least two computing nodes to delete the parameter value to be deleted, and the function call chain is determined based on the processing information.

7. The apparatus according to claim 6, wherein, the number determination unit is further configured to: Determine the target call number of each parameter according to the function call chain.

8. The apparatus according to claim 7, wherein, the parameter processing unit is further configured to: In response to determining that the target call number of each parameter value is greater than the actual call number, store each parameter value and send a storage instruction to the at least two computing nodes to store each parameter value.

9. The apparatus according to claim 6, wherein, the apparatus further comprises: A first instruction sending unit, configured to send instructions to a privacy providing node and at least one data providing node, so that the privacy providing node and the at least one data providing node send the target data to the at least two computing nodes.

10. The apparatus according to claim 9, wherein, the apparatus further comprises: A second instruction sending unit, configured to send instructions to the at least one data providing node according to the data provided by the at least one data providing node, so that the at least one data providing node obtains a data processing result from the at least two computing nodes.

11. An electronic device for processing data, comprising: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1-5.

12. A non-transitory computer-readable storage medium storing computer instructions for causing a computer to execute the method according to any one of claims 1-5.

Citation Information

Patent Citations

  • Cache data processing method and system and readable storage medium

    CN110147331A

  • Data processing method and device, storage medium and computer device

    CN110765320A