CN115827550A - Data processing method and related device - Google Patents

Data processing method and related device Download PDF

Info

Publication number
CN115827550A
CN115827550A CN202111094351.XA CN202111094351A CN115827550A CN 115827550 A CN115827550 A CN 115827550A CN 202111094351 A CN202111094351 A CN 202111094351A CN 115827550 A CN115827550 A CN 115827550A
Authority
CN
China
Prior art keywords
remote
memory
pointer
data
local memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111094351.XA
Other languages
Chinese (zh)
Inventor
吴静琦
魏星达
陈榕
张旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111094351.XA priority Critical patent/CN115827550A/en
Publication of CN115827550A publication Critical patent/CN115827550A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The application discloses a data processing method which is applied to electronic equipment. The method comprises the following steps: acquiring a data processing request, wherein the data processing request comprises a remote pointer, and the remote pointer is used for recording a remote address of data in a remote memory; reading target data from the remote memory based on a remote address in the remote pointer, and storing the target data in a local memory, wherein the local memory and the remote memory are deployed on different devices, and the time overhead for reading the data in the remote memory is greater than the time overhead for reading the data in the local memory; and processing the target data stored in the local memory according to the data processing request. Based on the method, the time delay of operating the data in the remote memory can be effectively reduced, the normal operation of the application program is ensured, and the response speed of the application program is improved.

Description

