IP Library Granted Patent US 10,254,990
Granted Patent B2
US 10,254,990 · App. 15/154,605 · Granted Apr 9, 2019

Direct access to de-duplicated data units in memory-based file systems

Inventors: Amit Golander (Tel Aviv, IL); Yigal Korman (Hertzliya, IL); Boaz Harrosh (Hertzliya, IL)
Assignee: NETAPP, INC.
G06F3/0641G06F3/065G06F3/0608G06F3/068G06F3/0619G06F12/0292G06F12/063G06F12/1009G06F12/1475G06F12/0866G06F2212/1032G06F2212/1052
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,254,990
App. No.
15/154,605
Granted
Apr 9, 2019
Kind
B2
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.

Claims (33)

1. 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.

2. The method of claim 1 , wherein the memory for retaining the file system and the data unit is a persistent memory.

3. The method of claim 1 , wherein the page table is updated when the load instruction is issued for a first time for the de-duplicated unit.

4. The method of claim 1 , wherein setting the page entry as write enabled is performed in response to detecting that the data unit is the de-duplicated data unit.

5. The method of claim 1 , wherein the de-duplicated data unit is a zeros data unit.

6. The method of claim 1 , wherein setting the page entry enables additional load instructions by the process, bypassing the page cache.

7. The method of claim 1 , wherein updating the page table is performed in response to a memory mapping instruction for mapping the data unit.

8. 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.

9. The non-transitory storage medium of claim 8 , wherein the memory for retaining the file system and the data unit is a persistent memory.

10. The non-transitory storage medium of claim 8 , wherein the page table is updated when the load instruction is issued for a first time for the de-duplicated unit.

11. The non-transitory storage medium of claim 8 , wherein setting the page entry as write enabled is performed in response to detecting that the data unit is the de-duplicated data unit.

12. The non-transitory storage medium of claim 8 , wherein the de-duplicated data unit is a zeros data unit.

13. The non-transitory storage medium of claim 8 , wherein setting the page entry enables additional load instructions by the process, bypassing the page cache.

14. The non-transitory storage medium of claim 8 , wherein updating the page table is performed in response to a memory mapping instruction for mapping the data unit.

15. 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.

16. The system of claim 15 , wherein the memory for retaining the file system and the data unit is a persistent memory.

17. The system of claim 15 , wherein the page table is updated when the load instruction is issued for a first time for the de-duplicated unit.

18. The system of claim 15 , wherein setting the page entry as write enabled is performed in response to detecting that the data unit is the de-duplicated data unit.

19. The system of claim 15 , wherein the de-duplicated data unit is a zeros data unit.

20. The system of claim 15 , wherein setting the page entry enables additional load instructions by the process, bypassing the page cache.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2017
From: PLEXISTOR LTD.
To: NETAPP, INC.
Reel/Frame 043375/0358 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: GOLANDER, AMIT; KORMAN, YIGAL; HARROSH, BOAZ
To: PLEXISTOR, LTD.
Reel/Frame 038593/0625 →
Continuity (2)
Provisional Application 62263936 · Dec 7, 2015
Related Publication 20170160979A1 · Jun 8, 2017