Direct access to de-duplicated data units in memory-based file systems
AssigneeNetApp, Inc.
InventorsAmit Golander, Yigal Korman, Boaz Harrosh
Life of this patent
Estimating the term…
Abstract
Method, system and product for direct access to de-duplicated data units in memory-based file systems. The method comprising: updating a page entry in a page table of a process to include a direct access pointer to a de-duplicated data unit retained by the memory-based file system, wherein the page entry is set to be write protected; detecting a page fault occurring due to the process performing a store instruction to the de-duplicated data unit; and in response to said detecting: allocating a new data unit; copying content of the de-duplicated data unit to the new data unit; and replacing the direct access pointer to the de-duplicated data unit with a direct access pointer to the new data unit.
Claims20
A method comprising:
- mapping a data unit of a file to a memory address of a process at a memory for direct access to the data unit by the process, bypassing use of a page cache of a memory-based file system retained in the memory with the data unit;
- updating a page table by the file system, in response to a load instruction to read the data unit and a first page fault triggered by the load instruction, with a page entry for the data unit detected as a de-duplicated data unit, the page entry set as write protected, regardless of a permission type for the process, and the page entry having a pointer to directly read the data unit by the process for any additional load instructions transparent to the file system bypassing the page cache;
- detecting a second page fault due to a first store instruction for the de-duplicated data unit by the process;
- and
- setting the page entry as write enabled for performing a second store instruction by the process using a new pointer to a new data unit with copied content of the de-duplicated data unit, bypassing the page cache.
A non-transitory, machine readable medium having stored thereon instructions comprising machine executable code which when executed by a machine, causes the machine to:
- map a data unit of a file to a memory address of a process at a memory for direct access to the data unit by the process, bypassing use of a page cache of a memory-based file system retained in the memory with the data unit;
- update a page table by the file system, in response to a load instruction to read the data unit and a first page fault triggered by the load instruction, with a page entry for the data unit detected as a de-duplicated data unit, the page entry set as write protected, regardless of a permission type for the process, and the page entry having a pointer to directly read the data unit by the process for any additional load instructions transparent to the file system bypassing the page cache;
- detect a second page fault due to a first store instruction for the de-duplicated data unit by the process;
- and
- set the page entry as write enabled for performing a second store instruction by the process using a new pointer to a new data unit with copied content of the de-duplicated data unit, bypassing the page cache.
A system, comprising:
- a memory containing machine readable medium comprising machine executable code having stored thereon instructions;
- and a processor coupled to the memory, the processor configured to execute the machine executable code to:
- map a data unit of a file to a memory address of a process at a memory for direct access to the data unit by the process, bypassing use of a page cache of a memory-based file system retained in the memory with the data unit;
- update a page table by the file system, in response to a load instruction to read the data unit and a first page fault triggered by the load instruction, with a page entry for the data unit detected as a de-duplicated data unit, the page entry set as write protected, regardless of a permission type for the process, and the page entry having a pointer to directly read the data unit by the process for any additional load instructions transparent to the file system, bypassing the page cache;
- detect a second page fault due to a first store instruction for the de-duplicated data unit by the process;
- and
- set the page entry as write enabled for performing a second store instruction by the process using a new pointer to a new data unit with copied content of the de-duplicated data unit, bypassing the page cache.
Dependencies are inferred from the claim text.