Data processing method and related device
Technical Field
The present application relates to the field of computer technologies, and in particular, to a data processing method and a related apparatus.
Background
Remote memory (Far memory) is a technology that provides the memory of a device for other devices to access through a network. On the basis of a Remote Memory, based on a Remote Direct Memory Access (RDMA) technology, a network card of a device can bypass a processor to directly read and write memories of other devices. Through RDMA techniques, the memory of the server can be exposed to other devices as a memory pool so that applications can run efficiently in memory-constrained devices.
Currently, a memory exchange mechanism based on a remote memory expansion operating system is a typical way for a user to utilize a remote memory. The memory exchange mechanism realizes the storage of data in the running process of the application program into other equipment by exchanging physical memory pages which are not frequently used by the application program into a remote memory.
However, when an application needs to obtain data in a remote memory, the conventional memory exchange mechanism needs to switch from a user mode to a kernel mode, and a virtual memory manager in the kernel mode reads the data in the remote memory. Because the user mode needs to be switched to the kernel mode when the data in the remote memory is read each time, the time delay for operating the data in the remote memory is high, and the normal operation of the application program is easily influenced.
Disclosure of Invention
The application provides a data processing method, which can effectively reduce the time delay of operating data in a far-end memory, ensure the normal operation of an application program and improve the response speed of the application program.
A first aspect of the present application provides a data processing method, which is applied to an electronic device connected to a remote memory. The method comprises the following steps: the method comprises the steps of obtaining a data processing request, wherein the data processing request comprises a remote pointer, the data processing request is used for requesting to process data pointed by the remote pointer, and the remote pointer is used for recording a remote address of the data in a remote memory. The data processing request may be, for example, a data read request or a data modification request.
And reading target data from the remote memory based on the remote address in the remote pointer. And allocating storage space in the local memory for the read target data so as to store the target data in the local memory. The local memory may be a conventional memory deployed on the electronic device, and the time overhead for reading the data in the remote memory is greater than the time overhead for reading the data in the local memory.
And processing the target data stored in the local memory according to the data processing request. For example, if the data processing request is a data reading request, the electronic device returns the target data stored in the local memory to the process of the application program. And if the data processing request is a data modification request, the electronic equipment modifies the target data stored in the local memory according to the data modification request, namely the electronic equipment modifies the target data in the local memory into the data to be modified carried in the data modification request.
In the scheme, a new pointer (namely, a remote pointer) is designed, and the remote pointer records the address of the data of the application program in a remote memory. When the application program needs to acquire data, the data required by the application program can be read from the remote memory to the local memory according to the remote address indicated by the remote pointer. Because the data in the remote memory can be read based on the remote pointer of the user mode, page fault abnormity can not occur, the kernel mode does not need to be switched to for processing, the kernel mode switching time and the processing time of the page fault abnormity are saved, the time delay of operating the data in the remote memory is effectively reduced, the normal operation of an application program is ensured, and the response speed of the application program is improved.
In one possible implementation, the local memory and the remote memory are deployed on different devices. For example, remote memory may refer to memory deployed on a memory server. The electronic device with the local memory is connected with the memory server through a network, and the electronic device can read target data from the remote memory through a remote memory access technology. For example, the electronic device accesses target data in a Remote memory through an RDMA technique, a Remote read (Remote Load) technique, or a Remote Store (Remote Store) technique.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a device identifier and the remote address, the device identifier is used to indicate a device where the remote memory is located, and the remote address is used to indicate a specific address of data corresponding to the remote pointer in the remote memory.
The electronic device may determine a target device based on the device identifier, and read the target data in the remote memory of the target device based on the remote address.
In the scheme, the electronic device can quickly determine the device for deploying the remote memory and the remote address of the data in the remote memory through the device identifier and the remote address in the remote pointer, so that the data is read and the feasibility of the scheme is ensured.
In one possible implementation manner, the local memory and the remote memory are deployed on the same device, and the local memory and the remote memory are different types of memories. For example, two levels of memory are deployed in an electronic device, where a first level of memory is a local memory and a second level of memory is a remote memory.
The addresses of the data on the memories of different levels are recorded through the remote pointer, so that a system in the electronic equipment can automatically realize the exchange of the data on the memories of different levels based on the remote pointer, a developer is prevented from additionally writing related codes for exchanging the data in the memories when writing application program codes, and the development time of the application programs is saved.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a memory identifier and the remote address, the memory identifier is used to indicate a memory for storing the target data, and the remote address is used to indicate a specific address of data corresponding to the remote pointer in the remote memory.
The electronic device may determine the remote memory from the plurality of memories based on the memory identifier, and read the target data from the remote memory based on the remote address.
According to the scheme, the electronic equipment can rapidly determine the remote memory for storing the data and the remote address of the data in the remote memory through the memory identifier and the remote address in the remote pointer, so that the data are read and obtained, and the feasibility of the scheme is guaranteed.
In one possible implementation manner, the remote pointer includes a second sub-pointer, and the second sub-pointer is used for recording an address of data in the local memory. After the electronic device obtains the remote pointer in the data processing request, the electronic device may allocate a storage space in the local memory for the target data pointed by the remote pointer. Then, the electronic device stores the target data read from the remote memory in the allocated storage space, and records the address of the storage space in the second sub-pointer.
In the scheme, based on the second sub-pointer in the remote pointer, the address of the target data stored and read in the local memory by the electronic device can be recorded, so that the subsequent application program can conveniently read and write the target data in the local memory.
In a possible implementation manner, the remote pointer further includes an attribute identifier, where the attribute identifier is used to indicate a speed of reading data in the remote memory. Based on the attribute identifier in the remote pointer, the electronic device may determine the level of the read speed of the remote memory, so as to determine the read speed difference between different remote memories.
The remote pointer further comprises a heat identifier, and the heat identifier is used for indicating the use heat of the target data stored in the local memory. Specifically, the greater the hot flag in the remote pointer, the higher the usage hot of the target data, i.e., the more frequently the electronic device uses the target data.
In a possible implementation manner, under the condition that the local memory is insufficient, the electronic device may obtain a plurality of remote pointers in the queue to be cleaned, where the plurality of remote pointers correspond to different data, respectively. Wherein the plurality of remote pointers may be the remote pointers determined by the electronic device during the marking phase. In the marking stage, the electronic equipment searches for the remote pointers which need to be used subsequently but do not need to be used currently, and marks the remote pointers, so that the remote pointers are placed in the queue to be cleaned.
And then, the electronic equipment sorts the plurality of remote pointers according to the attribute identifiers and the heat identifiers in the plurality of remote pointers to obtain a sorting result. For example, the electronic device may rank the remote pointer corresponding to the data with the higher reading speed and the lower usage heat at a previous position, and rank the remote pointer corresponding to the data with the lower reading speed and the higher usage heat at a previous position, so as to preferentially clean the data with the higher reading speed and the lower usage heat.
And finally, based on the sequencing result, sequentially releasing the storage space pointed by a second sub-pointer in the plurality of remote pointers until the memory occupancy rate of the local memory is less than or equal to a preset threshold value.
In the scheme, the plurality of remote pointers to be cleaned are sequenced according to the attribute identifiers and the heat identifiers in the remote pointers, and the storage spaces corresponding to the remote pointers are sequentially released based on the sequencing result, so that data with high reading speed and low use frequency can be preferentially released, the influence of cleaning the storage spaces corresponding to the remote pointers is reduced as much as possible, and the normal operation of the application program is ensured.
In a possible implementation manner, the electronic device may sort the plurality of remote pointers according to a sequence of speeds indicated by the attribute identifiers from large to small, so as to obtain a plurality of sorted remote pointers; and sorting the remote pointers with the same attribute identifications in the sorted remote pointers according to the sequence of the heat identifications from small to large.
In one possible implementation manner, the remote pointer further includes a dirty identifier, and the dirty identifier is used to indicate whether data corresponding to the second sub-pointer is modified. Specifically, after the electronic device reads the target data in the remote memory to the storage space of the local memory, if the application program modifies the target data in the local memory, the electronic device may set the dirty flag in the remote pointer to indicate that the data in the local memory corresponding to the second sub-pointer in the remote pointer is modified.
In the process that the electronic device releases the storage space pointed by the second sub-pointer in the plurality of remote pointers in sequence, if the dirty identifier in the remote pointer to be released indicates that the data corresponding to the second sub-pointer in the remote pointer to be released is modified, the electronic device writes the data corresponding to the second sub-pointer in the remote pointer to be released back to the remote memory. And then, the electronic equipment releases the memory space pointed by the second sub-pointer in the remote pointer to be released.
According to the scheme, the dirty identifier is designed in the remote pointer, so that whether the data in the local memory is modified or not can be effectively identified, the electronic equipment can write the modified data in the local memory back to the remote memory again in the memory release stage, the consistency of the data is kept, and a subsequent application program can acquire correct data from the remote memory conveniently.
A second aspect of the present application provides a data processing apparatus, including an acquisition unit and a processing unit; the acquisition unit is used for acquiring a data processing request, wherein the data processing request comprises a remote pointer, and the remote pointer is used for recording a remote address of data in a remote memory; the processing unit is configured to read target data from the remote memory based on a remote address in the remote pointer, and store the target data in a local memory, where a time overhead for reading data in the remote memory is greater than a time overhead for reading data in the local memory; the processing unit is further configured to process the target data stored in the local memory according to the data processing request.
In one possible implementation, the local memory and the remote memory are deployed on different devices; the processing unit is further configured to read the target data from the remote memory via remote direct memory access RDMA.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a device identifier and the remote address, and the device identifier is used to indicate a device where the remote memory is located; the processing unit is further configured to determine a target device based on the device identifier; and reading the target data in the remote memory of the target equipment based on the remote address.
In a possible implementation manner, the local memory and the remote memory are deployed on the same device, and the local memory and the remote memory are different types of memories.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a memory identifier and the remote address, and the memory identifier is used to indicate a memory for storing the target data; the processing unit is further configured to determine the remote memory based on the memory identifier; and reading the target data in the remote memory based on the remote address.
In one possible implementation manner, the remote pointer includes a second sub-pointer, and the second sub-pointer is used for recording an address of data in the local memory; the processing unit is further configured to allocate a storage space in the local memory for the target data; and storing the target data in the storage space, and recording the address of the storage space in the second sub-pointer.
In a possible implementation manner, the remote pointer further includes an attribute identifier, where the attribute identifier is used to indicate a speed of reading data in the remote memory; the remote pointer further comprises a heat identifier, and the heat identifier is used for indicating the use heat of the target data stored in the local memory.
In a possible implementation manner, the obtaining unit is further configured to obtain a plurality of remote pointers in a queue to be cleaned, where the plurality of remote pointers correspond to different data respectively; the processing unit is further configured to: sorting the plurality of remote pointers according to the attribute identifiers and the heat identifiers in the plurality of remote pointers to obtain a sorting result; and based on the sequencing result, sequentially releasing the storage space pointed by a second sub-pointer in the plurality of remote pointers until the memory occupancy rate of the local memory is less than or equal to a preset threshold value.
In one possible implementation manner, the processing unit is further configured to: sequencing the plurality of far-end pointers according to the sequence of the speed indicated by the attribute identification from large to small to obtain a plurality of sequenced far-end pointers; and sequencing the remote pointers with the same attribute identifications in the plurality of sequenced remote pointers according to the sequence of the hot identifications from small to large.
In one possible implementation manner, the remote pointer further includes a dirty identifier, where the dirty identifier is used to indicate whether data corresponding to the second child pointer is modified; the processing unit is further configured to: if the dirty mark in the remote pointer to be released indicates that the data corresponding to the second sub-pointer in the remote pointer to be released is modified, writing the data corresponding to the second sub-pointer in the remote pointer to be released back to the remote memory; and releasing the memory space pointed by the second sub-pointer in the remote pointer to be released.
In one possible implementation manner, the processing unit is further configured to: if the data processing request is a data reading request, returning the target data stored in the local memory to a process; and if the data processing request is a data modification request, modifying the target data stored in the local memory according to the data modification request.
A third aspect of the present application provides an electronic device, comprising: a memory and a processor; the memory stores code, and the processor is configured to execute the code, and when executed, the electronic device performs the method as any one of the implementation manners in the first aspect.
A fourth aspect of the present application provides a computer-readable storage medium having stored thereon a computer program which, when run on a computer, causes the computer to perform the method of any one of the implementations of the first aspect.
A fifth aspect of the present application provides a computer program product which, when run on a computer, causes the computer to perform the method as any one of the implementations in the first aspect.
A sixth aspect of the present application provides a chip comprising one or more processors. A part or all of the processor is used for reading and executing the computer program stored in the memory so as to execute the method in any possible implementation mode of any one aspect.
Optionally, the chip may include a memory, and the memory and the processor may be connected to the memory through a circuit or a wire. Optionally, the chip further comprises a communication interface, and the processor is connected to the communication interface. The communication interface is used for receiving data and/or information needing to be processed, the processor acquires the data and/or information from the communication interface, processes the data and/or information, and outputs a processing result through the communication interface. The communication interface may be an input output interface. The method provided by the application can be realized by one chip or by cooperation of a plurality of chips.
Drawings
FIG. 1 is a diagram illustrating a conventional memory swapping mechanism;
FIG. 2 is a schematic diagram illustrating a delay comparison provided by an embodiment of the present application;
fig. 3 is a schematic structural diagram of an electronic device 101 according to an embodiment of the present disclosure;
fig. 4 is a flowchart illustrating a data processing method 400 according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a remote pointer according to an embodiment of the present application;
FIG. 6 is a block diagram of a system architecture for implementing a remote pointer according to an embodiment of the present disclosure;
FIG. 7 is a diagram illustrating an alternative system architecture for applying remote pointers according to an embodiment of the present application;
fig. 8 is a schematic view illustrating a usage flow of a remote pointer according to an embodiment of the present application;
fig. 9 is a schematic flow chart of a marking stage in a garbage recycling process according to an embodiment of the present disclosure;
fig. 10 is a schematic flow chart of a cleaning stage in a garbage recycling process according to an embodiment of the present disclosure;
fig. 11 is a schematic performance impact diagram of three ways of accessing a remote memory according to an embodiment of the present application;
fig. 12 is a schematic structural diagram of a data processing apparatus 1200 according to an embodiment of the present application;
fig. 13 is a schematic structural diagram of a computer-readable storage medium 1300 according to an embodiment of the present application.
Detailed Description
Embodiments of the present application are described below with reference to the accompanying drawings. As can be known to those skilled in the art, with the development of technology and the emergence of new scenarios, the technical solution provided in the embodiments of the present application is also applicable to similar technical problems.
The terms "first," "second," and the like in the description and in the claims of the present application and in the above-described drawings are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances and are merely descriptive of the various embodiments of the application and how objects of the same nature can be distinguished. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
For the sake of easy understanding, technical terms related to the embodiments of the present application will be described below.
Remote direct memory access: a technique for directly accessing data in a memory of a remote host, bypassing the operating system kernel and processor of the remote host. The technology can greatly improve the network operation throughput of the distributed system, reduce the network delay and improve the utilization rate of the host processor. RDMA eliminates external memory copy and text exchange operations, thus freeing up memory bandwidth and processor cycles and improving the efficiency of data transfer. At present, the application in the fields of high-performance computing, artificial intelligence and the like widely uses an RDMA (remote direct memory access) transmission protocol to realize data transmission.
And (3) running: an environment for running an object-oriented programming language (object-oriented programming). Runtime indicates which program is running during a certain time period. Runtime is a phase within the computer program's lifecycle of operation.
Tape runtime programming Language (Managed Language): meaning that the application developed by the programming language requires a runtime to be operable. Typical tape runtime programming languages are the Java language or the Go language. In general, a runtime can provide a convenient abstraction of a programming language, such as transparent memory management, and the like.
Native Language (Native Language): refers to a language in which an application developed by the programming language is compiled directly into machine code for execution. Native languages generally have better performance because the default does not contain a language runtime. However, such languages require developers to maintain the program memory themselves and provide high-level abstractions in the form of third-party libraries.
Garbage Collection (GC): when the memory management of the program is completed by the runtime, the runtime needs to be responsible for releasing the memory unused by the application, and the process of releasing the memory during the runtime is called garbage collection. Garbage recovery is logically divided into two phases: the first stage is a marking stage, and finds out the memory which is not used by the application by scanning the use condition of the application memory; the second phase is a clearing phase which is responsible for releasing the unused memory found in the marking phase.
Specifically, the marking stage searches for the memories in use except the root memory from the memories referenced by the root memory (such as global variables and stacks); all found in-use memory is marked. The marking phase can mark the memories being used by all applications by finding their referenced memories from the marked memories in an iterative manner; unmarked memory is released during the erase phase.
Heap (heap) is a generic term for a special class of data structures in computer science. A heap is typically an array object that can be viewed as a tree.
Missing Page exception (Page Fault): a Central Processing Unit (CPU) can access all peripheral devices connected to an address bus through the address bus, including a physical memory, an input/output device, and the like. However, the access address sent from the CPU is not a physical address of the peripheral devices on the address bus, but a virtual address, and the virtual address is converted into a physical address by a Memory Management Unit (MMU) and then sent from the address bus, and the translation relationship between the virtual address and the physical address on the MMU needs to be created, and the MMU can also set whether the physical page can be written. When a virtual to physical address mapping is not created, or created, but that physical page is not writable or unreadable, the MMU notifies the CPU that a page fault exception was raised.
Remote memory (Far memory) is a technology that provides the memory of a device for other devices to access through a network. On the basis of the remote memory, based on the remote direct memory access technology, the network card of the device can bypass the processor to directly read and write the memories of other devices. Through RDMA techniques, the memory of the server can be exposed to other devices as a memory pool so that applications can run efficiently in memory-constrained devices.
Currently, a memory exchange mechanism based on a remote memory expansion operating system is a typical way for a user to utilize a remote memory. The memory exchange mechanism realizes the storage of data in the running process of the application program into other equipment by exchanging physical memory pages which are not frequently used by the application program into a remote memory. The memory swapping mechanism may transparently support a large number of upper-level applications, such as applications based on a runtime programming language or a native language. However, using remote memory in kernel mode often incurs huge kernel abstraction overhead. The core reason for these overheads is that existing kernel abstractions are not designed for remote memory.
Specifically, referring to fig. 1, fig. 1 is a schematic diagram of a conventional memory swapping mechanism. As shown in fig. 1, an application program runs in a host. The operating system of the host provides memory abstraction much larger than the size of the host memory to applications through a network-attached memory server. When the application program of the host runs, the physical memory pages that are not frequently used by the application program can be swapped into the memory server through the memory swapping mechanism, that is, the data corresponding to the application program (for example, the memory content pointed by the pointer on the heap) is stored in the memory server. When an application needs to access data stored in the memory server, a page fault exception occurs in the host because the physical memory pages have been swapped into the remote memory. When a page fault exception occurs, it needs to be switched from a user mode to a kernel mode, and a Virtual Memory Manager (VMM) in the kernel mode handles the page fault exception. And under the condition that the virtual memory manager processes the page fault exception, the operating system reads the corresponding data of the exception page in the memory server into the memory of the host by using the RDMA technology. And finally, the host is switched from the memory state to the user state, and the application program can continuously read and write the data stored in the memory of the host.
Because the user mode needs to be switched to the kernel mode when the data in the remote memory is read each time, and the corresponding module in the kernel mode executes the relevant processing operation, the time delay for operating the data in the remote memory is high, the normal operation of the application program is easily influenced, and the response speed of the application program is reduced.
Referring to fig. 2, fig. 2 is a schematic diagram illustrating a delay comparison according to an embodiment of the present disclosure. As shown in fig. 2, when accessing data in a remote memory by using RDMA technology, the latency of the network itself (i.e. the latency of data transmission in the network) is about 2 microseconds. However, when the data in the remote memory is read through the memory exchange mechanism, the time delay is as high as more than 10 microseconds. That is, the user mode is switched to the kernel mode, and the delay of processing the page fault exception by the virtual memory manager in the kernel mode reaches more than 8 microseconds, which is far higher than the network delay.
In view of this, the present application provides a data processing method, in which a new pointer (i.e. a remote pointer) is designed, and the remote pointer records a remote address of data of an application program in a remote memory. When the application program needs to acquire data, the data required by the application program can be read from the remote memory to the local memory according to the remote address indicated by the remote pointer. Because the data in the remote memory can be read based on the remote pointer of the user mode, page fault abnormity can not occur, the kernel mode does not need to be switched to for processing, the kernel mode switching time and the processing time of the page fault abnormity are saved, the time delay of operating the data in the remote memory is effectively reduced, the normal operation of an application program is ensured, and the response speed of the application program is improved.
Specifically, the data processing method provided by the embodiment of the application can be applied to electronic equipment. Illustratively, the electronic device may be, for example, a server, a smartphone (mobile phone), a Personal Computer (PC), a notebook computer, a tablet computer, a smart television, a Mobile Internet Device (MID), a wearable device, a Virtual Reality (VR) device, an Augmented Reality (AR) device, a wireless electronic device in industrial control (industrial control), a wireless electronic device in remote surgery (remote medical supply), a wireless electronic device in smart driving, a wireless electronic device in smart grid (smart grid), a wireless electronic device in transportation safety (transportation safety), a wireless electronic device in smart city (smart city), a wireless electronic device in smart home (smart home), and the like.
For convenience of description, the method provided by the embodiment of the present application will be described below by taking the method provided by the embodiment of the present application as an example applied to a server.
In order to facilitate understanding of the present solution, in the embodiment of the present application, first, a structure of an electronic device provided in the present application is described with reference to fig. 3.
Referring to fig. 3, fig. 3 is a schematic structural diagram of an electronic device 101 according to an embodiment of the present disclosure. As shown in FIG. 3, electronic device 101 includes a processor 103, processor 103 coupled to a system bus 105. Processor 103 may be one or more processors, each of which may include one or more processor cores. A display adapter (video adapter) 107, which may drive a display 109, the display 109 coupled with system bus 105. System bus 105 is coupled through a bus bridge 111 to an input/output (I/O) bus. The I/O interface 115 is coupled to an I/O bus. The I/O interface 115 communicates with various I/O devices such as an input device 117 (e.g., a touch screen, etc.), external memory 121 (e.g., a hard disk, floppy disk, optical disk, or flash disk), multimedia interface, etc. A transceiver 123 (which can send and/or receive radio communication signals), a camera 155 (which can capture still and motion digital video images), and an external USB port 125. Wherein, optionally, the interface connected with the I/O interface 115 may be a USB interface.
The processor 103 may be any conventional processor, including a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, or a combination thereof. Alternatively, the processor may be a dedicated device such as an ASIC.
Electronic device 101 may communicate with software deploying server 149 through network interface 129. Illustratively, the network interface 129 is a hardware network interface, such as a network card. The network 127 may be an external network, such as the internet, or an internal network, such as an ethernet or Virtual Private Network (VPN). Optionally, the network 127 may also be a wireless network, such as a WiFi network, a cellular network, and the like.
Hard drive interface 131 is coupled to system bus 105. The hard drive interface is connected to the hard disk drive 133. An internal memory 135 is coupled to the system bus 105. The data running in the internal memory 135 may include an Operating System (OS) 137, applications 143, and schedules of the electronic device 101.
The processor 103 may communicate with the internal memory 135 via the system bus 105 to retrieve instructions and data from the internal memory 135 within the application program 143 to implement the execution of the program.
The operating system includes a Shell 139 and a kernel 141.Shell 139 is an interface between the user and the kernel of the operating system. The shell is the outermost layer of the operating system. The shell manages the interaction between users and the operating system: waits for user input, interprets the user input to the operating system, and processes the output results of the various operating systems.
Kernel 141 is comprised of those portions of the operating system that are used to manage memory, files, peripherals, and system resources. The kernel 141 interacts directly with the hardware, and the operating system kernel typically runs processes and provides inter-process communication, CPU slot management, interrupts, memory management, and IO management, among other things.
Illustratively, where the electronic device 101 is a smartphone, the application program 143 comprises an instant messaging-related program. In one embodiment, electronic device 101 may download application 143 from software deploying server 149 when execution of application 143 is required.
The data processing method provided by the embodiment of the present application is described in detail below.
Referring to fig. 4, fig. 4 is a schematic flowchart of a data processing method 400 according to an embodiment of the present disclosure. As shown in fig. 4, the data processing method 400 includes the following steps 401-403.
Step 401, a data processing request is obtained, where the data processing request includes a remote pointer, and the remote pointer is used to record a remote address of data in a remote memory.
In this embodiment, an application program runs in the electronic device, and data of the application program is stored in the remote memory. And when the electronic device stores the data of the application program in the remote memory, the electronic device returns a remote pointer corresponding to the data to the application program, wherein the remote pointer is used for recording a remote address of the data in the remote memory.
When the application needs to request to process the data of the application, the application generates a data processing request so that the electronic device can acquire the data processing request from the application. The data processing request comprises a remote pointer, and the data processing request is used for requesting to process the data pointed by the remote pointer.
Illustratively, the data processing request may be, for example, a data read request for requesting to read the data pointed by the remote pointer. The data processing request may be, for example, a data modification request for requesting modification of the data pointed to by the remote pointer. Specifically, the data modification request may carry data to be modified, and is used to request to modify the data pointed by the remote pointer to the data to be modified. The data modification request may also be referred to as a data write request, that is, the data write request is used to request to write new data to the address where the data pointed by the remote pointer is located.
Step 402, reading target data from the remote memory based on the remote address in the remote pointer, and storing the target data in a local memory, wherein a time overhead for reading the data in the remote memory is greater than a time overhead for reading the data in the local memory.
After obtaining the remote pointer in the data processing request, the electronic device may read the target data in the remote memory according to the remote address indicated in the remote pointer. In addition, in order to facilitate subsequent processing of the target data read from the remote memory, the electronic device may allocate a corresponding storage space to the target data in the local memory, and store the read target data in the storage space in the local memory.
The local memory refers to a conventional memory deployed on the electronic device. Illustratively, the local Memory may be, for example, a Read-Only Memory (ROM) or a Random Access Memory (RAM). The RAM may be a Double Data Rate Synchronous Random Access Memory (DDR).
Generally, the read/write speed of the local memory is faster than that of the remote memory, but the capacity of the local memory is smaller than that of the remote memory. That is, the time overhead of the electronic device for reading the data in the remote memory is greater than the time overhead of reading the data in the local memory.
In one possible embodiment, the remote memory may refer to a memory deployed on another device, that is, the local memory and the remote memory are deployed on different devices. For example, remote memory may refer to memory deployed on a memory server. The electronic device with the local memory is connected with the memory server through a network, and the electronic device can read target data from the remote memory through a remote memory access technology. For example, the electronic device accesses target data in a Remote memory through an RDMA technique, a Remote read (Remote Load) technique, or a Remote Store (Remote Store) technique. The remote memory access technology adopted by the electronic device may be implemented based on an iWARP protocol, an RDMA over Converged Ethernet (RoCE) protocol based on Converged Ethernet, a Gen-Z protocol, or an InfiniBand protocol.
In another possible embodiment, the local memory and the remote memory are deployed on the same device, and the local memory and the remote memory are different types of memories. Illustratively, multiple levels of memory are deployed in an electronic device, and the type of memory may be different at each level. For example, two levels of memory are deployed in an electronic device, where a first level of memory is a local memory and a second level of memory is a remote memory. The read-write speed of the local memory is higher than that of the remote memory, but the capacity of the local memory is smaller than that of the remote memory. The local Memory may be, for example, a Dynamic Random Access Memory (DRAM), and the remote Memory may be, for example, a Non-volatile Memory (NVM).
It can be appreciated that with the rise of the persistent memory, the structure of the multi-level memory is more and more popular. Of these, two different types of memory, DRAM and NVM, can be commonly used to construct multilevel memory structures. An NVM is a storage device between a DRAM and a Solid State Disk (SSD). The NVM has a byte-wise access to the DRAM and is persistent, i.e., no data is lost after power is removed. Furthermore, the read and write speed of NVM is still less than DRAM, but NVM is less costly than DRAM. Therefore, in the architecture in which the multi-level memory is deployed, the DRAM with a lower capacity and a higher read-write speed may be used as the first-level memory, and the NAM with a higher capacity and a lower read-write speed may be used as the second-level memory in the electronic device.
It should be noted that the above explains the local memory and the remote memory by taking the electronic device to deploy two-level memory as an example. In practical applications, the electronic device may further deploy three or more levels of memories, and memories of different types from the local memory may be referred to as remote memories. In this embodiment, details of the specific memory type of the remote memory are not described again.
Step 403, processing the target data stored in the local memory according to the data processing request.
In this embodiment, after the target data in the remote memory is stored in the local memory of the electronic device, the electronic device processes the target data in the local memory according to the data processing request from the application program.
Specifically, if the data processing request is a data reading request, the electronic device returns the target data stored in the local memory to the process of the application program. And if the data processing request is a data modification request, the electronic equipment modifies the target data stored in the local memory according to the data modification request, namely the electronic equipment modifies the target data in the local memory into the data to be modified carried in the data modification request.
In this embodiment, a new pointer (i.e., a remote pointer) is designed, and the remote pointer records a remote address of data of the application program in a remote memory. When the application program needs to acquire data, the data required by the application program can be read from the remote memory to the local memory according to the remote address indicated by the remote pointer. Because the data in the remote memory can be read based on the remote pointer of the user mode, page fault abnormity can not occur, the kernel mode does not need to be switched to for processing, the kernel mode switching time and the processing time of the page fault abnormity are saved, the time delay of operating the data in the remote memory is effectively reduced, the normal operation of an application program is ensured, and the response speed of the application program is improved.
In addition, under the condition that the addresses of the data on the local memories of different levels are recorded by the remote pointer, the system in the electronic equipment can automatically realize the exchange of the data on the memories of different levels based on the remote pointer, thereby avoiding the need of additionally writing related codes of the data exchanged in the memories when a developer writes codes of the application programs and saving the development time of the application programs.
The above describes the process of reading data in the remote memory based on the remote address in the remote pointer, and the structure of the remote pointer will be described in detail below.
Specifically, the remote pointer includes a first sub-pointer, and the first sub-pointer is used for indicating an address where data corresponding to the remote pointer is located.
In a case where the remote memory and the local memory are disposed on different devices, a first sub-pointer of the remote pointers includes a device identifier and a remote address. The device identifier is used for indicating a device where the remote memory is located, and the remote address is used for indicating a specific address of data corresponding to the remote pointer in the remote memory.
For example, the device identifier may record a network address of a device where the remote memory is located. For example, in a case where the device where the remote memory is located is a memory server, the device identifier may record an Internet Protocol (IP) address of the memory server. The device identifier may also be a unique identifier of a device in which the remote memory is recorded. For example, a unique identifier may be allocated to other devices in advance in the electronic device, and a mapping relationship between the identifier of the device and the network address of the device may be established; in this way, the electronic device may search for the mapping relationship based on the device identifier in the first sub-pointer, thereby obtaining the network address of the device where the remote memory is located.
Based on the device identifier in the first sub-pointer, the electronic device can determine the target device where the remote memory is located; based on the remote address in the first sub-pointer, the electronic device can read target data corresponding to the remote address from a remote memory of the target device.
And under the condition that the remote memory and the local memory are deployed on the same device, the first sub-pointer comprises a memory identifier and a remote address. The memory identification is used for indicating a memory for storing the target data; the remote address is used for indicating the specific address of the data corresponding to the remote pointer in the remote memory.
For example, in a case that the electronic device includes multiple levels of memories, the electronic device may assign a unique memory identifier to each level of memories. For example, the memory identifier allocated by the electronic device for the first-level memory is 01, the memory identifier allocated by the electronic device for the second-level memory is 02, and the memory identifier allocated by the electronic device for the third-level memory is 03.
Based on the memory identifier in the first sub-pointer, the electronic device can determine a remote memory where the target data is located. For example, when the electronic device includes two levels of memories, the first level of memory is a local memory, the second level of memory is a remote memory, and the identifier of the remote memory is 02, the electronic device may determine, based on the identifier of the memory being 02, that the remote memory where the target data is located is the second level of memory. Based on the remote address in the first sub-pointer, the electronic device can read target data corresponding to the remote address from a remote memory of the target device.
Optionally, the remote pointer may further include a second sub-pointer, where the second sub-pointer is used to record an address of data in the local memory. After the electronic device reads the target data from the remote memory according to the remote pointer, the electronic device needs to store the read target data in the local memory. Therefore, based on the second sub-pointer in the remote pointer, the address of the target data read by the electronic device stored in the local memory can be recorded, so that the subsequent application program can conveniently read and write the target data in the local memory.
Specifically, after the electronic device acquires the remote pointer in the data processing request, the electronic device may allocate a storage space in the local memory for the target data pointed by the remote pointer. Then, the electronic device stores the target data read from the remote memory in the allocated storage space, and records the address of the storage space in the second sub-pointer.
It can be understood that, after the electronic device stores the target data in the local memory and fills the address of the target data in the local memory in the second sub-pointer of the remote pointer corresponding to the target data, the electronic device subsequently receives a new data processing request, and the new data processing request includes the remote pointer corresponding to the target data, the electronic device finds the target data in the local memory according to the second sub-pointer in the remote pointer and processes the target data in the local memory. That is to say, after the electronic device stores the target data in the local memory, the electronic device does not need to read data from the remote memory based on the remote address in the remote pointer, but directly processes the data in the local memory.
And, since the far-end pointer can indicate the address of the data in the far-end memory and the address of the data in the local memory at the same time, the electronic device can determine how to process the data processing request based on the content in the far-end pointer. For example, when the remote pointer only includes a remote address of the data in the remote memory, the electronic device reads the data from the remote memory based on the remote address, stores the data in the local memory, and processes the data in the local memory; when the remote pointer includes the address of the data in the local memory, the electronic device can directly process the data in the local memory without reading the data from the remote memory.
According to the scheme, the address of the data in the remote memory and the address of the data in the local memory are recorded in the remote pointer at the same time, the storage states of the data in the local memory and the remote memory can be indicated based on the same pointer, the pointer overhead is saved, the electronic equipment can determine how to execute data processing by explaining the pointer, and the data processing efficiency is improved.
Optionally, when the electronic device has a network connection with the multiple remote memories, or the electronic device is deployed with multiple levels of remote memories, in order to identify differences between the multiple remote memories, the remote pointer may further indicate performance information of the remote memories.
Specifically, the remote pointer may further include an attribute identifier, where the attribute identifier is used to indicate a speed of reading data in the remote memory. The speed of the electronic device reading the data in the remote memory is related to the reading speed of the remote memory and the network delay of the electronic device reading the data in the remote memory. Specifically, the reading speed of the remote memory itself refers to a physical index of the remote memory as a storage medium, i.e., an operation speed of extracting data from the remote memory. For example, for three remote memories belonging to different storage media types, the read speeds of the three remote memories are 6.4GB/S, 8GB/S and 12.8GB/S respectively. The network delay of the electronic device reading the data in the remote memory refers to the network transmission delay between the electronic device and the remote memory. In short, the network delay of the electronic device for reading the data in the remote memory refers to the time required for the data in the remote memory to be transmitted to the electronic device.
Generally, the higher the reading speed of the remote memory itself is, and the lower the network delay for the electronic device to read the data in the remote memory is, the higher the speed for the electronic device to read the data in the remote memory is, that is, the larger the attribute identifier is; the lower the reading speed of the remote memory itself is, and the higher the network delay for the electronic device to read the data in the remote memory is, the lower the speed for the electronic device to read the data in the remote memory is, that is, the smaller the attribute identifier is.
In addition, after the data indicated by the remote pointer is stored in the local memory, the application program uses the data in the local memory based on the requirement. The frequency with which applications use different data is also different for different data. Since the capacity of the local memory is limited, in order to preferentially reserve data with high application program usage frequency in the case that the capacity of the local memory is insufficient, the remote pointer may further include a hot identifier. The hot degree identification is used for indicating the use hot degree of the target data stored in the local memory. Specifically, the greater the hot flag in the remote pointer, the higher the usage hot of the target data, i.e., the more frequently the electronic device uses the target data.
For example, each time the application program reads or modifies the target data stored in the local memory, the value of the hot flag in the remote pointer is incremented by 1, so that the value of the hot flag in the remote pointer is the number of times that the application program accesses the target data in the local memory.
For another example, whenever an application reads or modifies target data stored in local memory in a particular cycle, the value of the hot flag in the remote pointer is incremented by 1. For example, if the specific period is 10 seconds, 1 minute may include 6 periods, and if the application program accesses the target data in the local memory once in each period, the value of the hot flag in the remote pointer is 6; assuming that the application accesses the target data in the local memory three times in the first cycle and accesses the target data in the local memory three times in the second cycle, the value of the hot flag in the remote pointer is 2. That is, only when the application accesses the target data in a specific period, the value of the heat flag corresponding to the target data is increased by 1.
Since a plurality of applications are often run simultaneously in an electronic device, each application generates a large amount of data during running, and the generated data is stored in a local memory. Therefore, during the continuous operation of the electronic device, the local memory in the electronic device may be insufficient. In order to avoid that data newly generated by an application cannot be stored in a local memory, the electronic device often needs to clean some data in the memory that is no longer used or is not used frequently, so as to vacate a free memory space.
In this embodiment, in the process of cleaning the memory space, the electronic device may obtain a plurality of remote pointers in the queue to be cleaned, where the plurality of remote pointers correspond to different data respectively. Wherein the plurality of remote pointers may be the remote pointers determined by the electronic device during the marking phase. In the marking stage, the electronic device searches for the remote pointers which need to be used subsequently but do not need to be used currently, and marks the remote pointers, so that the remote pointers are placed in the queue to be cleaned. In addition, for the far-end pointers which are no longer needed to be used, the electronic device can directly release the memory space corresponding to the far-end pointers which are no longer used.
After obtaining the plurality of remote pointers in the queue to be cleaned, the electronic device sorts the plurality of remote pointers according to the attribute identifiers and the heat identifiers in the plurality of remote pointers, and a sorting result is obtained.
Specifically, since the attribute identifier is used to indicate the reading speed of the remote memory, and the heat degree representation is used to indicate the heat degree of use of the data in the local memory, the electronic device may rank the remote pointer corresponding to the data with the higher reading speed and the lower heat degree at the earlier position, and rank the remote pointer corresponding to the data with the lower reading speed and the higher heat degree at the earlier position, so as to preferentially clean the data with the higher reading speed and the lower heat degree.
For example, the electronic device may sort the plurality of remote pointers in an order from a large speed to a small speed indicated by the attribute identifier, to obtain a plurality of sorted remote pointers. For example, in a case that the higher the reading speed of the remote memory is, the larger the value of the attribute identifier in the remote pointer is, the electronic device may sort the plurality of remote pointers according to the order of the attribute identifiers from large to small.
After the remote pointers are sorted based on the attribute identifications, the sorting positions of the remote pointers with the same attribute identifications are the same, so that the electronic equipment can sort the remote pointers with the same attribute identifications in the plurality of sorted remote pointers according to the sequence of the heat identifications from small to large. That is, for the remote pointers corresponding to the data with the same reading speed, the electronic device may rank the remote pointer corresponding to the data with relatively low heat at a previous position.
For example, assuming that the plurality of far-end pointers to be cleaned include a far-end pointer a, a far-end pointer B, a far-end pointer C, a far-end pointer D, and a far-end pointer E, the attribute identifiers and the heat identifiers corresponding to the plurality of far-end pointers and the sorting result may be as shown in table 1.
TABLE 1
Figure BDA0003268573160000141
As shown in table 1, the electronic device may first sort the plurality of remote pointers according to the attribute identifiers of the remote pointers, where the sorting result is a = C > B > D = E; then the electronic equipment sorts the remote pointers with the same attribute identification according to the hot degree identification of the remote pointers to obtain an updated sorting result: c > A > B > E > D.
Finally, after obtaining the sorting results corresponding to the plurality of remote pointers, the electronic device may sequentially release the storage space pointed by the second sub-pointer in the plurality of remote pointers based on the sorting results until the memory occupancy rate of the local memory is less than or equal to the preset threshold. The preset threshold may be determined according to an actual situation, for example, the preset threshold may be determined according to an actual capacity of the local memory and a state of an application program run by the electronic device. For example, the preset threshold may be set to 80% or 90%, and the specific value of the preset threshold is not limited in this embodiment.
For example, assuming that the preset threshold is 80%, for the 5 remote pointers shown in table 1, before the storage space pointed to by the second sub-pointer of the 5 remote pointers is released, the memory occupancy rate of the local memory in the electronic device is greater than 80%. The electronic equipment sequentially releases the memory space pointed by a second sub-pointer in the far-end pointer A, the far-end pointer C and the far-end pointer B according to the sorting result; after the electronic device releases the storage space pointed by the second sub-pointer in the remote pointer B, the memory occupancy rate of the local memory is less than 80%, so that the electronic device may temporarily stop continuing to release the storage space pointed by the second sub-pointer in the remote pointer E and the remote pointer D.
In this embodiment, the plurality of remote pointers to be cleaned are sorted according to the attribute identifiers and the heat identifiers in the remote pointers, and the storage spaces corresponding to the remote pointers are sequentially released based on the sorting result, so that data with a high reading speed and a low use frequency can be preferentially released, the influence of cleaning the storage spaces corresponding to the remote pointers is reduced as much as possible, and the normal operation of the application program is ensured.
It should be noted that, what has been described above is to sort the remote pointers in the queue to be cleaned based on the attribute identifiers, and then sort the remote pointers with the same attribute identifier in the sorted remote pointers based on the heat identifiers. In practical application, the electronic device may also sort the remote pointers in the queue to be cleaned only based on the attribute identifier; or the electronic equipment sorts the remote pointers in the queue to be cleaned only based on the heat identifiers; or the electronic device sorts the remote pointers in the queue to be cleaned based on the heat identifier, and then sorts the remote pointers with the same heat identifier in the sorted remote pointers based on the attribute identifier. The present embodiment does not limit the manner of sorting the remote pointers in the queue to be cleaned.
It is understood that after the electronic device stores the data in the remote memory to the local memory, the application program reads or modifies the data in the local memory. When the application program modifies the data in the local memory, the data in the local memory changes, but the data in the remote memory is not updated in time, that is, the data in the remote address indicated by the same remote pointer is not the same as the data in the local address. Therefore, when the storage space of the modified data in the local memory is released, the modified data can be written back to the remote memory, and the data in the remote memory can be updated at the same time.
In a possible embodiment, in order to accurately identify the modified data in the local memory, in this embodiment, an additional identifier is introduced into the remote pointer to record whether the data in the local memory is modified.
Illustratively, the remote pointer may further include a dirty flag indicating whether the data corresponding to the second child pointer is modified. Specifically, after the electronic device reads the target data in the remote memory to the storage space of the local memory, if the application program modifies the target data in the local memory, the electronic device may set the dirty flag in the remote pointer to indicate that the data in the local memory corresponding to the second sub-pointer in the remote pointer is modified.
In the process that the electronic device releases the storage space pointed by the second sub-pointer in the plurality of remote pointers in sequence, if the dirty identifier in the remote pointer to be released indicates that the data corresponding to the second sub-pointer in the remote pointer to be released is modified, the electronic device writes the data corresponding to the second sub-pointer in the remote pointer to be released back to the remote memory. And then, the electronic equipment releases the memory space pointed by the second sub-pointer in the remote pointer to be released.
In this embodiment, by designing the dirty identifier in the remote pointer, whether the data in the local memory is modified can be effectively identified, so that the electronic device can write back the modified data in the local memory to the remote memory again in the memory release stage, the consistency of the data is maintained, and a subsequent application program can acquire correct data from the remote memory.
For the sake of understanding, the remote pointer provided in the present embodiment will be described in detail below with reference to the accompanying drawings.
Referring to fig. 5, fig. 5 is a schematic structural diagram of a remote pointer according to an embodiment of the present disclosure. As shown in fig. 5, the remote pointer may be formed of a plurality of bits, for example, 128 bits. The bits in the remote pointer are divided into regions to form different identifiers or sub-pointers. The number of bits in each region can be adjusted according to the application requirement and the configuration of the remote memory. The structures of the respective regions will be described below.
1. Presence (present) identification: which is used to indicate whether the data indicated by the remote pointer is already stored in the local memory. The presence flag may be formed by 1 bit, for example, and when the value of the presence flag is 1, it indicates that the data indicated by the remote pointer is stored in the local memory; when the value of the presence flag is 0, it indicates that the data indicated by the remote pointer is not stored in the local memory.
2. Dirty (dirty) identification: and the remote pointer is used for indicating whether the data in the local memory corresponding to the remote pointer is modified. The dirty flag may be formed by 1 bit, for example, and when the value of the dirty flag is 1, it indicates that the data in the local memory corresponding to the remote pointer is modified. When the value of the dirty flag is 1, the value of the presence flag must be 1.
3. Reserved (reserved) identification: for reserving a part of bits for subsequent extended use. In this embodiment, the reserved flag is not needed to be used temporarily.
4. Heat (hotness) identification: for indicating the heat of use of the data stored in the local memory.
5. A second sub-pointer: for indicating the address in the local memory of the data indicated by the remote pointer. When the value of the presence identifier is 1, the address in the local memory is recorded in the second sub pointer.
6. The first sub-pointer: address information indicating that the data indicated by the remote pointer is at a remote address. The first sub-pointer includes three portions whose contents are related to the type of remote memory.
When the remote memory and the local memory are deployed on different devices, the three parts in the first sub-pointer include a device identifier, an attribute identifier, and a remote address. The device identifier is used for indicating the device where the remote memory is located; the attribute mark is used for indicating the reading speed of the remote memory; the remote address is used to indicate the address of the data in the remote memory.
When the remote memory and the local memory are deployed on the same device, three parts in the first sub-pointer comprise a memory identifier, an attribute identifier and a remote address. The memory identification is used for indicating a memory for storing data corresponding to the remote pointer in the equipment; the attribute mark is used for indicating the reading speed of the remote memory; the remote address is used to indicate the address of the data in the remote memory.
The process of creating the remote pointer in the electronic device is described in detail below.
When the electronic device needs to store data of an application program through a remote memory, the electronic device sends a request to a memory server where the remote memory is located so as to request the memory server to allocate a part of memory space for storing the data in the electronic device. After the memory space is allocated by the memory server according to the request to serve as the remote memory of the electronic equipment, the memory server returns the address range of the remote memory to the electronic equipment. In this way, the electronic device may obtain a range of addresses of the remote memory that may be used to store data. In addition, when the remote memory belongs to the memory in the electronic device, the electronic device may allocate an address range for storing the data indicated by the remote pointer in the remote memory by itself.
After the application generates the data, the electronic device generates a remote pointer if the data generated by the application needs to be stored to a remote memory. Since the data generated by the application program is initially stored in the local memory, the electronic device records the address of the data in the local memory based on the second sub-pointer of the generated remote pointers. Then, the electronic device determines a specific address for storing the data according to the address range of the remote memory, stores the data in the local memory into the specific address of the remote memory, and fills the specific address of the remote memory into the first sub-pointer, thereby completing the creation of the remote pointer.
In addition, after the application generates the data, the electronic device may also record the address of the data generated by the application in the local memory by using a common pointer (i.e. an existing conventional pointer). After the electronic device determines that the data indicated by the normal pointer needs to be stored in the remote memory, the electronic device creates a remote pointer and fills the address recorded in the normal pointer into a second sub-pointer in the remote pointer. Then, the electronic device determines a specific address for storing the data according to the address range of the remote memory, stores the data in the local memory into the specific address of the remote memory, and fills the specific address of the remote memory into the first sub-pointer, thereby completing the creation of the remote pointer.
For the sake of understanding, the following describes in detail a process of reading data in a remote memory based on a remote pointer with reference to specific examples.
Referring to fig. 6, fig. 6 is a schematic diagram of a system architecture for applying a remote pointer according to an embodiment of the present disclosure. As shown in fig. 6, the application program runs in the host. The operating system of the host provides far-end memory which is far larger than the memory size of the host to the application program through the memory server connected with the network. In the running process of the application program, the heap corresponding to the application program can be expanded, namely the heap corresponding to the application program can be provided with two pointers, wherein one pointer is an existing conventional pointer and is used for recording the address of data in a local memory; the other is the remote pointer provided in this embodiment, which is used to record the addresses of the data in the remote memory and the local memory. In the case where the data pointed to by the remote pointer is stored in local memory, it can be accessed directly on the heap by the application. In the case where the data pointed to by the remote pointer is stored in the remote memory, when the application accesses the data, the RDMA technique is used to read the data in the remote memory of the memory server to the local memory during operation.
In addition, in order to reduce the memory usage of the local memory, the data stored in the local memory and not used or used very often by the application program needs to be recycled during the operation. The embodiment finds the memory needing to be cleaned up through a garbage collection mechanism of the extended language runtime. Specifically, the embodiment may extend the marking phase of the garbage collection mechanism. In the extended marking stage, the recoverer releases the remote pointer which is not used by the application, and meanwhile, the remote pointer which is used on the current application stack can be found, so that the data which is used by a user is prevented from being released.
After the marking stage marks the remote pointer to be released, a memory Engine (Mem Engine) is additionally introduced in the embodiment, and the memory Engine is used for writing back the modified data in the local memory to the memory server. In addition, the memory engine preferentially releases data with higher reading speed and lower use heat.
In particular, existing garbage collection mechanisms can be abstracted into a marking phase and a clearing phase. After the expansion of the marking stage, the recoverer finds out the unused memory originally and additionally finds out the unused remote pointer of the application and the currently used remote pointer on the application stack. For the clearing stage, a memory engine is additionally introduced in this embodiment, and when the memory usage of the local memory is excessive, the memory engine will write back part of the cached data to the memory server.
From the application point of view, the remote pointer is used in a manner indistinguishable from the normal pointer. Therefore, the application program can conveniently use the remote pointer to interact with the data stored in the remote memory without switching to the kernel mode.
Referring to fig. 7, fig. 7 is a schematic diagram of another system architecture for applying a remote pointer according to an embodiment of the present application. Similar to fig. 6, the host in fig. 7 also includes an application, a heap, a reclaimer, and a memory engine, and the heap includes a normal pointer and a remote pointer. The difference between fig. 7 and fig. 6 is: the remote memory in fig. 7 is deployed on the same host. Similarly, the application program can read the data in the remote memory based on the remote pointer. The recoverer is used for marking a far-end pointer to be cleaned. The memory engine is used for writing the modified data in the local memory back to the memory server based on the remote pointer to be cleaned
Referring to fig. 8, fig. 8 is a schematic view illustrating a usage flow of a remote pointer according to an embodiment of the present application.
When the electronic equipment acquires a data processing request from an application program, the electronic equipment acquires a remote pointer in the data processing request. Then, the electronic device determines whether the value of the existence flag in the remote pointer is 1, that is, the electronic device determines whether the data indicated by the remote pointer is already stored in the local memory.
If the value of the identifier in the remote pointer is not 1, it indicates that the data indicated by the remote pointer is not stored in the local memory. Therefore, the electronic device can allocate the storage space in the local memory according to the type of the remote pointer. When the electronic device creates the remote pointer, the type of the remote pointer is determined according to the size or type of the data (such as an integer, a decimal number or a character string). In this way, the electronic device may allocate a specific storage space (e.g., a specific size of storage space) in the local memory according to the type of the remote pointer to store the data indicated by the remote pointer.
And the electronic equipment reads data from the remote memory according to the remote address indicated by the first sub-pointer in the remote pointer and stores the read data into the storage space distributed in the local memory. And the electronic equipment fills the address of the storage space in the local memory into the second sub-pointer of the remote pointer so as to record the address of the data in the local memory. In addition, the electronic device sets the value of the existence flag in the remote pointer to 1 to indicate that the data indicated by the remote pointer is already stored in the local memory. Also, the electronic device may update the hot flag to instruct the application to access the data indicated by the remote pointer.
If the value of the identifier in the remote pointer is 1, the data indicated by the remote pointer is already stored in the local memory. Thus, the electronic device can update the hot flag to instruct the application to access the data indicated by the remote pointer.
After updating the hot identifier in the remote pointer, the electronic device determines whether the processing operation on the data in the data processing request is a write operation, i.e., whether the data needs to be modified.
If the processing operation on the data in the data processing request is a write operation, the electronic device sets the value of the dirty flag in the remote pointer to 1 to indicate that the data in the local memory has been modified. And the electronic equipment modifies the data in the local memory indicated by the second sub-pointer in the remote pointer according to the data carried in the data processing request.
If the processing operation on the data in the data processing request is not a write operation, the electronic device may read the data in the local memory indicated by the second sub-pointer in the remote pointer, and return the read data to the application program.
Referring to fig. 9, fig. 9 is a schematic flow chart of a marking stage in a garbage recycling process according to an embodiment of the present disclosure.
In the marking phase, the electronic device determines whether the data indicated in the pointer is no longer used, i.e. the data indicated in the pointer need not be used again during subsequent running of the application.
If the data indicated in the pointer is no longer used, the electronic device may free the memory space indicated by the pointer.
If the data indicated in the pointer still needs to be used, the electronic device can continuously judge whether the pointer is a far-end pointer.
If the pointer is not a far-end pointer, the pointer is represented as a normal pointer, and the electronic device may mark and process the normal pointer through a conventional marking stage instead of processing the pointer.
If the pointer is a far-end pointer, the electronic device may continue to determine whether the far-end pointer is used by the current running stack. Wherein the use of the far-end pointer by the current running stack indicates that the far-end pointer is about to be used by the application. For example, when application A's process calls application B's process, application B's process puts remote pointer 1 into the run stack during run-time to declare the need to use remote pointer 1 later. After the process of the application program B is finished running, the process of the application program a is returned to, and the remote pointer corresponding to the process of the application program a is a pointer which needs to be used subsequently, but the remote pointer corresponding to the process of the application program a is not used by the current running stack.
If the remote pointer is used by the current running stack, it indicates that the data indicated by the remote pointer is about to be used, and therefore the electronic device does not process the remote pointer, i.e. does not temporarily clean the remote pointer.
If the remote pointer is not used by the current running stack, the electronic device may place the remote pointer into the queue to be cleared to indicate that the memory space indicated by the remote pointer is freed.
Referring to fig. 10, fig. 10 is a schematic flow chart of a cleaning stage in a garbage recycling process according to an embodiment of the present disclosure.
In the memory clearing stage, the electronic equipment sorts the remote pointers in the queue to be cleared, which are obtained in the marking stage, according to the attribute identifications. For example, in a case that the higher the reading speed of the remote memory is, the larger the value of the attribute identifier in the remote pointer is, the electronic device may sort the plurality of remote pointers according to the order of the attribute identifiers from large to small.
After the remote pointers are sorted according to the attribute identifications, the electronic equipment carries out secondary sorting on the remote pointers with the same attribute identifications according to the heat identifications. For the far-end pointers corresponding to the data with the same reading speed, the electronic device may use the far-end pointers corresponding to the data with relatively higher heat in the earlier positions.
After the remote pointers are sorted based on the attribute identifiers and the heat identifiers, the electronic equipment judges whether the current memory occupancy rate of the local memory is smaller than a preset threshold value.
If the memory occupancy rate is smaller than the preset threshold value, the memory occupancy rate indicates that the memory of the current local memory is enough, and the memory of the application program does not need to be recycled, so that the electronic device temporarily ends the memory recycling operation.
If the memory occupancy rate is not less than the preset threshold value, the memory occupancy rate indicates that the memory of the current memory is insufficient, and the memory of the application program needs to be recycled, so that the electronic device takes out the far-end pointer at the beginning of the queue to be cleaned so as to recycle the storage space corresponding to the far-end pointer in the queue to be cleaned.
After the far-end pointer at the beginning of the queue to be cleaned is taken out, the electronic device determines whether a dirty identifier in the far-end pointer is 0, that is, whether data in the local memory indicated by the far-end pointer is modified.
If the dirty flag in the remote pointer is 0, it indicates that the data in the local memory indicated by the remote pointer is not modified, the data stored in the remote memory is the same as the data in the local memory, and the electronic device may directly release the storage space in the local memory indicated by the second pointer of the remote pointer.
If the dirty flag in the remote pointer is not 0, it indicates that the data in the local memory indicated by the remote pointer is modified, and the data stored in the remote memory is not the same as the data in the local memory. Therefore, the electronic device writes the data pointed by the second sub-pointer of the remote pointer to the remote address pointed by the first sub-pointer, that is, the electronic device updates the data in the local memory to the remote memory. Then, the electronic device releases the storage space in the local memory indicated by the second pointer of the remote pointer.
After the electronic device can directly release the storage space in the local memory indicated by the second pointer of the remote pointer, the electronic device continues to determine whether the current memory occupancy rate of the current local memory is smaller than a preset threshold value, so as to circularly execute the memory cleaning work under the condition that the memory occupancy rate is not smaller than the preset threshold value.
In order to verify the beneficial effects of the method provided by the embodiment of the present application, the method for reading data in a remote memory based on a remote pointer provided by the above embodiment is applied to an open source item DataFrame in the embodiment. And analyzing taxi data files in a certain city by using a DataFrame, wherein the taxi data files are loaded to the memory to be about 31GB. For the comparison experiment, three remote memory access modes are tested in total, and the time delay of each remote memory access mode is tested. The three modes are respectively as follows: the VMM is used in the kernel mode to handle page fault exceptions to access the Remote memory, and the Remote Procedure Call (RPC) is used in the user mode based on a native language (native) to access the Remote memory and the Remote pointer provided in this embodiment is used to access the Remote memory.
Referring to fig. 11, fig. 11 is a schematic diagram illustrating performance impact of three ways of accessing remote memory according to an embodiment of the present disclosure. As shown in fig. 11, the horizontal axis represents the ratio of local memory to remote memory, where the remote memory is a fixed size of 31G (i.e., the workload can be fully loaded in the memory). The local memory is sequentially increased from 1GB to 31GB. The vertical axis represents the time required for executing all tasks when the workload is loaded, analyzed, calculated, and the like, that is, the local memory needs to dynamically adjust the objects to be stored. Three broken lines in the figure respectively represent three remote memory obtaining modes of the method (the method for short), the native language and the VMM provided by the embodiment of the application.
It can be seen from the line graph that when the local memory occupancy is low, a large amount of calculation causes data to be frequently swapped in and out of the local memory by network requests, and the cost caused by using the RDMA network is obviously less than the network cost caused by using RPC communication based on a native language. The mode of using the VMM in the kernel needs to introduce more kernel overhead, so that when the local memory is small and frequent page change is needed, the performance is far inferior to the mode of performing remote memory access through code semantics in a user mode. However, when the local memory is sufficient, the VMM mode reduces much extra pointer checking and memory recycling work compared with the user mode, so the latency is relatively small.
That is to say, when the local memory is much smaller than the required memory size, that is, a large amount of remote memory is needed, the data in the remote memory can be accessed or updated more quickly and efficiently based on the remote pointer provided in this embodiment.
On the basis of the embodiments corresponding to fig. 1 to fig. 11, in order to better implement the above-mentioned scheme of the embodiments of the present application, the following also provides related equipment for implementing the above-mentioned scheme.
Specifically, referring to fig. 12, fig. 12 is a schematic structural diagram of a data processing apparatus 1200 according to an embodiment of the present application, where the data processing apparatus 1200 includes: an acquisition unit 1201 and a processing unit 1202; the obtaining unit 1201 is configured to obtain a data processing request, where the data processing request includes a remote pointer, and the remote pointer is used to record a remote address of data in a remote memory; the processing unit 1202 is configured to read target data from the remote memory based on a remote address in the remote pointer, and store the target data in a local memory, where a time overhead for reading data in the remote memory is greater than a time overhead for reading data in the local memory; the processing unit 1202 is further configured to process the target data stored in the local memory according to the data processing request.
In one possible implementation, the local memory and the remote memory are deployed on different devices; the processing unit 1202 is further configured to read the target data from the remote memory via remote direct memory access RDMA.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a device identifier and the remote address, and the device identifier is used to indicate a device where the remote memory is located; the processing unit 1202 is further configured to determine a target device based on the device identifier; and reading the target data in the remote memory of the target equipment based on the remote address.
In one possible implementation manner, the local memory and the remote memory are deployed on the same device, and the local memory and the remote memory are different types of memories.
In a possible implementation manner, the remote pointer includes a first sub-pointer, where the first sub-pointer includes a memory identifier and the remote address, and the memory identifier is used to indicate a memory for storing the target data; the processing unit 1202 is further configured to determine the remote memory based on the memory identifier; and reading the target data in the remote memory based on the remote address.
In one possible implementation manner, the remote pointer includes a second sub-pointer, and the second sub-pointer is used for recording an address of data in the local memory; the processing unit 1202 is further configured to allocate a storage space in the local memory for the target data; and storing the target data in the storage space, and recording the address of the storage space in the second sub-pointer.
In a possible implementation manner, the remote pointer further includes an attribute identifier, where the attribute identifier is used to indicate a speed of reading data in the remote memory; the remote pointer further comprises a heat identifier, and the heat identifier is used for indicating the use heat of the target data stored in the local memory.
In a possible implementation manner, the obtaining unit 1201 is further configured to obtain a plurality of remote pointers in a queue to be cleaned, where the plurality of remote pointers correspond to different data respectively; the processing unit 1202 is further configured to: sorting the plurality of remote pointers according to the attribute identifiers and the heat identifiers in the plurality of remote pointers to obtain a sorting result; and based on the sequencing result, sequentially releasing the storage space pointed by a second sub-pointer in the plurality of remote pointers until the memory occupancy rate of the local memory is less than or equal to a preset threshold value.
In a possible implementation manner, the processing unit 1202 is further configured to: sequencing the plurality of far-end pointers according to the sequence of the speed indicated by the attribute identification from large to small; and performing secondary sequencing on the remote pointers with the same attribute identifications according to the sequence of the hot identifications from small to large.
In one possible implementation manner, the remote pointer further includes a dirty identifier, where the dirty identifier is used to indicate whether data corresponding to the second child pointer is modified; the processing unit 1202 is further configured to: if the dirty mark in the remote pointer to be released indicates that the data corresponding to the second sub-pointer in the remote pointer to be released is modified, writing the data corresponding to the second sub-pointer in the remote pointer to be released back to the remote memory; and releasing the memory space pointed by the second sub-pointer in the remote pointer to be released.
In a possible implementation manner, the processing unit 1202 is further configured to: if the data processing request is a data reading request, returning the target data stored in the local memory to a process; and if the data processing request is a data modification request, modifying the target data stored in the local memory according to the data modification request.
The data processing method provided by the embodiment of the present application may be specifically executed by a chip in an electronic device, where the chip includes: a processing unit, which may be, for example, a processor, and a communication unit, which may be, for example, an input/output interface, a pin or a circuit, etc. The processing unit may execute the computer executable instructions stored in the storage unit to enable the chip in the electronic device to execute the data processing method described in the embodiment shown in fig. 1 to 11. Optionally, the storage unit is a storage unit in the chip, such as a register, a cache, and the like, and the storage unit may also be a storage unit located outside the chip in the wireless access device, such as a read-only memory (ROM) or another type of static storage device that can store static information and instructions, a Random Access Memory (RAM), and the like.
With reference to fig. 13, the present application further provides a computer-readable storage medium, and in some embodiments, the method disclosed in fig. 3 above may be implemented as computer program instructions encoded on the computer-readable storage medium in a machine-readable format or on other non-transitory media or articles of manufacture.
Fig. 13 schematically illustrates a conceptual partial view of an example computer-readable storage medium comprising a computer program for executing a computer process on a computing device, arranged in accordance with at least some embodiments presented herein.
In one embodiment, the computer-readable storage medium 1300 is provided using a signal bearing medium 1301. The signal bearing medium 1301 may include one or more program instructions 1302 which, when executed by one or more processors, may provide the functions or portions of the functions described above with respect to fig. 5. Thus, for example, referring to the embodiment shown in FIG. 5, one or more features of steps 501-502 may be undertaken by one or more instructions associated with the signal bearing medium 1301. Further, program instructions 1302 in FIG. 13 also describe example instructions.
In some examples, signal bearing medium 1301 may include a computer readable medium 1303 such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Video Disc (DVD), a digital tape, a memory, a ROM, or a RAM, among others.
In some implementations, the signal bearing medium 1301 may include a computer recordable medium 1304 such as, but not limited to, memory, read/write (R/W) CD, R/W DVD, and the like. In some implementations, the signal bearing medium 1301 may include a communication medium 1305, such as, but not limited to, a digital and/or analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). Thus, for example, signal bearing medium 1301 may be conveyed by a wireless form of communication medium 1305 (e.g., a wireless communication medium that complies with the IEEE 802.13 standard or other transport protocol).
The one or more program instructions 1302 may be, for example, computer-executable instructions or logic-implementing instructions. In some examples, a computing device of the computing device may be configured to provide various operations, functions, or actions in response to program instructions 1302 communicated to the computing device by one or more of a computer-readable medium 1303, a computer-recordable medium 1304, and/or a communication medium 1305.
It should be understood that the arrangements described herein are for illustrative purposes only. Thus, those skilled in the art will appreciate that other arrangements and other elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used instead, and that some elements may be omitted altogether depending upon the desired results. In addition, many of the described elements are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location.
It can be clearly understood by those skilled in the art that, for convenience and simplicity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be substantially implemented or contributed to by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: u disk, removable hard disk, read only memory, random access memory, magnetic or optical disk, etc. for storing program codes.

