IP Library Granted Patent US 9,851,919
Granted Patent B2
US 9,851,919 · App. 14/587,075 · Granted Dec 26, 2017

Method for data placement in a memory based file system

Inventors: Amit Golander (Tel-Aviv, IL); Boaz Harrosh (Tel-Aviv, IL)
Assignee: NETAPP, INC.
G06F3/065G06F3/061G06F3/0685
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 9,851,919
App. No.
14/587,075
Granted
Dec 26, 2017
Kind
B2
Abstract

Methods for data placement in a memory-based file system are described, including copying a user data unit from a second storage type device to a first storage type device based on an access request to the file system, the first storage type device being a faster access device than the second storage type device, referencing the user data unit in the first storage type device by a byte addressable memory pointer, and using the byte addressable memory pointer to copy the user data unit from the first storage type device to the second storage type device based on data access pattern.

Claims (55)

1. A method for data placement in a memory-based file system, the method comprising:

copying a user data unit from a second storage type device to a first storage type device based on an access request to the file system, the first storage type device comprising a persistent memory and being a faster access device than the second storage type device;

maintaining the persistent memory into a list of pages and managing the list based on a repeated data access pattern;

referencing the user data unit in the first storage type device by a byte addressable memory pointer;

using the byte addressable memory pointer to copy the user data unit from the first storage type device to the second storage type device based on data access pattern; and

maintaining the persistent memory into a first list of pages and a second list of pages, the first list to receive an unclassified page at the head of the first list and the second list to receive, at the head of the second list, a page moved from the tail of the first list;

wherein the access request to the file system comprises an mmap system call thereby providing a page having a transparent flag and providing protection against direct access to the page having the transparent flag prior to the page being received at the head of the second list.

2. The method of claim 1 , further comprising: in response to a second access request, providing the user data unit from the first storage type device and not providing the user data unit from the second storage type device.

3. The method of claim 1 , wherein the data access pattern is a repeated access pattern.

4. The method of claim 1 , further comprising:

maintaining the persistent memory into a plurality of lists each list to receive an unclassified page at the head of the list; and

assigning the unclassified page unit to a list from the plurality of lists by applying a function on an address of the unclassified page.

5. The method of claim 4 , wherein the function comprises a modulo-based function.

6. The method of claim 1 , further comprising: moving the page from the second list to the head of the first list based on a repeated access pattern.

7. The method of claim 1 , further comprising:

at the tail of the first list, asserting a dirty flag associated with a page; and

based on the assertion of the dirty flag, copying a user data unit associated with the page from the first storage type device to the second storage type device while the page is in the second list.

8. The method of claim 7 , further comprising:

determining that the user data unit was fully copied to the second storage type device; and

nullifying the user data unit from the first storage type device, thereby providing a clean page.

9. The method of claim 8 , further comprising: moving the clean page to the tail of the second list.

10. A non-transitory, machine readable medium having stored thereon instructions comprising machine executable code which when executed by a machine, causes the machine to:

copy a user data unit from a second storage type device to a first storage type device based on an access request to a memory-based file system, the first storage type device comprising a persistent memory and being a faster access device than the second storage type device;

maintain the persistent memory into a list of pages and managing the list based on a repeated data access pattern;

reference the user data unit in the first storage type device by a byte addressable memory pointer;

use the byte addressable memory pointer to copy the user data unit from the first storage type device to the second storage type device based on data access pattern; and

maintain the persistent memory into a first list of pages and a second list of pages, the first list to receive an unclassified page at the head of the first list and the second list to receive, at the head of the second list, a page moved from the tail of the first list;

wherein the access request to the file system comprises an mmap system call thereby providing a page having a transparent flag and providing protection against direct access to the page having the transparent flag prior to the page being received at the head of the second list.

11. The non-transitory, machine readable medium of claim 10 , the machine executable code further causing the machine to:

in response to a second access request, provide the user data unit from the first storage type device and not provide the user data unit from the second storage type device.

12. The non-transitory, machine readable medium of claim 10 , wherein the data access pattern is a repeated access pattern.

13. The non-transitory, machine readable medium of claim 10 , the machine executable code further causing the machine to:

maintain the persistent memory into a plurality of lists each list to receive an unclassified page at the head of the list; and

assign the unclassified page unit to a list from the plurality of lists by applying a function on an address of the unclassified page.

14. The non-transitory, machine readable medium of claim 10 , the machine executable code further causing the machine to:

move the page from the second list to the head of the first list based on a repeated access pattern.

15. The non-transitory, machine readable medium of claim 10 , the machine executable code further causing the machine to:

at the tail of the first list, assert a dirty flag associated with a page; and

based on the assertion of the dirty flag, copy a user data unit associated with the page from the first storage type device to the second storage type device while the page is in the second list.

16. 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:

copy a user data unit from a second storage type device to a first storage type device based on an access request to a file system, the first storage type device comprising a persistent memory and being a faster access device than the second storage type device;

maintain the persistent memory into a list of pages and managing the list based on a repeated data access pattern;

reference the user data unit in the first storage type device by a byte addressable memory pointer;

use the byte addressable memory pointer to copy the user data unit from the first storage type device to the second storage type device based on data access pattern; and

maintain the persistent memory into a first list of pages and a second list of pages, the first list to receive an unclassified page at the head of the first list and the second list to receive, at the head of the second list, a page moved from the tail of the first list;

wherein the access request to the file system comprises an mmap system call thereby providing a page having a transparent flag and providing protection against direct access to the page having the transparent flag prior to the page being received at the head of the second list.

17. The system of claim 16 , the machine executable code further caused to:

in response to a second access request, provide the user data unit from the first storage type device and not provide the user data unit from the second storage type device.

18. The system of claim 16 , wherein the data access pattern is a repeated access pattern.

19. The system of claim 16 , the machine executable code further caused to:

maintain the persistent memory into a plurality of lists each list to receive an unclassified page at the head of the list; and

assign the unclassified page unit to a list from the plurality of lists by applying a function on an address of the unclassified page.

20. The system of claim 16 , the machine executable code further caused to:

move the page from the second list to the head of the first list based on a repeated access pattern.

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 Feb 11, 2015
From: GOLANDER, AMIT; HARROSH, BOAZ
To: PLEXISTOR LTD.
Reel/Frame 034934/0433 →
Continuity (1)
Related Publication 20160188217A1 · Jun 30, 2016