WO2024066496A1 - 一种数据的访问方法及装置 - Google Patents
一种数据的访问方法及装置 Download PDFInfo
- Publication number
- WO2024066496A1 WO2024066496A1 PCT/CN2023/100809 CN2023100809W WO2024066496A1 WO 2024066496 A1 WO2024066496 A1 WO 2024066496A1 CN 2023100809 W CN2023100809 W CN 2023100809W WO 2024066496 A1 WO2024066496 A1 WO 2024066496A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- target
- address
- virtual address
- storage system
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Definitions
- the present invention relates to the field of computer technology, and in particular to a data access method and device.
- the software stack refers to the collection of programs or components required for the application to run.
- Mmap is a method of memory mapping files, that is, mapping a file or other object to the address space of a process, and establishing a one-to-one mapping relationship between the address of the file or other object and a virtual address in the virtual address space of the process.
- mmap can reduce the physical space occupied during file access, it is limited to memory mapping of files, objects, block devices, etc. within a single node, and does not have the ability to map across nodes.
- the present application provides a data access method, device, computer-readable storage medium, and computer program product.
- a global shared memory pool in the distributed storage system is constructed, which can also be referred to as a global memory pool.
- a global data block is constructed based on the global memory pool, and the global data block is mapped to the process address space of the client.
- the client establishes a local cache for caching the global data block in the distributed system, and establishes a mapping from the process virtual address to the cache page through the client's local page table. That is, after using Distributed mmap to map the remote file in the distributed storage system, the DVA of the file is recorded locally. When the local cache does not hit, the remote DVA space is accessed through Page Fault, saving the latency overhead of the end-to-end software stack.
- the present application provides a data access method, the method comprising: during the running of a target process, obtaining a first virtual address of target data in a target process; based on the first virtual address, querying a first address mapping relationship table to determine whether the target data is stored in a local cache, the first address mapping relationship table comprising: a correspondence between the virtual address of data in a first data set in the process and the physical address of data in the first data set in the local cache, wherein the data in the first data set is obtained in advance from a distributed storage system; if the target data is stored in the local cache, based on the first virtual address, querying the first address mapping relationship table to obtain the physical address of the target data in the local cache; and obtaining the target data according to the physical address of the target data in the local cache.
- a global memory pool formed by distributed storage nodes and a global data block of a distributed storage system can be constructed based on the global memory pool.
- the client processor can map part of the data in the global data block to the virtual address space of the target process and generate a first address mapping relationship table.
- the client processor establishes a cache page similar to Page Cache in the local memory of the client to cache the global data block, and establishes a mapping relationship between the local cache page and the virtual address of the target process. Then the client processor updates the first address mapping relationship table according to the mapping relationship.
- the client processor determines whether the target data is stored in the cache page of the local cache according to the first virtual address of the target data in the target process.
- the client processor can directly read the target data from the cache page of the local cache. That is, in a distributed storage system.
- the client process can quickly access the global data block, saving the latency overhead of the client to the storage node software stack.
- the first address mapping relationship table also includes: the correspondence between the virtual address of the data in the second data set in the process and the virtual address of the data in the second data set in the distributed storage system
- the method also includes: if the target data is not stored in the local cache, based on the first virtual address, querying the first address mapping relationship table to obtain the second virtual address of the target data in the distributed storage system; based on the second virtual address, querying the second address mapping relationship table to obtain the second virtual address of the target data in the distributed storage system the physical address of the target data in the distributed storage system
- the second address mapping relationship table includes: the correspondence between the virtual address of the data in the third data set stored in the distributed storage system and the physical address of the data in the third data set in the distributed storage system; wherein the data in the third data set includes: the data in the first data set and the data in the second data set; based on the physical address of the target data in the distributed storage system, the target data is obtained from the distributed storage system.
- the client processor needs to read the target data into the cache page from the storage node of the distributed storage system. Specifically, the client processor can query the first address mapping relationship table according to the first virtual address of the target data to obtain the global virtual address of the target data in the distributed storage system, that is, the second virtual address. Then the client processor can query the second virtual address table in the distributed storage system according to the second virtual address, obtain the physical address of the target data in the distributed storage system, and obtain the target data from the distributed storage system according to the physical address.
- the second virtual address table is the address mapping table obtained when the distributed storage system constructs global data.
- the method after obtaining the target data from the distributed storage system based on the physical address of the target data in the distributed storage system, the method also includes: storing the target data in a local cache; establishing a first correspondence between a first virtual address of the target data in the target process and a physical address of the target data in the local cache; replacing a second correspondence in the first address mapping relationship table with the first correspondence, the second correspondence being a correspondence between the virtual address of the target data in the target process and the virtual address of the target data in the distributed storage system.
- the client processor after the client processor obtains the target data from the distributed storage system, it also needs to cache the target data in the local cache and establish a mapping relationship between the physical address of the target data in the local cache and the virtual address of the target data in the target process. Then, the client processor saves the mapping relationship in the first address mapping relationship table. When the target process needs to obtain the target data again, it can directly obtain it from the local cache. This saves the latency overhead of the target process obtaining the target data.
- the method also includes: during the running of the target process, obtaining the third virtual address of the data to be written in the target process; based on the third virtual address, querying the first address mapping relationship table to determine whether data corresponding to the third virtual address is stored in the local cache; if data corresponding to the third virtual address is stored in the local cache, replacing the data corresponding to the third virtual address in the local cache with the data to be written.
- the client process can directly cache the data to be written in the client's cache page. Then, the client processor can mark the cache page storing the data written by the client process as a dirty page, and periodically write the dirty page back to the storage node. This simplifies the process of writing to the storage node by the client process.
- the present application provides a data processing device, comprising:
- An acquisition module used for acquiring the first virtual address of the target data in the target process during the running of the target process
- a processing module configured to query a first address mapping relationship table according to a first virtual address to determine whether the target data is stored in a local cache, wherein the first address mapping relationship table includes: a correspondence between a virtual address of the data in the first data set in the process and a physical address of the data in the first data set in the local cache, wherein the data in the first data set is obtained in advance from a distributed storage system; if the target data is stored in the local cache, query the first address mapping relationship table based on the first virtual address to obtain a physical address of the target data in the local cache;
- the acquisition module is also used to acquire the target data according to the physical address of the target data in the local cache.
- the first address mapping relationship table further includes: a correspondence between a virtual address of data in the second data set in the process and a virtual address of data in the second data set in the distributed storage system, and the processing module is further configured to:
- the target data is not stored in the local cache, based on the first virtual address, query the first address mapping relationship table to obtain the second virtual address of the target data in the distributed storage system; query the second address mapping relationship table according to the second virtual address to obtain the physical address of the target data in the distributed storage system; the second address mapping relationship table includes: the correspondence between the virtual address of the data in the third data set stored in the distributed storage system and the physical address of the data in the third data set in the distributed storage system; wherein the data in the third data set includes: the data in the first data set and the data in the second data set;
- the acquisition module is also used to acquire the target data from the distributed storage system according to the physical address of the target data in the distributed storage system.
- processing module is further configured to:
- the second corresponding relationship in the first address mapping relationship table is replaced by the first corresponding relationship, where the second corresponding relationship is the corresponding relationship between the virtual address of the target data in the target process and the virtual address of the target data in the distributed storage system.
- the acquisition module is further used to, during the running of the target process, acquire a third virtual address of the data to be written in the target process;
- the processing module is also used to query the first address mapping relationship table according to the third virtual address to determine whether data corresponding to the third virtual address is stored in the local cache; if data corresponding to the third virtual address is stored in the local cache, replace the data corresponding to the third virtual address in the local cache with the data to be written.
- the present application provides a computer storage medium, in which instructions are stored.
- the instructions When the instructions are executed on a computer, the computer executes the method provided in the first aspect.
- the present application provides a computer program product comprising instructions, which, when executed on a computer, causes the computer to execute the method provided in the first aspect.
- FIG1 is a schematic diagram of data access based on mmap provided in an embodiment of the present application.
- FIG2 is a schematic diagram of an application scenario provided by an embodiment of the present application.
- FIG3 is a flow chart of a data access method provided in an embodiment of the present application.
- FIG4 is a schematic diagram of a process of accessing data in a distributed storage system provided by an embodiment of the present application.
- FIG5 is a schematic diagram of another process of accessing data in a distributed storage system provided in an embodiment of the present application.
- FIG6 is a schematic diagram of another process of accessing data in a distributed storage system provided in an embodiment of the present application.
- FIG7 is a schematic diagram showing a comparison between a traditional file access path and a global mmap access path provided in an embodiment of the present application
- FIG8 is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application.
- FIG. 9 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application.
- any embodiment or design scheme of "exemplary”, “for example” or “for example” should not be understood as being more preferred or more advantageous than other embodiments or designs.
- the use of words such as “exemplary”, “for example” or “for example” is intended to present related concepts in a specific way.
- first and second are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the indicated technical features. Therefore, the features defined as “first” and “second” may explicitly or implicitly include one or more of the features.
- the terms “include”, “comprises”, “has” and their variations all mean “including but not limited to”, unless otherwise specifically emphasized.
- mmap is a method of memory mapping files, that is, mapping files or other objects in the file disk to the address space (user space) of the application process, realizing a one-to-one mapping relationship between the file disk address and a virtual address in the process virtual address space. After realizing such a relationship, the process can use pointers to read and write this section of memory, and the system will automatically write back the dirty page to the corresponding file disk, that is, the operation on the file is completed without calling read, write and other system call functions. On the contrary, the modification of this area by the kernel space can also be directly reflected in the user space, so that file sharing between different processes can be realized.
- Bypass means that two networks can be physically connected directly without passing through the network security device system through a specific trigger state (power failure or crash). Therefore, with Bypass, when the network security device fails, the networks connected to this device can still be connected to each other. At this time, the network device will no longer process the packets in the network.
- the global memory pool refers to logically combining multiple physically separated memory pools into one memory pool.
- FIG1 shows a schematic diagram of data access based on mmap.
- the operating system on the electronic device allocates an independent virtual address space to each process of the application.
- the target process (which can be any process in the application) calls the library function mmap in the user space, and searches for a free continuous virtual address that meets the requirements in the virtual address space of the target process.
- the continuous virtual address in the target process is associated with the file stored in the file space (disk).
- the mmap function it is necessary to indicate the identifier (file) of the mapped file, the starting point (offset) of the mapped file on the file space (disk), and the length (len) of the mapped file.
- the operating system After establishing the mapping relationship between the virtual address of the target process and the file in the user space, the operating system establishes the mapping relationship between the virtual address of the process and the physical address (Page in Page Cache) in the memory of the electronic device through the memory management unit (Memory Management Unit, MMU), and stores the mapping relationship in the Page Table.
- the Page in the Page Cache can be used to cache the file content in the file space. It is understandable that each process has its own Page Table, which stores the mapping relationship between the virtual address and the physical address in the process.
- the process sends the virtual address of the data to be read to the MMU through the CPU of the electronic device.
- the MMU After receiving the virtual address sent by the CPU, the MMU starts to query the Page Table of the process to determine whether there is a mapping in the Page Table of the process and whether the read and write permissions of the process are normal.
- the CPU when there is no physical address corresponding to the virtual address of the data to be read in the Page Table (i.e., the local cache does not hit), the CPU generates a page fault interrupt (Page Fau lt). At this time, the process will switch from user mode to kernel mode and hand over the Page Fault to the kernel's Page Fault Handler for processing.
- the CPU can read data from the file space through rede/prefetch and store the read data in the Page in the Page Cache. Then, the CPU triggers the MMU to establish a mapping relationship between the virtual address of the data to be read and the physical address in the Page Cache, and saves the mapping relationship in the Page Table. In another possible example, when there is a physical address corresponding to the virtual address of the data to be read in the Page Cache (i.e., the local cache hits), the CPU can directly read the data in the Page Cache.
- the modified file data will not be synchronized to the disk (or file space) immediately, and the modified data will be cached in the Page Cache of the memory first.
- the page that is inconsistent with the disk data can be called a dirty page, and the dirty page will be synchronized to the disk at the appropriate time.
- data access based on mmap enables multiple processes to access the same file through mmap, and the accessed file is only stored in the Page Cache, reducing the physical space occupied.
- data access based on mmap can realize direct data interaction between user space and kernel space, eliminating the tedious process of different spaces and different data.
- mmap is limited to memory mapping of files, objects, block devices, etc. within a single node, and has no cross-node mapping capability. That is, based on the mmap data access method shown in Figure 1, global data access in a distributed storage system cannot be realized.
- an embodiment of the present application provides a data access method that can be applied to a distributed storage system.
- the physical memory of each storage node in the distributed storage system is used to form a global address space, and a distributed physical address space (DPAS) is provided to the outside.
- the distributed physical address is mapped to a distributed virtual address (DVA) through a distributed page table (DPT).
- DVA distributed virtual address
- DPT distributed page table
- the global data block in the distributed storage system can be constructed based on DVA. Among them, the global data block includes: user files or objects.
- the application program in the client (Client) end of the distributed storage system can map the global data block to the address space of the local process through distributed mmap, and access it through load/store. This allows the client-side application program in the distributed storage system to access the data in the distributed storage node faster.
- FIG2 shows a schematic diagram of an application scenario provided by an embodiment of the present invention.
- the distributed storage system includes multiple storage nodes (Node).
- the storage node can be used to store data.
- the storage node may include: dynamic random access memory (DRAM), PM and other physical storage media.
- the physical storage media in multiple storage nodes constitute the global address space of the distributed storage system and provide a distributed physical address space to the outside.
- the distributed physical address (DPA) in the distributed physical address space can be mapped to the DVA through the DPT.
- the DVA based on the distributed storage system can construct a global data block in the distributed storage system. Among them, the DPA can access the data in the storage node through the global memory bus, and bypass the CPU of the storage node.
- An application is installed on the client.
- the application can map the data in the global data block built based on DVA in the distributed storage system to the address space of the local process on the client by calling the Distributedmmap function. And read and write data mapped to the address space of the local process through load/store operations.
- an embodiment of the present application provides a flow chart of a method for accessing data.
- the method can be applied to the distributed storage system shown in Figure 2. Referring to Figure 3, the method includes: S301-S306.
- the management software in the distributed storage system may first construct a global data block of the distributed storage system.
- the storage medium (e.g., AEP, DRAM, XL-Flash) in each of the multiple storage nodes in the distributed storage system constitutes the global address space of the distributed storage system, providing a distributed physical address space to the outside.
- the distributed physical address space of the distributed storage system can be accessed through the DPA. That is, after obtaining the DPA, the data in the storage node can be directly accessed through the global memory data bus according to the obtained DPA.
- the management software in the distributed storage system After the management software in the distributed storage system obtains the DPA in the distributed storage system, in order to allow all users using the distributed storage system to share the storage space of the entire distributed storage system, it is also necessary to map the DPA of the distributed storage system to DVA.
- mapping the DPA of the distributed storage system to DVA it is necessary to generate a DPT in the distributed storage system.
- the DPT can be stored in any storage node of the distributed storage system, and the DPT is used to store the mapping relationship from the DVA to the DPT of the distributed storage system.
- the management software in the distributed storage system may construct a global data block of the distributed storage system based on the obtained DVA of the distributed storage system.
- the global data block of the distributed storage system may include: user files or objects.
- the operating system of the client side allocates a virtual address space of a fixed size for each process.
- the virtual address space of the process is composed of multiple virtual memory areas.
- the virtual memory area is a homogeneous interval in the virtual address space of the process, that is, a continuous address range with the same characteristics.
- the virtual address space of the process of the client side in Figure 4 includes: a stack area, a file mapping area, a heap, a bss data segment, an initial data segment, and a text data segment.
- the file mapping area is the free space between the heap and the stack.
- the target process can call the library function mmap in user space.
- the prototype of the library function mmap is:
- the parameter start points to the starting address of the memory to be mapped;
- the parameter length represents how much of the global data block in the distributed storage system needs to be mapped to the memory;
- the parameter port represents the protection method of the mapping area;
- the parameter flags represents the various characteristics that affect the mapping area;
- the parameter fd represents the file descriptor of the global data block to be mapped to the memory;
- the parameter offset represents the offset when mapping the global data block, which is usually set to 0, indicating that the mapped global data block corresponds to the front of the entire data block, where offset must be an integer multiple of the paging size.
- the client-side CPU When the target process calls the library function mmap to map the global data block stored in the distributed storage node to the virtual address space of the target process, the client-side CPU also needs to save the mapping relationship between the DVA of the global data block and the virtual address (virt) of the global data block in the virtual address space of the target process to the local page table maintained by the MMU of the client, such as the mapping relationship saved in the Page Table in Figure 4. And the client-side CPU also needs to save the mapping relationship between the DVA of the global data block and the virtual address (virt) of the global data block in the virtual address space of the target process to the mmap management software.
- the client CPU can use the client physical memory as a local cache.
- the client operating system allocates a virtual address space for the process, it also needs to map the virtual address in the virtual space to the client local cache through the MMU.
- the virtual address can be mapped to the local cache through a page table, which is maintained by the client operating system and referenced by the processor.
- the virtual address space of the process may be divided according to a fixed size, and the local cache may also be set to different page sizes.
- the size of the cache page in the local cache is the same as the size of the virtual page.
- the target process on the client can trigger the CPU to read the data stored in the distributed storage node into the local cache page on the client. Specifically, after the CPU on the client obtains the virtual address of the data to be read in the target process, the CPU on the client can find the local page table according to the virtual address of the data to be read in the target process. Get the DVA of the data in the distributed storage system, and then the CPU on the client side sends a data read request command to the distributed storage system, which carries the DVA of the data to be read. After the CPU in the distributed storage system obtains the DVA, it searches the DPT in the distributed storage system according to the DVA to obtain the DPA of the data to be read.
- the CPU in the distributed storage system obtains the data to be read according to the DPT, and sends the data to be read to the CPU on the client side.
- the CPU on the client side After receiving the data to be read, the CPU on the client side stores the data to be read in the local cache page. Then, the CPU on the client side also needs to establish a mapping relationship between the cache page and the virtual address of the data to be read in the process, and use the mapping relationship to replace the mapping relationship between the virtual address of the data to be read in the process and the DVA of the data to be read in the local page table.
- a data processing unit may be deployed on the client side.
- the DPU may pre-cache some DPTs in the distributed storage system.
- the CPU may obtain the DVA of the global data block that needs to be read into the local cache page, i.e., the target DVA, according to the local page table maintained by the MMU. Then, the CPU sends the target DVA to the DPU.
- the DPU obtains data corresponding to the target DVA from the distributed storage system based on the received target DVA.
- the DPU may be a PCIE device plugged into the client side.
- the DPU may have its own operating system, CPU, storage medium, network interface, etc.
- a portion of the DPT maintained by the distributed storage system is pre-cached in the DPU.
- the DPU can search in the DPT cached in the DPU for a DPA corresponding to the target DVA. If the DPU can find the DPA corresponding to the target DVA in the DPT cached by the DPU, the DPU can directly read the data stored at the DPA from the storage node of the distributed storage system according to the DPA, and send the data to the CPU on the Client side. If the DPA corresponding to the target DVA does not exist in the DPT cached in the DPU, the DPU needs to obtain the DPA corresponding to the target DVA from the DPT maintained by the distributed storage system.
- the DPU After the DPU obtains the DPA corresponding to the target DVA from the DPT maintained by the distributed storage system, the DPU can first save the correspondence between the target DVA and the DPA in the DPT cached by the DPU. Then, the DPU can read the data stored at the DPA from the storage node of the distributed storage system according to the obtained DPA corresponding to the target DVA, and send the data to the CPU on the Client side. After the CPU on the client side receives the data corresponding to the target DVA sent by the DPU, the CPU caches the data in the cache page of the local cache on the client side and triggers the MMU to update the local page table. Among them, the MMU updates the local page table to update the mapping relationship between the target DVA and the target virtual address of the target process stored in the local page table to the mapping relationship between the target virtual address and the physical address in the local memory.
- the page table is also called a mapping table.
- the operating system wants to map the virtual address of the target process to the physical address of the memory. The most intuitive way is to create a mapping table. This mapping table can realize the mapping of the page in the virtual address of the target process to the page in the physical memory.
- the target process when the target process needs to read a certain segment of data in the target process virtual address space during operation, the target process will initiate a read request to the CPU.
- the read request carries the virtual address of the target data block to be read.
- the target process When the target process needs to modify a certain segment of data in the target process virtual address space during operation, the target process will initiate a write request to the CPU.
- the write request carries the virtual address of the target data block to be modified.
- S305 Read target data according to the virtual address of the target process carried in the first message.
- the CPU when the first message sent by the target process is used to indicate that data is to be read from the cache page, the CPU needs to send the virtual address of the target data to be read carried in the first message to the MMU.
- the MMU After the MMU receives the virtual address of the target data block, the MMU needs to determine whether the local page table stores the physical address in the local cache corresponding to the virtual address of the target data.
- the MMU can trigger the CPU to read the target data directly from the local cache according to the physical address corresponding to the virtual address of the target data.
- the MMU determines that the local page table does not contain the physical address in the local cache corresponding to the virtual address of the target data block
- the MMU triggers the CPU of the Client to generate a page fault, i.e., Page Fault.
- the CPU obtains the target data block from the storage node of the distributed storage system and caches it in the local cache page.
- the client side memory is used as a local cache to cache global data blocks in the distributed storage system.
- the client side also includes: the client side CPU and DPU.
- the target process will switch from user mode to kernel mode and hand the Page Fault to the kernel terminal processor (Page Fault Handler) in the kernel for processing.
- the DPU can perform Page Fault acceleration.
- the MMU when the MMU determines that there is no physical address in the local cache corresponding to the virtual address of the target data block in the local page table, the MMU triggers the CPU to generate a Page Fault.
- the Page Fault Handler in the CPU on the Client side obtains the DVA corresponding to the virtual address of the target data block from the local page table, that is, the target DVA.
- the Page Fault Handler then sends the obtained target DVA to the DPU.
- the operating system on the Client side needs to perform a context switch, let the CPU go, and the DPU performs subsequent Page Fault processing.
- the "virtual address of the target data block" refers to the virtual address of the target data block in the virtual address space of the target process.
- the CPU in the DPU can use the memory management unit (DPU-MMU) inside the DPU to find out whether there is a DPA corresponding to the target DVA in the DPT cached inside the DPU.
- DPU-MMU memory management unit
- the CPU inside the DPU can directly read the data at the DPA from the distributed storage node through the network interface controller (NIC) of the DPU.
- NIC network interface controller
- the CPU inside the DPU needs to obtain the DPA corresponding to the target DVA from the DPT on the distributed storage node through the NIC of the DPU.
- the CPU inside the DPU needs to trigger the DPU-MMU to add the mapping relationship between the target DVA and the DPA in the DPT cached by the DPU.
- the DPU can read the data at the DPA from the distributed storage node through the NIC of the DPU.
- the DPU After the DPU obtains the data corresponding to the target DVA, it sends the data to the Page Fault Handler.
- the Page Fault Handler stores the data corresponding to the target DVA in the cache page in the local cache of the client. Then, the Page Fault Handler needs to establish a mapping relationship between the cache page and the virtual address of the target process corresponding to the target DVA. At this point, the Page Fault Handler completes the processing of the Page Fault generated by the client.
- the target process can read the data in the client's local cache normally.
- the CPU on the client side can generate a Page Fault.
- the Page Fault generated by the CPU on the client side will be processed by the DPU process.
- the memory of the DPU can be used as a page cache (i.e., a local cache page) to cache global data blocks in the distributed storage system.
- the CPU on the client side obtains the virtual address of the data that the target process needs to read
- the CPU on the client side obtains the DVA corresponding to the virtual address of the target data block from the local page table through the MMU, that is, the target DVA.
- the MMU uses the obtained target address to directly access the DPU.
- the DPU-MMU in the DPU After the DPU-MMU in the DPU receives the target DVA sent by the MMU, the DPU-MMU queries the local cache page in the DPU and performs address translation to obtain the physical address corresponding to the target DVA (that is, the page address in the cache page).
- the CPU in the DPU can directly read data from the cache page corresponding to the target DVA.
- the DPU-MMU triggers the CPU inside the DPU to generate a Page Fault.
- the Page Fault Handler in the DPU can use the memory management unit (DPU-MMU) inside the DPU to check whether there is a DPA corresponding to the target DVA in the DPT of the DPU's internal cache.
- the Page Fault Handler in the DPU determines that there is a DPA corresponding to the target DVA in the DPT of the DPU cache, the Page Fault Handler in the DPU can directly read the data at the DPA from the distributed storage node through the NIC of the DPU.
- the Page Fault Handler in the DPU determines that there is no DPA corresponding to the target DVA in the DPT of the DPU cache
- the Page Fault Handler in the DPU needs to obtain the DPA corresponding to the target DVA from the DPT on the distributed storage node through the NIC of the DPU.
- the Page Fault Handler in the DPU needs to trigger the DPU-MMU to add the mapping relationship between the target DVA and the DPA in the DPT of the DPU cache.
- the Page Fault Handler in the DPU can read the data at the DPA from the distributed storage node through the NIC of the DPU.
- the Page Fault Handler in the DPU After the Page Fault Handler in the DPU reads the data corresponding to the target DVA, it also needs to write the data corresponding to the target DVA to the cache page in the local cache inside the DPU. Then, the DPU sends a message to the MMU, triggering the MMU to establish a mapping relationship between the cache page in the DPU and the virtual address of the target process corresponding to the target DVA. At this point, the Page Fault processing generated inside the DPU is completed. The target process can read the data in the local cache inside the GPU normally.
- writing the data to be written into the cache page refers to overwriting, that is, the newly written data needs to overwrite the original data.
- the MMU determines whether the local page table contains the physical address in the local cache corresponding to the virtual address of the data to be written.
- the MMU can trigger the CPU on the client side to write the data to be written into the cache page of the local cache according to the physical address corresponding to the virtual address of the data to be written.
- the MMU When the MMU determines that the local page table does not contain the physical address in the local cache corresponding to the virtual address of the target data block, the MMU triggers the CPU on the client side to generate a page fault, i.e., Page Fault.
- Page Fault the CPU in the DPU obtains the target data block from the storage node of the distributed storage system and caches it in the local cache page.
- the CPU on the client side establishes a mapping relationship between the virtual address of the data to be written and the local cache, and writes the data to be written into the local cache page according to the mapping relationship.
- the process in which the CPU in the DPU obtains the target data block from the storage node of the distributed storage system in response to the Page Fault and caches it to the local cache page can refer to the description of FIG. 5 in S306, which will not be repeated here.
- the CPU of the client After the CPU of the client writes the data to be written into the local cache of the client.
- the CPU of the client will mark the cache page of the written data as a dirty page and add it to the dirty list.
- the mmap management software of the client periodically writes the page in the dirty list back to the distributed storage node, so that the data in the distributed storage node is consistent with the data cached in the memory of the client. It can be understood that the mmap management software stores the mapping relationship between the DVA of the global data block and the virtual address (virt) of the global data block in the virtual address space of the target process.
- the mmap management software when the mmap management software writes the page in the dirty list back to the distributed storage node, the mmap management software can obtain the virtual address in the target process corresponding to the page in the dirty list through the local page table. Then, the mmap management software can write the data stored in the page in the dirty list back to the storage node in the distributed storage system according to the virtual address in the target process corresponding to the page in the dirty list and the mapping relationship stored in the mmap management software.
- the mmap management software on the client side obtains the dirty page in the local cache and calls mcommit() to initiate the process of synchronizing the dirty page to the storage node in the distributed storage system. After the dirty page is synchronized to the storage node in the distributed storage system, mcommit() returns success.
- the mmap management software on the client side obtains the dirty pages in the local cache and writes the dirty pages back to the storage nodes in the distributed storage system by calling the refresh change function msync().
- the CPU on the client side needs to send the write request to the DPU.
- the DPU-MMU in the DPU determines whether the local page table contains the physical address in the local cache corresponding to the virtual address of the data to be written according to the virtual address of the data to be written.
- the virtual address of the data to be written refers to the "virtual address in the address space of the target process". If the DPU-MMU determines that the page table in the DPU contains the physical address in the local cache of the DPU corresponding to the virtual address of the data to be written.
- the MMU can trigger the CPU in the DPU to write the data to be written into the cache page in the local cache of the DPU according to the physical address corresponding to the virtual address of the data to be written. If the DPU-MMU determines that the page table in the DPU does not contain the physical address in the local cache of the DPU corresponding to the virtual address of the data to be written. The DPU-MMU triggers the CPU inside the DPU to generate a Page Fault. In response to the Page Fault, the Page Fault Handler in the DPU obtains the target data block from the storage node of the distributed storage system and caches it in the cache page of the DPU.
- the CPU in the DPU establishes a mapping relationship between the virtual address of the data to be written and the cache page in the local cache of the DPU, and writes the data to be written into the local cache page according to the mapping relationship.
- the process in which the Page Fault Handler in the DPU obtains the target data block from the storage node of the distributed storage system in response to the Page Fault and caches it into the local cache page of the DPU can refer to the description of FIG. 6 in S306, which will not be repeated here.
- the CPU in the DPU After the CPU in the DPU writes the data that the target process needs to write to the cache page in the local cache in the DPU.
- the CPU in the DPU will mark the cache page where the data is written as a dirty page and add it to the dirty list.
- the mmap management software in the GPU will periodically write the page in the dirty list back to the distributed storage node, so that the data in the distributed storage node is consistent with the data cached in the client's memory.
- the mmap management software in the DPU obtains the dirty page in the local cache and calls mcommit() to initiate the process of synchronizing the dirty page to the storage node in the distributed storage system. After the dirty page is synchronized to the storage node in the distributed storage system, mcommit() returns success.
- the mmap management software in the DPU obtains the dirty page in the local cache and writes the dirty page back to the storage node in the distributed storage system by calling the refresh change function msync().
- the embodiment of the present application also provides a comparative diagram of the traditional file access path and the global mmap access path.
- the traditional file access path is long and needs to pass through VFS, the file system client, the file system server, and finally access PM, which has a large software stack overhead.
- Distributed mmap is used. After mapping the remote file, the DVA of the file is recorded locally (on the client side) (which can be recorded in the process page table). If the local cache misses, the remote DVA space is accessed through Page Fault.
- the NIC directly accesses the PM medium, bypassing the software stack overhead on the server side, and the end-to-end software stack latency is reduced from 150us to 20us.
- a global shared memory pool in the distributed storage system is constructed. Then, a global data block is constructed based on the global memory pool, and the global data block is mapped to the process address space of the client. Then, the client establishes a local cache for caching the global data block in the distributed system, and establishes a mapping from the process virtual address to the cache page through the local page table of the client. And in the distributed storage system, the files stored in the storage node are mmap mapped so that the client's application can directly access the data in the storage node through load/store.
- a global data block based on the global memory pool is constructed in the distributed storage system, so that multiple clients belonging to the same distributed storage system can mmap the same global data block, thereby realizing shared access to the global data block among various clients.
- the DVA of the file is recorded locally (which can be recorded in the process page table).
- the remote DVA space is accessed through Page Fault to save the latency overhead of the end-to-end software stack.
- the present application embodiment further provides a data processing device, see Figure 8.
- Figure 8 is a schematic diagram of the structure of a data processing device provided by the present application embodiment.
- the data processing device includes: an acquisition module 810, a processing module 820, and a storage module 830.
- the storage module 830 is used to store part of the data required during the operation of the target process, and the storage module 830 also stores a local page table, which can also be called a first address mapping relationship table.
- the local page table stores the mapping relationship between the DVA of the global data block in the distributed storage system and the virtual address in the target process, and the mapping relationship between the virtual address in the target process and the physical address of the local cache in the data processing device.
- the acquisition module 810 is used to acquire the virtual address of the target data in the target process during the target process, which may also be referred to as the first virtual address.
- the processing module 820 is used to query the local page table to determine whether the local cache physical address corresponding to the virtual address of the target data is stored in the local page table according to the obtained virtual address of the target data. When the processing module 820 determines that the local cache physical address corresponding to the virtual address of the target data is stored in the local page table, the processing module 820 obtains the physical address.
- the acquisition module 810 acquires the target data in the local cache according to the physical address acquired by the processing module 820 .
- the processing module 820 determines that the local page table stores the physical address of the local cache corresponding to the virtual address of the target data
- the processing module 820 queries the local page table according to the virtual address of the target data to obtain the DVA of the target data.
- the processing module 810 determines the DPA of the target data according to the DVA of the target data.
- the acquisition module acquires the target data from the distributed storage system according to the DPA of the target data obtained by the processing module.
- a computing device is also provided in an embodiment of the present application.
- the computing device includes at least a processor and a memory, and a program is stored in the memory.
- the processor executes the program, it can implement the units or modules of each step in the method shown in Figure 3.
- FIG9 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application.
- the computing device 900 includes at least one processor 910, a memory 920, and a communication interface 930.
- the processor 910, the memory 920, and the communication interface 930 are communicatively connected, and the communication connection can be achieved by wired means (such as a bus) or by wireless means.
- the communication interface 930 is used to receive data sent by other devices (such as the IR corresponding to the DUT); the memory 920 stores computer instructions, and the processor 910 executes the computer instructions to execute the method in the aforementioned method embodiment.
- the processor 910 may be a central processing unit CPU, and the processor 910 may also be other general-purpose processors, digital signal processors (digital signal processor, DSP), application specific integrated circuits (application specific integrated circuit, ASIC), field programmable gate arrays (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- the general-purpose processor may be a microprocessor or any conventional processor, etc.
- the memory 920 may include a read-only memory and a random access memory, and provides instructions and data to the processor 910.
- the memory 920 may also include a nonvolatile random access memory.
- the memory 920 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory.
- the non-volatile memory may be a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory may be a random access memory (RAM), which is used as an external cache.
- RAM random access memory
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- DDR SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link dynamic random access memory
- DR RAM direct rambus RAM
- computing device 900 can execute the method shown in Figure 3 in the embodiment of the present application.
- the detailed description of the implementation of the method is shown above, and for the sake of brevity, it will not be repeated here.
- An embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon.
- the computer program is executed by a processor, the above-mentioned method is implemented.
- An embodiment of the present application provides a chip, which includes at least one processor and an interface, wherein the at least one processor determines program instructions or data through the interface; the at least one processor is used to execute the program instructions to implement the method mentioned above.
- An embodiment of the present application provides a computer program or a computer program product, wherein the computer program or the computer program product comprises instructions, and when the instructions are executed, the computer is caused to execute the above-mentioned method.
- the method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions.
- the software instructions can be composed of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art.
- An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium.
- the storage medium can also be a component of the processor.
- the processor and the storage medium can be located in an ASIC.
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium.
- the computer instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.).
- the computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated.
- the available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive (SSD)), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (10)
- 一种数据访问方法,其特征在于,所述方法包括:在目标进程运行过程中,获取目标数据在所述目标进程中的第一虚拟地址;基于所述第一虚拟地址,查询第一地址映射关系表,确定本地缓存中是否存储有所述目标数据,所述第一地址映射关系表中包括:第一数据集合中的数据在进程中的虚拟地址和所述第一数据集合中的数据在本地缓存中的物理地址间的对应关系,其中,所述第一数据集合中的数据预先从分布式存储系统中获取得到;若本地缓存中存储有所述目标数据,基于所述第一虚拟地址,查询所述第一地址映射关系表,得到所述目标数据在本地缓存中的物理地址;根据所述目标数据在本地缓存中的物理地址,获取所述目标数据。
- 根据权利要求1所述的方法,其特征在于,所述第一地址映射关系表中还包括:第二数据集合中的数据在进程中的虚拟地址和所述第二数据集合中的数据在所述分布式存储系统中的虚拟地址间的对应关系,所述方法还包括:若本地缓中没有存储有所述目标数据,基于所述第一虚拟地址,查询所述第一地址映射关系表,得到所述目标数据在所述分布式存储系统中的第二虚拟地址;基于所述第二虚拟地址,查询第二地址映射关系表,得到所述目标数据在所述分布式存储系统中的物理地址;所述第二地址映射关系表中包括:在分布式存储系统中存储的第三数据集合中的数据的虚拟地址和所述第三数据集合中的数据在所述分布式存储系统中的物理地址间的对应关系;其中,所述第三数据集合中的数据包括:所述第一数据集合中的数据和所述第二数据集合中的数据;基于所述目标数据在所述分布式存储系统中的物理地址,从所述分布式存储系统中获取所述目标数据。
- 根据权利要求2所述的方法,其特征在于,在基于所述目标数据在所述分布式存储系统中的物理地址,从所述分布式存储系统中获取所述目标数据以后,所述方法还包括:将所述目标数据存储到本地缓存中;建立所述目标数据在所述目标进程中的第一虚拟地址和所述目标数据在本地缓存中的物理地址间的第一对应关系;用所述第一对应关系替换所述第一地址映射关系表中的第二对应关系,所述第二对应关系为所述目标数据在所述目标进程中的虚拟地址和所述目标数据在所述分布式存储系统中的虚拟地址间的对应关系。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标进程运行过程中,获取待写入数据在所述目标进程中的第三虚拟地址;基于所述第三虚拟地址,查询第一地址映射关系表,确定本地缓存中是否存储有与第三虚拟地址对应的数据;若所述本地缓存中存储有与所述第三虚拟地址对应的数据,将所述本地缓存中与所述第三虚拟地址对应的数据替换为所述待写入数据。
- 一种数据处理装置,其特征在于,包括:获取模块,用于在目标进程运行过程中,获取目标数据在所述目标进程中的第一虚拟地址;处理模块,用于根据所述第一虚拟地址,查询第一地址映射关系表,确定本地缓存中是否存储有所述目标数据,所述第一地址映射关系表中包括:第一数据集合中的数据在进程中的虚拟地址和所述第一数据集合中的数据在本地缓存中的物理地址间的对应关系,其中,所述第一数据集合中的数据预先从分布式存储系统中获取得到;若本地缓存中存储有所述目标数据,基于所述第一虚拟地址,查询所述第一地址映射关系表,得到所述目标数据在本地缓存中的物理地址;所述获取模块,还用于根据所述目标数据在本地缓存中的物理地址,获取所述目标数据。
- 根据权利要求5所述的装置,其特征在于,所述第一地址映射关系表中还包括:第二数据 集合中的数据在进程中的虚拟地址和所述第二数据集合中的数据在所述分布式存储系统中的虚拟地址间的对应关系,所述处理模块还用于:若本地缓中没有存储有所述目标数据,基于所述第一虚拟地址,查询所述第一地址映射关系表,得到所述目标数据在所述分布式存储系统中的第二虚拟地址;根据所述第二虚拟地址,查询第二地址映射关系表,得到所述目标数据在所述分布式存储系统中的物理地址;所述第二地址映射关系表中包括:在分布式存储系统中存储的第三数据集合中的数据的虚拟地址和所述第三数据集合中的数据在所述分布式存储系统中的物理地址间的对应关系;其中,所述第三数据集合中的数据包括:所述第一数据集合中的数据和所述第二数据集合中的数据;所述获取模块还用于,根据所述目标数据在所述分布式存储系统中的物理地址,从所述分布式存储系统中获取所述目标数据。
- 根据权利要求6所述的装置,其特征在于,所述处理模块还用于:将所述目标数据存储到本地缓存中;建立所述目标数据在所述目标进程中的第一虚拟地址和所述目标数据在本地缓存中的物理地址间的第一对应关系;用所述第一对应关系替换所述第一地址映射关系表中的第二对应关系,所述第二对应关系为所述目标数据在所述目标进程中的虚拟地址和所述目标数据在所述分布式存储系统中的虚拟地址间的对应关系。
- 根据权利要求5所述的装置,其特征在于,所述获取模块还用于,在目标进程运行过程中,获取待写入数据在所述目标进程中的第三虚拟地址;所述处理模块还用于,根据所述第三虚拟地址,查询第一地址映射关系表,确定本地缓存中是否存储有与第三虚拟地址对应的数据;若所述本地缓存中存储有与所述第三虚拟地址对应的数据,将所述本地缓存中与所述第三虚拟地址对应的数据替换为所述待写入数据。
- 一种计算机可读介质,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-4任一所述的方法。
- 一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-4任一所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23869745.2A EP4579447A4 (en) | 2022-09-30 | 2023-06-16 | METHOD AND APPARATUS FOR ACCESSING DATA |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211213882.0A CN117851281A (zh) | 2022-09-30 | 2022-09-30 | 一种数据的访问方法及装置 |
| CN202211213882.0 | 2022-09-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024066496A1 true WO2024066496A1 (zh) | 2024-04-04 |
Family
ID=90475894
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/100809 Ceased WO2024066496A1 (zh) | 2022-09-30 | 2023-06-16 | 一种数据的访问方法及装置 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4579447A4 (zh) |
| CN (1) | CN117851281A (zh) |
| WO (1) | WO2024066496A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119829620A (zh) * | 2024-12-31 | 2025-04-15 | 深圳计算科学研究院 | 一种数据缓冲区的流量控制方法、装置、设备及介质 |
| CN121166043A (zh) * | 2025-11-24 | 2025-12-19 | 阿里云计算有限公司 | 数据处理方法、电子设备、系统、存储介质和程序产品 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119718216B (zh) * | 2025-02-27 | 2025-05-06 | 苏州元脑智能科技有限公司 | 元数据的落盘方法及装置 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180232320A1 (en) * | 2016-07-29 | 2018-08-16 | Advanced Micro Devices, Inc. | Controlling Access by IO Devices to Pages in a Memory in a Computing Device |
| CN109032963A (zh) * | 2017-06-12 | 2018-12-18 | Arm有限公司 | 访问控制 |
| CN113986137A (zh) * | 2021-10-28 | 2022-01-28 | 英韧科技(上海)有限公司 | 存储装置和存储系统 |
| CN114968539A (zh) * | 2021-02-22 | 2022-08-30 | 华为技术有限公司 | 数据处理方法、计算机系统和中间设备 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8499121B2 (en) * | 2011-08-31 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to access data in non-volatile memory |
| US9507729B2 (en) * | 2013-10-01 | 2016-11-29 | Synopsys, Inc. | Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor |
-
2022
- 2022-09-30 CN CN202211213882.0A patent/CN117851281A/zh active Pending
-
2023
- 2023-06-16 WO PCT/CN2023/100809 patent/WO2024066496A1/zh not_active Ceased
- 2023-06-16 EP EP23869745.2A patent/EP4579447A4/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180232320A1 (en) * | 2016-07-29 | 2018-08-16 | Advanced Micro Devices, Inc. | Controlling Access by IO Devices to Pages in a Memory in a Computing Device |
| CN109032963A (zh) * | 2017-06-12 | 2018-12-18 | Arm有限公司 | 访问控制 |
| CN114968539A (zh) * | 2021-02-22 | 2022-08-30 | 华为技术有限公司 | 数据处理方法、计算机系统和中间设备 |
| CN113986137A (zh) * | 2021-10-28 | 2022-01-28 | 英韧科技(上海)有限公司 | 存储装置和存储系统 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4579447A4 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119829620A (zh) * | 2024-12-31 | 2025-04-15 | 深圳计算科学研究院 | 一种数据缓冲区的流量控制方法、装置、设备及介质 |
| CN121166043A (zh) * | 2025-11-24 | 2025-12-19 | 阿里云计算有限公司 | 数据处理方法、电子设备、系统、存储介质和程序产品 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117851281A (zh) | 2024-04-09 |
| EP4579447A4 (en) | 2025-09-10 |
| EP4579447A1 (en) | 2025-07-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4579447A1 (en) | Data access method and apparatus | |
| US7206915B2 (en) | Virtual space manager for computer having a physical address extension feature | |
| WO2024230779A1 (zh) | 一种文件访问方法、系统、电子设备及机器可读存储介质 | |
| US20050198441A1 (en) | Multiprocessor system | |
| WO2021008425A1 (zh) | 一种系统启动方法以及相关设备 | |
| CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
| WO2024260039A1 (zh) | 数据访问方法及装置、非易失性可读存储介质及电子装置 | |
| CN109901909B (zh) | 用于虚拟化系统的方法及虚拟化系统 | |
| CN116414563A (zh) | 内存控制装置、缓存一致性系统和缓存一致性方法 | |
| CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
| CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
| CN116684385A (zh) | 一种基于eBPF在内核层面的DNS缓存方法 | |
| CN103297490A (zh) | 信息处理装置、分布式处理系统和分布式处理方法 | |
| WO2022262623A1 (zh) | 一种数据交换方法及装置 | |
| CN117806526A (zh) | 数据迁移方法、装置、芯片以及计算机可读存储介质 | |
| CN111273860A (zh) | 一种基于网络和页粒度管理的分布式内存管理方法 | |
| CN117312004A (zh) | 一种数据库的访问方法及装置 | |
| CN110018879A (zh) | 应用于分布式系统的延迟加载方法及装置 | |
| US20230088344A1 (en) | Storage medium management method and apparatus, device, and computer-readable storage medium | |
| CN113806389A (zh) | 一种数据处理方法、装置、计算设备与存储介质 | |
| WO2023217255A1 (zh) | 数据处理方法、装置、处理器及计算机系统 | |
| CN115904625A (zh) | 跨节点多虚拟机内存管理方法、系统、终端及介质 | |
| CN116866429A (zh) | 一种数据访问方法及相关装置 | |
| CN107402818A (zh) | 一种客户端读写缓存分离的方法及系统 | |
| WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23869745 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023869745 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2023869745 Country of ref document: EP Effective date: 20250325 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023869745 Country of ref document: EP |