Claims (11)

1. A data processing method, comprising:
acquiring a data processing request, wherein the data processing request comprises a remote pointer, and the remote pointer is used for recording a remote address of data in a remote memory;
reading target data from the remote memory based on a remote address in the remote pointer, and storing the target data in a local memory, wherein the local memory and the remote memory are deployed on different devices, and the time overhead for reading the data in the remote memory is greater than the time overhead for reading the data in the local memory;
and processing the target data stored in the local memory according to the data processing request.
2. The method according to claim 1, wherein the remote pointer comprises a first sub-pointer, the first sub-pointer comprises a device identifier and the remote address, and the device identifier is used to indicate a device where the remote memory is located;
the reading of the target data from the remote memory based on the remote address in the remote pointer comprises:
determining a target device based on the device identification;
and reading the target data in the remote memory of the target equipment based on the remote address.
3. The method according to claim 1 or 2, wherein the remote pointer comprises a second sub-pointer, and the second sub-pointer is used for recording the address of data in the local memory;
the storing the target data in the local memory includes:
allocating a storage space in the local memory for the target data;
and storing the target data in the storage space, and recording the address of the storage space in the second sub-pointer.
4. The method of claim 3, wherein the remote pointer further comprises an attribute identifier, and the attribute identifier is used to indicate a speed of reading the data in the remote memory;
the remote pointer further comprises a heat identifier, and the heat identifier is used for indicating the use heat of the target data stored in the local memory.
5. The method of claim 4, further comprising:
acquiring a plurality of remote pointers in a queue to be cleaned, wherein the plurality of remote pointers correspond to different data respectively, and the queue to be cleaned is used for indicating the remote pointers of a local storage space to be released;
sorting the plurality of remote pointers according to the attribute identifiers and the heat identifiers in the plurality of remote pointers to obtain a sorting result;
and based on the sequencing result, sequentially releasing the storage space pointed by a second sub-pointer in the plurality of remote pointers until the memory occupancy rate of the local memory is less than or equal to a preset threshold value.
6. The method of claim 5, wherein the sorting the plurality of remote pointers according to the attribute identifiers and the hot identifiers of the plurality of remote pointers comprises:
sequencing the plurality of far-end pointers according to the sequence of the speed indicated by the attribute identification from large to small to obtain a plurality of sequenced far-end pointers;
and sequencing the remote pointers with the same attribute identifications in the plurality of sequenced remote pointers according to the sequence of the hot identifications from small to large.
7. The method according to claim 5 or 6, wherein the remote pointer further comprises a dirty flag indicating whether the data corresponding to the second sub-pointer is modified;
the sequentially releasing the memory space pointed to by the second sub-pointer of the plurality of remote pointers comprises:
if the dirty mark in the remote pointer to be released indicates that the data corresponding to the second sub-pointer in the remote pointer to be released is modified, writing the data corresponding to the second sub-pointer in the remote pointer to be released back to the remote memory;
and releasing the memory space pointed by the second sub-pointer in the remote pointer to be released.
8. The method according to any one of claims 1 to 7, wherein the processing the target data stored in the local memory according to the data processing request comprises:
if the data processing request is a data reading request, returning the target data stored in the local memory to a process;
and if the data processing request is a data modification request, modifying the target data stored in the local memory according to the data modification request.
9. An electronic device comprising a memory and a processor; the memory stores code, the processor is configured to execute the code, and when executed, the electronic device performs the method of any of claims 1-8.
10. A computer readable storage medium comprising computer readable instructions which, when run on a computer, cause the computer to perform the method of any of claims 1 to 8.
11. A computer program product comprising computer readable instructions which, when run on a computer, cause the computer to perform the method of any one of claims 1 to 8.
CN202111094351.XA 2021-09-17 2021-09-17 Data processing method and related device Pending CN115827550A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111094351.XA CN115827550A (en) 2021-09-17 2021-09-17 Data processing method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111094351.XA CN115827550A (en) 2021-09-17 2021-09-17 Data processing method and related device

