IP Library › Granted Patent US 11,397,534
Granted Patent B2
US 11,397,534 · App. 16/942,398 · Granted Jul 26, 2022

Data management across a persistent memory tier and a file system tier

Inventors: Ananthan Subramanian (San Ramon, CA); Matthew Fontaine Curtis-Maury (Apex, NC); Ram Kesavan (Los Altos, CA); Vinay Devadas (Apex, NC)
Assignee: NetApp Inc.
G06F3/064G06F3/0619G06F3/0631G06F3/0665G06F3/0679G06F9/30189G06F9/4498G06F11/0772
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 11,397,534
App. No.
16/942,398
Granted
Jul 26, 2022
Kind
B2
Abstract

Techniques are provided for data management across a persistent memory tier and a file system tier. A block within a persistent memory tier of a node is determined to have up-to-date data compared to a corresponding block within a file system tier of the node. The corresponding block may be marked as a dirty block within the file system tier. Location information of a location of the block within the persistent memory tier is encoded into a container associated with the corresponding block. In response to receiving a read operation, the location information is obtained from the container. The up-to-date data is retrieved from the block within the persistent memory tier using the location information for processing the read operation.

Claims (41)

1. A method comprising:

determining that a block within a persistent memory tier of a node has up-to-date data compared to a corresponding block within a file system tier of the node;

marking the corresponding block as a dirty block within the file system tier;

encoding location information of a location of the block within the persistent memory tier into a container associated with the corresponding block; and

in response to receiving a read operation directed to the corresponding block, implementing the read operation directed to the corresponding block within the file system tier as part of a cross-tier data management operation that targets data stored across the file system tier and the persistent memory tier, wherein the implementing comprises:

obtaining the location information from the container; and

retrieving the up-to-date data from block within the persistent memory tier using the location information for processing the read operation.

2. The method of claim 1 , comprising:

storing a flag within the file system tier to indicate that the up-to-date data of the corresponding block is stored within the block of the persistent memory tier.

3. The method of claim 1 , comprising:

during a consistency point operation to store dirty data of the file system tier to storage, allocating a virtual volume block number for the corresponding block based upon a flag indicating that the up-to-date data of the corresponding block is stored within the block of the persistent memory tier.

4. The method of claim 1 , comprising:

during a consistency point operation to store dirty data of the file system tier to storage, refraining from allocating a physical block number for the corresponding block based upon a flag indicating that the up-to-date data of the corresponding block is stored within the block of the persistent memory tier.

5. The method of claim 1 , comprising:

storing a physical block number allocation within a user indirect associated with the corresponding block.

6. The method of claim 1 , comprising:

in response to identifying a threshold number of blocks, within the persistent memory tier, comprising more up-to-date data than corresponding blocks within the file system tier, generating a batch of messages to transmit from the persistent memory tier to the file system tier for notifying the file system tier of the blocks, within the persistent memory tier, comprising the more up-to-date data.

7. The method of claim 1 , comprising:

maintaining a state machine for the block to track one or more states of the block, wherein the state machine specifies a current state of the block as being a dirty state based upon the block comprising the up-to-date data that is different than the corresponding block within the file system tier.

8. The method of claim 1 , comprising:

generating a batch of messages to transmit from the persistent memory tier to the file system tier for notifying the file system tier of blocks, within the persistent memory tier, comprising more up-to-date data than corresponding blocks within the file system tier.

9. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

replay messages within a log to a file system tier of a node in response to the node recovering from a failure, wherein a message within the log indicates that a block within a persistent memory tier of the node has up-to-date data compared to a corresponding block within the file system tier of the node;

in response to the messages being replayed, implement an asynchronous operation to walk a persistent memory file system of the persistent memory tier to identify a set of blocks within the persistent memory tier comprising more up-to-date data compared to corresponding blocks within the file system tier; and

send a new set of messages to the file system tier to trigger the file system tier to encode locations of the set of blocks into containers associated with corresponding blocks within the file system tier and mark the corresponding blocks as dirty blocks within the file system tier.

10. The non-transitory machine readable medium of claim 9 , wherein the set of blocks correspond to a set of messages provided to the file system tier but not successfully completed and logged within the log before the failure.

11. The non-transitory machine readable medium of claim 9 , wherein the asynchronous operation is executed by the persistent memory tier in parallel with the node processing incoming I/O operations.

12. The non-transitory machine readable medium of claim 9 , wherein the persistent memory tier transmits the message to the file system tier to trigger the file system tier to mark the corresponding block as a dirty block.

13. The non-transitory machine readable medium of claim 9 , wherein the persistent memory tier transmits the message to the file system tier to trigger the file system tier to encode location information of a location of the block within the persistent memory tier into a container associated with the corresponding block.

14. The non-transitory machine readable medium of claim 9 , wherein the file system tier logs the message into the log in response to the file system tier marking the corresponding block as a dirty block and encoding location information of a location of the block within the persistent memory tier into a container associated with the corresponding block.

15. The non-transitory machine readable medium of claim 9 , wherein the asynchronous operation evaluates state machines of blocks within the persistent memory tier to identify the set of blocks as having a dirty state.

16. A computing device comprising:

a memory comprising machine executable code for performing a method; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

determine that a failure of a node affected a log within which messages are logged by a file system tier of the node, wherein a message within the log indicates that a block within a persistent memory tier of the node has up-to-date data compared to a corresponding block within the file system tier of the node;

implement an asynchronous operation to walk a persistent memory file system of the persistent memory tier to identify a set of blocks within the persistent memory tier comprising more up-to-date data compared to corresponding blocks within the file system tier; and

send a set of messages to the file system tier to trigger the file system tier to encode location information of locations of the set of blocks into containers associated with corresponding blocks within the file system tier and mark the corresponding blocks as dirty blocks within the file system tier.

17. The computing device of claim 16 , wherein the set of messages comprises a first message for the block.

18. The computing device of claim 16 , wherein the set of blocks correspond to blocks not included within snapshots of a persistent memory file system of the persistent memory tier.

19. The computing device of claim 16 , wherein the file system tier logs the message into the log in response to the file system tier marking the corresponding block as a dirty block and encoding location information of a location of the block within the persistent memory tier into a container associated with the corresponding block.

20. The computing device of claim 16 , wherein the asynchronous operation evaluates state machines of blocks within the persistent memory tier to identify the set of blocks as having a dirty state.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2020
From: SUBRAMANIAN, ANANTHAN; CURTIS-MAURY, MATTHEW FONTAINE; KESAVAN, RAM; DEVADAS, VINAY
To: NETAPP INC.
Reel/Frame 053345/0962 →
Continuity (1)
Related Publication 20220035524A1 · Feb 3, 2022
Cited By (1)
US 12,366,982