IP Library › Granted Patent US 11,861,199
Granted Patent B2
US 11,861,199 · App. 17/871,951 · Granted Jan 2, 2024

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,861,199
App. No.
17/871,951
Granted
Jan 2, 2024
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 (49)

1. A method comprising:

storing, by a persistent memory file system managed by a persistent memory tier, data within a plurality of pages of persistent memory according to byte-addressable access;

transmitting, by the persistent memory file system, and indication to a file system tier of up-to-date data stored by the persistent memory tier;

performing, by the file system tier, consistency point operation to store dirty data of the file system tier to a storage device, wherein virtual volume block numbers and not physical block numbers are allocated for the blocks by the file system tier during the consistency point operation based upon a determination that up-to-date data of the blocks is stored by the persistent memory tier.

2. The method of claim 1 , comprising:

maintaining a state machine for a 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 persistent memory tier comprising up-to-date data for the block, wherein the up-to-date data is different than a corresponding block within the file system tier.

3. The method of claim 1 , comprising:

transmitting, by the persistent memory tier, a message to the file system tier to trigger the file system tier to mark a block as a dirty block based upon the persistent memory tier comprising up-to-date data for the block.

4. The method of claim 1 , comprising:

transmitting, by the persistent memory tier, a message to the file system tier to trigger the file system tier to encode location information of a location of a block within the persistent memory tier into a container associated with a corresponding block within the file system tier.

5. The method of claim 1 , comprising:

storing a physical block number allocation within a user indirect associated with a block having an indicator that the persistent memory tier stores up-to-date data of the block.

6. The method of claim 1 , comprising:

stamping a physical block number within a user indirect associated with a dirty block within the file system tier to indicate that up-to-date data of the dirty block is stored in the persistent memory tier; and

utilizing the physical block number to perform virtual layer translation for the dirty block.

7. The method of claim 1 , comprising:

determining that a block has an indicator that the persistent memory tier stores up-to-date data of the block;

generating a physical block number allocation for the block as an indicator that a location of data of the block is not stored by the file system tier.

8. The method of claim 1 , comprising:

determining that a block has an indicator that the persistent memory tier stores up-to-date data of the block;

generating a physical block number allocation for the block as an indicator that a location of data of the block is stored in the persistent memory tier and can be obtained using a container within which location information of the data within the persistent memory tier is encoded.

9. The method of claim 1 , comprising:

encoding a persistent memory tier block location for a dirty block, wherein the persistent memory tier block location is a location of a corresponding block comprising up-to-date data within the persistent memory tier.

10. The method of claim 1 , wherein the indication is an indicator to the consistency point operation that there is no data associated with dirty blocks to store to physical storage because the data is stored within the persistent memory tier.

11. A system comprising:

a persistent memory tier configured to manage a persistent memory file system that stores data within a plurality of pages of persistent memory according to byte-addressable access, wherein the persistent memory tier provides an indication to a file system tier of up-to-date data stored by the persistent memory tier; and

the file system tier configured to store data within blocks of a storage device according to block-addressable access, wherein the file system tier implements a consistency point operation to store dirty data of the file system tier to the storage device, wherein virtual volume block numbers and not physical block numbers are allocated for the blocks by the file system tier during the consistency point operation based upon a determination that up-to-date data of the blocks is stored by the persistent memory tier.

12. The system of claim 11 , wherein the file system tier:

stores a physical block number allocation within a user indirect associated with a block having an indicator that the persistent memory tier stores up-to-date data of the block.

13. The system of claim 11 , wherein the file system tier:

stamps a physical block number within a user indirect associated with a dirty block within the file system tier to indicate that up-to-date data of the dirty block is stored in the persistent memory tier; and

utilizes the physical block number to perform virtual layer translation for the dirty block.

14. The system of claim 11 , wherein the file system tier:

determines that a block has an indicator that the persistent memory tier stores up-to-date data of the block;

generates a physical block number allocation for the block as an indicator that a location of data of the block is not stored by the file system tier.

15. The system of claim 11 , wherein the file system tier:

determines that a block has an indicator that the persistent memory tier stores up-to-date data of the block;

generates a physical block number allocation for the block as an indicator that a location of data of the block is stored in the persistent memory tier and can be obtained using a container within which location information of the data within the persistent memory tier is encoded.

16. The system of claim 11 , wherein the file system tier:

encodes a persistent memory tier block location for a dirty block, wherein the persistent memory tier block location is a location of a corresponding block comprising up-to-date data within the persistent memory tier.

17. The system of claim 11 , wherein the indication is an indicator to the consistency point operation that there is no data associated with dirty blocks to store to physical storage because the data is stored within the persistent memory tier.

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

store, by a persistent memory file system managed by a persistent memory tier, data within a plurality of pages of persistent memory according to byte-addressable access;

transmit, by the persistent memory file system, and indication to a file system tier of up-to-date data stored by the persistent memory tier;

perform, by the file system tier, consistency point operation to store dirty data of the file system tier to a storage device, wherein virtual volume block numbers and not physical block numbers are allocated for the blocks by the file system tier during the consistency point operation based upon a determination that up-to-date data of the blocks is stored by the persistent memory tier.

19. The non-transitory machine readable medium of claim 18 , wherein the instructions cause the machine to:

maintain a state machine for a 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 persistent memory tier comprising up-to-date data for the block, wherein the up-to-date data is different than a corresponding block within the file system tier.

20. The non-transitory machine readable medium of claim 18 , wherein the instructions cause the machine to:

transmit, by the persistent memory tier, a message to the file system tier to trigger the file system tier to mark a block as a dirty block based upon the persistent memory tier comprising up-to-date data for the block.

Continuity (2)
Continuation 16942398 · Jul 29, 2020
Related Publication 20220357848A1 · Nov 10, 2022
Cited By (1)
US 12,366,982