Data processing method and device and storage medium
By using cache services and the first process in a distributed computing system, the data generated by multiple clients is stored and transferred in the order of acquisition, which solves the problems of inefficiency and merge errors caused by data dispersion, and realizes efficient data storage and management.
Patent Information
- Application Number
- CN202510175359.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-17
- Publication Date
- 2025-06-03
AI Technical Summary
In a distributed computing system, data is scattered in multiple sub-databases due to the intermediate files generated by each client, resulting in inefficient storage, excessive disk usage, and possible overwrite errors when merging data.
By obtaining multiple sets of data generated by multiple clients, and based on the order of acquisition of data, it is stored in a cache service initiated by the server, and then transferring the data from the cache service to a designated storage area of the server through the first process.
Improves storage efficiency, avoids overwrite errors during merge processing, and simplifies data management process.
Smart Images

Figure CN120086286A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure mainly relate to the field of computer technology, and more specifically, to methods, devices, and storage media for data processing. Background Art
[0002] With the rapid development of computer technology, distributed systems have become an important means for processing large-scale complex tasks. In a distributed computing system, since each client generates corresponding intermediate files, the data generated by each client will be scattered in multiple sub-databases. Therefore, it is necessary to merge the data scattered in multiple sub-databases. Summary of the Invention
[0003] In a first aspect of the present disclosure, a method for data processing is provided. The method includes: obtaining multiple sets of data respectively from multiple clients, where the multiple clients are configured to cooperate with a server to execute a target task, and the multiple sets of data are generated in real time during the execution of the target task by the multiple clients; storing the multiple sets of data in a cache service started by the server based on the obtaining order of the multiple sets of data; and transferring the multiple sets of data from the cache service to a specified storage area in the server through a first process started by the server based on the obtaining order.
[0004] In a second aspect of the present disclosure, a method for data processing is provided. The method includes: at the server, starting a cache service and a first process; receiving multiple sets of data respectively from multiple clients, where the multiple clients are configured to cooperate with the server to execute a target task, and the multiple sets of data are generated in real time during the execution of the target task by the multiple clients; storing the multiple sets of data in the cache service based on the receiving order of the multiple sets of data; and transferring the multiple sets of data from the cache service to a specified storage area in the server through the first process based on the receiving order.
[0005] In a third aspect of the present disclosure, an electronic device is provided. The electronic device includes a processor and a memory coupled to the processor. The memory has instructions stored therein, and when the instructions are executed by the processor, the electronic device executes the method according to the first aspect of the present disclosure.
[0006] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided. A computer program is stored on the computer-readable storage medium. When the computer program is executed by a processor, the method according to the first aspect of the present disclosure is implemented.
[0007] As will be understood from the following description, according to embodiments of the present disclosure, multiple sets of data are obtained from multiple clients respectively, where the multiple clients are configured to cooperate with a server to execute a target task, and the multiple sets of data are generated in real time during the execution of the target task by the multiple clients; based on the acquisition order of the multiple sets of data, the multiple sets of data are stored in a cache service started by the server; and through a first process started by the server, based on the acquisition order, the multiple sets of data are transferred from the cache service to a specified storage area in the server. In this way, the storage efficiency can be improved, and at the same time, it is avoided that there will be no overwrite error when merging the data generated by each of the multiple clients.
[0008] It should be understood that the content described in the present invention content section is not intended to limit the key features 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
[0009] With reference to the accompanying drawings and the following detailed description, the above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent. In the drawings, the same or similar reference numerals denote the same or similar elements, where:
[0010] Figure 1 A schematic diagram showing an example environment in which embodiments of the present disclosure can be implemented;
[0011] Figure 2 A schematic diagram showing an example of processing an integrated circuit layout according to some embodiments of the present disclosure;
[0012] Figure 3 A flowchart showing a process for data processing according to some embodiments of the present disclosure;
[0013] Figure 4 A schematic diagram showing an example of the memory occupancy of a cache service according to some embodiments of the present disclosure;
[0014] Figure 5 A schematic diagram showing a process in which a distributed system and other systems or software cooperate to execute a task according to some embodiments of the present disclosure;
[0015] Figure 6 A flowchart showing another process for data processing according to some embodiments of the present disclosure; and
[0016] Figure 7 A block diagram of an electronic device in which one or more embodiments of the present disclosure can be implemented. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Instead, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not used to limit the protection scope of the present disclosure.
[0018] In the description of the embodiments of the present disclosure, the term "including" and its like should be understood as an open inclusion, that is, "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. There may also be other explicit and implicit definitions hereinafter.
[0019] As briefly mentioned above, in a distributed computing system, since each client generates corresponding intermediate files, this will cause global data to be scattered in multiple sub-databases. This will lead to problems such as low data storage efficiency, high disk occupancy rate, and inability to overall plan global data.
[0020] At the same time, if traditional database storage methods are used in sub-databases, when merging data from multiple sub-databases into global data, a complex lock system needs to be designed to ensure that the data written will not be overwritten incorrectly, which is not conducive to the subsequent maintenance of the data.
[0021] To this end, embodiments of the present disclosure propose a method for data processing. According to the embodiments of the present disclosure, multiple groups of data from multiple clients are obtained. The multiple clients are configured to cooperate with the server to execute a target task, and the multiple groups of data are generated in real time during the execution of the target task by the multiple clients. Further, based on the acquisition order of the multiple groups of data, the multiple groups of data are stored in a cache service started by the server. Finally, through a first process started by the server, based on the acquisition order, the multiple groups of data are transferred from the cache service to a specified storage area in the server.
[0022] According to the embodiments of the present disclosure, when storing the data generated by multiple clients, first, the data generated by the multiple clients is stored in the cache service according to the reception order, and then the data generated by the multiple clients is transferred from the cache service to a specified storage area in the server based on the reception order, which can improve the storage efficiency and avoid the situation of incorrect overwriting when merging the data generated by each of the multiple clients.
[0023] Various exemplary implementations of this solution will be described in detail below with reference to the drawings.
[0024] Figure 1 A schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. The example environment 100 may include an electronic device 110 in which a distributed system may be deployed. It should be understood that in some embodiments, the distributed system may be implemented in an independent device. However, depending on the device capabilities, in other embodiments, the distributed system may be implemented in multiple devices. Therefore, the embodiments of the present disclosure are not limited in this regard.
[0025] As Figure 1 shown, the distributed system may include servers 120 and clients 130-1, 130-2, ……, 130-N. For ease of discussion, the clients 130-1, 130-2, ……, 130-N may be collectively or individually referred to as the client 130.
[0026] The distributed system may perform a target task. In the embodiments of the present disclosure, the target task may be, for example, a task related to the field of Electronic Design Automation (EDA). Such as, the processing of integrated circuit layouts. During the collaborative execution of the target task by the server 120 and multiple clients 130, multiple clients 130 may generate multiple sets of data, and the server 120 may start a caching service 140, a protection process 150, and an output process 160.
[0027] Multiple clients 130 may store multiple sets of data generated during the execution of the target task in the caching service 140. The protection process 150 may ensure the normal operation of the caching service 140, and the output process 160 may transfer the data in the caching service 140 to the database 170. In some embodiments, the database 170 may be a local database of the electronic device 110. In other embodiments, the database 170 may also be the corresponding database of the server 120.
[0028] The electronic device 110 can be any type of mobile or portable terminal, including mobile phones, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable game terminals, VR / AR devices, Personal Communication System (PCS) devices, personal navigation devices, Personal Digital Assistant (PDA), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio broadcast receivers, e-book devices, game devices, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the electronic device 110 can also support any type of interface for the user (such as a "wearable" circuit, etc.).
[0029] It should be understood that the structure and function of the environment 100 are described only for exemplary purposes, without implying any limitation on the scope of the present disclosure. Example embodiments according to the present disclosure will be described in detail below with reference to the accompanying drawings.
[0030] In the following description, embodiments will be described with reference to the task of validating a mask. Of course, it can be understood that the embodiments of the present disclosure are not limited to this application scenario. The target task can also be other types of tasks.
[0031] After the Optical Proximity Correction (OPC) software processes the integrated circuit layout, a mask for the integrated circuit layout can be generated. Optical simulation of the mask for the integrated circuit layout can generate a final imaging image.
[0032] For example, refer to Figure 2 , Figure 2 FIG. 200 is a schematic diagram showing an example of processing an integrated circuit layout according to some embodiments of the present disclosure. Refer to Figure 2 , after the OPC software processes the integrated circuit layout, a mask 210 for the integrated circuit layout can be generated. The mask 210 has a target image 220. Optical simulation of the mask 210 for the integrated circuit layout can generate a final imaging image 230.
[0033] It should be understood that the target image 220 is also the integrated circuit layout. Therefore, after generating the final imaging image 230, various types of parameters between the target image 220 and the final imaging image 230 need to be determined, so that the target image 220 and the final imaging image 230 meet the predetermined requirements to achieve the design requirements. By way of example, the distances (e.g., d1, d2, d3, etc.) from multiple points on the edge of the target image 220 to the edge of the final imaging image 230 can be calculated, and by determining whether the multiple distances are all within the predetermined range (e.g., ±0.5 nm) of the design requirements, it can be judged whether the mask generated by the OPC software meets the requirements.
[0034] Given the large scale of the integrated circuit layout, in order to achieve efficient processing, it needs to be divided into multiple sub-layouts. The aim is to utilize the parallel processing capabilities of the distributed system, enabling each client to be responsible for processing different sub-layouts respectively. After each client completes the processing task of the corresponding sub-layout, the server then aggregates and integrates the processing results.
[0035] Since each client will generate corresponding intermediate files, this will cause the global data to be scattered in multiple sub-databases, resulting in low data storage efficiency, high disk occupancy rate, and inability to overall plan the global data, etc. At the same time, if the traditional database storage method is used in the sub-databases, when merging the data in multiple sub-databases into global data, a complex lock system needs to be designed to ensure that the data written will not be overwritten incorrectly, which is not conducive to the subsequent maintenance of the data.
[0036] In order to improve the storage efficiency and avoid overwriting errors when merging the data generated by multiple clients respectively. In the embodiments of the present disclosure, by first storing the data generated by multiple clients in the cache service, and then storing the corresponding data from the cache service to the local database.
[0037] Specifically, refer to Figure 3 , Figure 3 shows a flowchart of a process 300 for data processing according to some embodiments of the present disclosure. In some embodiments, the process 300 can be executed by an electronic device 110 as shown in Figure 1 . It should be understood that the process 300 may further include additional blocks not shown and / or may omit a certain (or certain) block shown, and the scope of the present disclosure is not limited in this regard. The following will describe the process 300 in detail with reference to Figure 1 and Figure 2 .
[0038] At block 310, the electronic device 110 obtains multiple sets of data from multiple clients 130 respectively. The multiple clients 130 are configured to cooperate with the server 120 to perform a task of verifying a mask, and the multiple sets of data are generated in real time during the task of verifying the mask performed by the multiple clients 130. In some embodiments, each of the multiple clients 130 may generate a set of data during the task of verifying the mask. In other embodiments, each of the multiple clients 130 may also generate data during the task of verifying the mask, and the data generated by each of the multiple clients 130 forms multiple sets of data. Embodiments of the present disclosure are not intended to limit the number of data generated by the clients.
[0039] When the server 120 cooperates with the multiple clients 130 to perform the task of verifying the mask, the server 120 may divide the mask 220 into multiple sub-masks and allocate the multiple sub-masks to the multiple clients 130, so that the multiple clients 130 process one or more received sub-masks respectively. Of course, the division of the mask 220 may also be completed by other devices or manually. In this case, the server 120 only needs to allocate the multiple sub-masks obtained by the division to the multiple clients 130. The multiple sets of data may be various data generated by the multiple clients 130 processing the corresponding sub-masks. For example, the distance between the edge of the mask 220 and the edge of the final imaging image 230.
[0040] At block 320, the electronic device 110 stores the multiple sets of data in the cache service 140 started by the server 120 based on the acquisition order of the multiple sets of data.
[0041] Before processing the task of verifying the mask, an electronic device may be allocated to the distributed system that executes the task, that is, one or more electronic devices are selected from multiple electronic devices to implement the distributed system. After allocating an electronic device to the distributed implementation system, taking the allocation of one electronic device as an example, the electronic device 110 may cause the server 120 to start the cache service 140 to store multiple sets of data generated in real time by the multiple clients 120 during the task of verifying the mask. In some embodiments, the electronic device 110 may store the multiple sets of data in the cache service 140 based on the acquisition order of the multiple sets of data (for example, the order of before and after).
[0042] In some embodiments, the multiple sets of data may be stored in the cache service 140 in the form of key-value pairs. Specifically, each set of data in the multiple sets of data corresponds to a key-value pair. The value in the corresponding key-value pair is the set of data, and the key in the corresponding key-value pair is the unique identifier of the data in the cache service 140.
[0043] Alternatively or additionally, when the electronic device 110 stores multiple sets of data in the form of key-value pairs, it can perform hash operations on each of the multiple sets of data, so as to determine the values in the key-value pairs corresponding to each set of data among the multiple sets of data and the unique identifiers of each set of data in the cache service 140.
[0044] In block 330, the electronic device 110 transfers multiple sets of data from the cache service 140 to a specified storage area in the server 120 based on the acquisition order through the output process 160 initiated by the server 120.
[0045] Specifically, the electronic device 110 can output multiple sets of data from the cache service 140 to a specified area (e.g., the database 170) in the server 120 through the output process 160 based on the acquisition order of the multiple sets of data, and after or simultaneously with outputting the data, the output process 160 deletes the output data in the cache service 140. In this way, the output and cleaning of the cache service 140 can be achieved, thereby reducing the pressure on the cache service 140, preventing task termination caused by memory overflow, and retaining complete data in the database 170.
[0046] See Figure 4 , Figure 4 FIG. 300 is a schematic diagram showing an example of the memory occupancy of the cache service 140 according to some embodiments of the present disclosure. As Figure 3 shown, the ordinate of the coordinate system in the figure can represent the memory usage rate of the cache service 140. After writing the data in the cache service 140 into the database 170 and deleting the corresponding data in the cache service 140, obviously, the memory usage rate of the cache service 140 shows a significant decrease.
[0047] In some embodiments, the electronic device 110 can transfer at least one set of data from the cache service 140 to a specified storage area in the server 120 based on the acquisition order of at least one set of data corresponding to at least one key in response to determining that there is at least one key in the cache service 140. As described above, "transfer" here also means first outputting the data from the cache service 140 to the database 170, and then or simultaneously deleting the output data in the cache service 140.
[0048] Furthermore, the output process 160 can also periodically clean the data in the cache service 140, thereby further reducing the pressure on the cache service 140 and preventing task termination caused by memory overflow.
[0049] In some embodiments, the electronic device 110 may also detect the data storage status of the cache service 140 at a first predetermined frequency. The data storage status indicates whether there is valid data in the cache service 140. Based on the data storage status of the cache service 140, the server 120 determines the processing for the output process 160, and the processing may include starting or disabling. The valid data here refers to the data stored in the cache service 140.
[0050] In some embodiments, the electronic device 110 may detect the data storage status of the cache service 140 at a first predetermined frequency. If at least one value in at least one key-value pair corresponding to at least one set of data is detected in the cache service 140, it indicates that there is valid data in the cache service 140. Otherwise, it indicates that there is no valid data in the cache service 140.
[0051] For example, the electronic device 110 may detect whether there is a value in at least one key-value pair corresponding to at least one set of data in the cache service 140 every 10 seconds. If there is at least one value in at least one key-value pair, the at least one value may be sequentially transferred to the database 170 based on the acquisition order of the at least one value in the at least one key-value pair.
[0052] In some embodiments, when the electronic device 110 determines that the data storage status indicates that there is no valid data in the cache service 140, the server 120 may disable the output process 160. And when the electronic device 110 determines that the data storage status indicates that there is valid data in the cache service 140, the server 120 may start the output process 160, so as to control the start or stop of the output process 160, and thus indirectly control the output of the data in the cache service 140.
[0053] In some embodiments, to prevent the cache service 140 from being terminated due to lack of interaction. The electronic device 110 may interact with the cache service 140 at a second predetermined frequency through the protection process 150 started by the server 120, so that the cache service 140 continuously obtains data from multiple clients 130. For example, the protection process 150 may make a call to the cache service 140 every 5 seconds, so as to ensure that the cache service 140 is not terminated, and it can continuously obtain data from multiple clients 130 during the task of performing integrated circuit layout processing. Further, the second predetermined frequency may be less than the first predetermined frequency, so that the cache service 140 is not terminated when the output process 160 transfers data from the cache service 140.
[0054] In some embodiments, when the electronic device 110 determines that the data storage status indicates that there is no valid data in the cache service 140, the server 120 may disable the protection process 150, thereby releasing the occupied system resources.
[0055] Further, in response to the protection process 150 being disabled for a predetermined duration, the electronic device 110 determines whether there is an interaction between the cache service 140 and the output process 160, where the interaction indicates that the output process 160 transfers multiple sets of data from the cache service 140 to a specified storage area in the server 120, and in response to determining that there is no interaction between the cache service 140 and the output process 160, the server 120 disables the cache service 140, thereby ending the task of verifying the mask.
[0056] In this way, when storing data generated by multiple clients, first, the data generated by multiple clients is stored in the cache service in the order of reception, and then, based on the order of reception, the data generated by multiple clients is transferred from the cache service to a specified storage area in the server, which can effectively reduce the usage frequency of the hard disk, improve the storage efficiency, and at the same time avoid the situation of overwrite errors when merging the data generated by each of the multiple clients. And during the execution of the task, it can ensure that the data stream and the distributed system are parallel, so that the execution of the task can be more efficiently extended and maintained, achieving a certain degree of decoupling.
[0057] In some embodiments, the distributed system can also cooperate with other systems or software to perform the task of verifying the mask. For example, it can check, evaluate, or analyze the intermediate files generated by multiple clients 130. In such a case, refer to Figure 5 , Figure 5 which shows a schematic diagram of a process 500 in which a distributed system and other systems or software cooperate to perform a task according to some embodiments of the present disclosure.
[0058] As Figure 5 shown, while the distributed system is processing the task of verifying the mask, other systems or software can check, evaluate, or analyze the intermediate files generated by multiple clients 130. At this time, other software or system 510 can obtain the intermediate files from the cache service 140 or the server 170 for processing. In this process, other system 510 can also control the start or disablement of the cache service 140, the daemon process 150, and the output process 160.
[0059] For example, after processing the intermediate files, other software or system 510 can disable the daemon process 150. For example, after the daemon process 150 is disabled for a predetermined duration, other system 510 can disable the cache service 140. For example, other system or software 510 can detect the data storage status in the cache service 140, and in the case where there is no valid data in the cache service 140, disable the output process 160.
[0060] It should be understood that to avoid conflicts in the startup or disablement of the cache service 140, the daemon process 150, and the output process between the distributed system and other systems or software 510, the priority between the distributed system and other systems or software 510 can be configured. The specific configuration method can refer to the configuration method in the related art, and the present disclosure will not elaborate herein. It should also be understood that the embodiments of the present disclosure are not intended to limit the number of other systems or software 510, and the number of other systems 510 can be flexibly configured according to actual needs.
[0061] Figure 6 FIG. shows a flowchart of another process 600 for data processing according to some embodiments of the present disclosure. In some embodiments, the process 600 can be executed by a server 120 as Figure 1 shown. The following will describe the process 600 in detail with reference to Figure 1 and Figure 2 FIG.
[0062] In block 610, the server 120 starts the cache service 140 and the output process (the first process) 160.
[0063] In block 620, the server 120 receives multiple sets of data from multiple clients 130 respectively. The multiple clients 130 are configured to cooperate with the server 120 to execute a target task, and the multiple sets of data are generated in real time during the execution of the target task by the multiple clients 130.
[0064] In block 630, the server 120 stores the multiple sets of data in the cache service 140 based on the reception order of the multiple sets of data.
[0065] In block 640, the server 120 transfers the multiple sets of data from the cache service 140 to a specified storage area in the server 120 through the output process 160 based on the reception order.
[0066] In some embodiments, the server 120 can detect the data storage status of the cache service 140 at a first predetermined frequency. The data storage status indicates whether there is valid data in the cache service 140; and based on the data storage status of the cache service 140, determine the processing for the output process 160, and the processing includes startup or disablement.
[0067] In some embodiments, the server 120 can disable the output process 160 in response to determining that the data storage status indicates that there is no valid data in the cache service 140; and start the output process 160 in response to determining that the data storage status indicates that there is valid data in the cache service 140.
[0068] In some embodiments, the server 120 may initiate a protection process (second process) 150 and, through the protection process, interact with the cache service 140 at a second predetermined frequency, enabling the cache service 140 to continuously receive data from multiple clients 130, where the second predetermined frequency is less than the first predetermined frequency.
[0069] In some embodiments, the server 120 may disable the protection process 150 in response to determining that the data storage status indicates that there is no valid data in the cache service 140.
[0070] In some embodiments, the server 120 may, in response to the protection process 150 being disabled for a predetermined duration, determine whether there is an interaction between the cache service 140 and the output process 160, where the interaction indicates that the output process 160 transfers multiple sets of data from the cache service 140 to a specified storage area in the server 120; and in response to determining that there is no interaction between the cache service 140 and the output process 160, disable the cache service 140.
[0071] In some embodiments, multiple sets of data are stored in the cache service 140 in the form of key-value pairs. Each set of data in the multiple sets of data corresponds to a key-value pair. The value in the corresponding key-value pair is the set of data, and the key in the corresponding key-value pair is the unique identifier of the data in the cache service 140.
[0072] In some embodiments, the server 120 may, in response to determining that there is at least one key in the cache service 140, transfer at least one set of data from the cache service 140 to a specified storage area in the server 120 based on the reception order of the at least one set of data corresponding to the at least one key.
[0073] In some embodiments, the target task is a task related to electronic design automation (EDA).
[0074] Figure 7 The block diagram of a server or electronic device 700 in which one or more embodiments of the present disclosure may be implemented is shown. The electronic device 700 may be used, for example, to implement the electronic device 110 or the server 120 as shown in Figure 1 It should be understood that Figure 7 The electronic device 700 shown is merely exemplary and should not constitute any limitation to the functions and scopes of the embodiments described herein.
[0075] As shown in Figure 7As shown, the electronic device 700 is in the form of a general-purpose electronic device. The components of the electronic device 700 may include, but are not limited to, one or more processors 710 or processing units, a memory 720, a storage device 730, one or more communication units 740, one or more input devices 750, and one or more output devices 760. The processing unit may be an actual or virtual processor and be capable of performing various processes according to the programs stored in the memory 720. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing ability of the electronic device 700.
[0076] The electronic device 700 generally includes multiple computer storage media. Such media may be any available media accessible to the electronic device 700, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 720 may be volatile memory (such as registers, caches, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 730 may be removable or non-removable media and may include machine-readable media, such as flash drives, magnetic disks, or any other media that can be used to store information and / or data (such as training data for training) and can be accessed within the electronic device 700.
[0077] The electronic device 700 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in Figure 7 a disk drive for reading from or writing to a removable, non-volatile magnetic disk (such as a "floppy disk") and an optical disk drive for reading from or writing to a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to a bus (not shown) by one or more data media interfaces. The memory 720 may include a computer program product 725 having one or more program modules configured to execute various methods or actions of the various embodiments of the present disclosure.
[0078] The communication unit 740 enables communication with other electronic devices through a communication medium. Additionally, the functions of the components of the electronic device 700 may be implemented in a single computing cluster or multiple computer machines that are capable of communicating through a communication connection. Thus, the electronic device 700 may operate in a networked environment using a logical connection with one or more other servers, network personal computers (PCs), or another network node.
[0079] The input device 750 can be one or more input devices, such as a mouse, a keyboard, a trackball, etc. The output device 760 can be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 700 can also communicate with one or more external devices (not shown) as needed through the communication unit 740. The external devices such as a storage device, a display device, etc., communicate with one or more devices that enable a user to interact with the electronic device 700, or communicate with any device that enables the electronic device 700 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication can be performed via an input / output (I / O) interface (not shown).
[0080] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which one or more computer instructions are stored, and when the one or more computer instructions are executed by a processor, the methods described above are implemented.
[0081] Aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and the combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0082] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is produced that implements the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause a computer, a programmable data processing device, and / or other devices to work in a specific manner. Thus, the computer-readable medium storing the instructions includes a manufactured article that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0083] The computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device, such that a series of operation steps are performed on the computer, other programmable data processing device, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable data processing device, or other device implement the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0084] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various implementations of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a part of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur in a different order than noted in the accompanying drawings. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or by a combination of dedicated hardware and computer instructions.
[0085] The various implementations of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art in the field of this technology without departing from the scope and spirit of the described implementations. The choice of terms used herein is intended to best explain the principles of the implementations, the practical application, or the improvement of the technology in the market, or to enable other ordinary skill in the art in the field of this technology to understand the implementations disclosed herein.
Claims
1. A method for data processing, characterized in that include: Acquire multiple sets of data respectively from multiple clients, where the multiple clients are configured to perform a target task in collaboration with a server, and the multiple sets of data are generated in real time during the execution of the target task by the multiple clients; Based on the acquisition order of the multiple sets of data, storing the multiple sets of data in a cache service started by the server; as well as The plurality of sets of data are transferred from the cache service to a designated storage area in the server based on the acquisition order through a first process initiated by the server.
2. The method for data processing according to claim 1, characterized in that The method further comprises: detecting a data storage status of the cache service at a first predetermined frequency, the data storage status indicating whether there is valid data in the cache service; and Based on the data storage state of the cache service, the server determines a process for the first process, where the process includes enabling or disabling.
3. The method for data processing according to claim 2, characterized in that Determining the processing for the first process includes: In response to determining that the data storage status indicates that valid data is not present in the cache service, disabling, by the server, the first process; and In response to determining that the data storage status indicates that valid data exists in the cache service, the first process is initiated by the server.
4. The method for data processing according to claim 2, characterized in that The method further comprises: The cache service continuously obtains data from the multiple clients through a second process started by the server to interact with the cache service at a second predetermined frequency, wherein the second predetermined frequency is less than the first predetermined frequency.
5. The method for data processing according to claim 4, characterized in that The method further comprises: In response to determining that the data storage status indicates that valid data is not present in the cache service, disabling, by the server, the second process.
6. The method for data processing according to claim 4, characterized in that The method further comprises: In response to the second process being disabled for a predetermined period of time, determining whether there is an interaction between the cache service and the first process, the interaction instructing the first process to transfer the plurality of sets of data from the cache service to a designated storage area in the server; and In response to determining that there is no interaction between the cache service and the first process, disabling, by the server, the cache service.
7. The method for data processing according to claim 1, characterized in that The multiple groups of data are stored in the cache service in the form of key-value pairs, each group of data in the multiple groups of data corresponds to a key-value pair, the value in the corresponding key-value pair is the group of data, and the key in the corresponding key-value pair is the unique identifier of the data in the cache service.
8. The method for data processing according to claim 7, characterized in that Transferring the plurality of sets of data from the cache service to a designated storage area in the server includes: In response to determining that at least one key exists in the cache service, at least one set of data corresponding to the at least one key is transferred from the cache service to a designated storage area in the server based on an acquisition order of the at least one set of data.
9. The method for data processing according to claim 1, characterized in that: The target task is a task related to electronic design automation (EDA).
10. A method for data processing, characterized in that include: At the server, starting a cache service and a first process; Receiving multiple sets of data respectively from multiple clients, the multiple clients are configured to cooperate with the server to perform a target task, and the multiple sets of data are generated in real time during the multiple clients performing the target task; storing the multiple sets of data in the cache service based on the order in which the multiple sets of data are received; as well as Through the first process, the plurality of groups of data are transferred from the cache service to a designated storage area in the server based on the receiving order.
11. An electronic device, characterized in that: include: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the electronic device to execute the method according to any one of claims 1 to 9 or the method according to claim 10.
12. A computer-readable storage medium, characterized in that: A computer program is stored thereon, characterized in that the computer program can be executed by a processor to implement the method according to any one of claims 1 to 9 or the method according to claim 10.