Publications (1)

Publication Number Publication Date
CN115827550A true CN115827550A (en) 2023-03-21

Family

ID=85515294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111094351.XA Pending CN115827550A (en) 2021-09-17 2021-09-17 Data processing method and related device

Country Status (1)

Country Link
CN (1) CN115827550A (en)

Similar Documents

Publication Publication Date Title
US9836409B2 (en) Seamless application access to hybrid main memory
JP5147280B2 (en) System and method for garbage collection in heterogeneous multiprocessor systems
CN102612685B (en) Non-blocking data transfer via memory cache manipulation
CN108664523B (en) Virtual disk file format conversion method and device
KR20210089150A (en) Faster access to virtual machine memory backed by the host computing device virtual memory
EP3740872B1 (en) Decoupling trace data streams using cache coherence protocol data
KR101650424B1 (en) Operation transfer from an origin virtual machine to a destination virtual machine
US9454481B2 (en) Affinity group access to global data
CN102667714B (en) Support the method and system that the function provided by the resource outside operating system environment is provided
CN114327777B (en) Method and device for determining global page directory, electronic equipment and storage medium
TWI785320B (en) Intra-device notational data movement system, information handling system and method for providing intra-device notational data movement
US11500822B2 (en) Virtualized append-only interface
CN114691391A (en) Super-calling method and device for kernel mode program of enhanced packet filter
CN111666036B (en) Method, device and system for migrating data
CN106775501A (en) Elimination of Data Redundancy method and system based on nonvolatile memory equipment
CN115827550A (en) Data processing method and related device
CN115712500A (en) Memory release method, memory recovery method, memory release device, memory recovery device, computer equipment and storage medium
CN115586943A (en) Hardware marking implementation method for dirty pages of virtual machine of intelligent network card
US11023374B2 (en) Apparatus and method and computer program product for controlling data access
US20200326970A1 (en) Virtualized append-only storage device
US10514969B2 (en) Bit-accurate-tracing analysis with applied memory region lifetimes
CN113448897B (en) Optimization method suitable for pure user mode far-end direct memory access
CN113704165B (en) Super fusion server, data processing method and device
CN117692322B (en) Network card configuration method and device, electronic equipment and storage medium
WO2024099448A1 (en) Memory release method and apparatus, memory recovery method and apparatus, and computer device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination