Distributing metadata across multiple different disruption regions within an asymmetric memory system
First Claim
1. A method of distributing metadata that corresponds to application data for a file system across multiple different physical disruption regions of asymmetric memory within a module of main memory of a computer system such that metadata is written in the same physical disruption region of the asymmetric memory as the application data to which the metadata corresponds, where individual physical disruption regions of the asymmetric memory include physical blocks and are configured such that writing to a physical disruption region of the asymmetric memory affects the availability of other physical blocks within the same physical disruption region of the asymmetric memory, the method comprising:
- performing a first block write operation that writes a first block of application data to a first physical disruption region of the asymmetric memory within the module of main memory;
during the first block write operation in which physical blocks within the first physical disruption region are unavailable, enabling random access read operations to a second physical disruption region of the asymmetric memory within the module of main memory that is different than the first physical disruption region of the asymmetric memory within the module of main memory;
performing a second block write operation that writes a second block of application data that is different than the first block of application data to the second physical disruption region of the asymmetric memory within the module of main memory, the first and second blocks of application data corresponding to first and second logical blocks of the file system respectively;
generating a first block of metadata that that maps logic blocks utilized by the file system to physical blocks of the first physical disruption region to which the first block of application data has been written and generating a second block of metadata that that maps logic blocks utilized by the file system to physical blocks of the second physical disruption region to which the second block of application data has been written;
writing the first block of metadata to the first physical disruption region of the asymmetric memory as part of the first block write operation and writing the second block of metadata to the second physical disruption region of the asymmetric memory as part of the second block write operation such that the first and second blocks of metadata are written to the same physical disruption regions of the asymmetric memory as the blocks of application data to which they correspond, the first block of metadata and the first block of application data are written to different physical blocks in an interleaved manner such that the first block of metadata occupies both the first physical block and the last physical block within the first physical disruption region, the second block of metadata and the second block of application data are written to different physical blocks in an interleaved manner such that the second block of metadata occupies both the first physical block and the last physical block within the second physical disruption region;
during the second block write operation in which physical blocks within the second physical disruption region are unavailable, enabling random access read operations to the first physical disruption region of the asymmetric memory within the module of main memory such that data from the first block of application data and the first block of metadata is available for random access reading while the second block write operation is being performed;
receiving an instruction to update the first logical block of the file system with a third block of application data while the first physical disruption region is under random access read operations, the third block of application data being different than the first block of application data and the second block of application data;
based on the instruction to update the first logical block of the file system with the third block of application data, determining to write the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory;
based on the determination to write the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory, performing a third block write operation that writes the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory such that the third block write operation commences while the data from the first block of application data and the first block of metadata from different physical blocks within the first physical disruption region of the asymmetric memory is available for random access reading;
generating a third block of metadata that corresponds to the third block of application data, that identifies the third block of application data-written to physical blocks of the second physical disruption region-as corresponding to the first logical block of the file system, and that indicates the third block of application data as being valid;
writing the third block of metadata to physical blocks within the second physicaldisruption region of the asymmetric memory as part of the third block write operation such that the third block of metadata is written to the same physical disruption region of the asymmetric memory as the third block of application data to which it corresponds, the third block of metadata and the third block of application data are written to different physical blocks in an interleaved manner such that the third block of metadata occupies both the second physical block and the second-to-last physical block within the second physical disruption region; and
updating the first block of metadata by updating the first physical block within the first physical disruption region to which the first block of metadata has been written to indicate the first block of application data as being invalid.
7 Assignments
0 Petitions
Accused Products
Abstract
Metadata that corresponds to application data is distributed across different disruption regions of an asymmetric memory component such that metadata is written in the same disruption region as the application data to which it corresponds. A first block of application data is written to a first disruption region and a second block of application data is written to a second disruption region. A first block of metadata corresponding to the first block of application data and a second block of metadata corresponding to the second block of application data both are generated. The first block of metadata is written to the first disruption region and the second block of metadata is written to the second disruption region such that the first and second blocks of metadata are written to the same disruption regions as the blocks of application data to which they correspond.
30 Citations
26 Claims
-
1. A method of distributing metadata that corresponds to application data for a file system across multiple different physical disruption regions of asymmetric memory within a module of main memory of a computer system such that metadata is written in the same physical disruption region of the asymmetric memory as the application data to which the metadata corresponds, where individual physical disruption regions of the asymmetric memory include physical blocks and are configured such that writing to a physical disruption region of the asymmetric memory affects the availability of other physical blocks within the same physical disruption region of the asymmetric memory, the method comprising:
-
performing a first block write operation that writes a first block of application data to a first physical disruption region of the asymmetric memory within the module of main memory; during the first block write operation in which physical blocks within the first physical disruption region are unavailable, enabling random access read operations to a second physical disruption region of the asymmetric memory within the module of main memory that is different than the first physical disruption region of the asymmetric memory within the module of main memory; performing a second block write operation that writes a second block of application data that is different than the first block of application data to the second physical disruption region of the asymmetric memory within the module of main memory, the first and second blocks of application data corresponding to first and second logical blocks of the file system respectively; generating a first block of metadata that that maps logic blocks utilized by the file system to physical blocks of the first physical disruption region to which the first block of application data has been written and generating a second block of metadata that that maps logic blocks utilized by the file system to physical blocks of the second physical disruption region to which the second block of application data has been written; writing the first block of metadata to the first physical disruption region of the asymmetric memory as part of the first block write operation and writing the second block of metadata to the second physical disruption region of the asymmetric memory as part of the second block write operation such that the first and second blocks of metadata are written to the same physical disruption regions of the asymmetric memory as the blocks of application data to which they correspond, the first block of metadata and the first block of application data are written to different physical blocks in an interleaved manner such that the first block of metadata occupies both the first physical block and the last physical block within the first physical disruption region, the second block of metadata and the second block of application data are written to different physical blocks in an interleaved manner such that the second block of metadata occupies both the first physical block and the last physical block within the second physical disruption region; during the second block write operation in which physical blocks within the second physical disruption region are unavailable, enabling random access read operations to the first physical disruption region of the asymmetric memory within the module of main memory such that data from the first block of application data and the first block of metadata is available for random access reading while the second block write operation is being performed; receiving an instruction to update the first logical block of the file system with a third block of application data while the first physical disruption region is under random access read operations, the third block of application data being different than the first block of application data and the second block of application data; based on the instruction to update the first logical block of the file system with the third block of application data, determining to write the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory; based on the determination to write the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory, performing a third block write operation that writes the third block of application data to the second physical disruption region of the asymmetric memory within the module of main memory such that the third block write operation commences while the data from the first block of application data and the first block of metadata from different physical blocks within the first physical disruption region of the asymmetric memory is available for random access reading; generating a third block of metadata that corresponds to the third block of application data, that identifies the third block of application data-written to physical blocks of the second physical disruption region-as corresponding to the first logical block of the file system, and that indicates the third block of application data as being valid; writing the third block of metadata to physical blocks within the second physical disruption region of the asymmetric memory as part of the third block write operation such that the third block of metadata is written to the same physical disruption region of the asymmetric memory as the third block of application data to which it corresponds, the third block of metadata and the third block of application data are written to different physical blocks in an interleaved manner such that the third block of metadata occupies both the second physical block and the second-to-last physical block within the second physical disruption region; and updating the first block of metadata by updating the first physical block within the first physical disruption region to which the first block of metadata has been written to indicate the first block of application data as being invalid.
-
-
2. A method of writing application data to a memory storage system that includes an asymmetric memory component having multiple physical disruption regions such that metadata related to a write operation performed to write application data to an individual physical disruption region of the asymmetric memory component is written to the same individual disruption region of the asymmetric memory component as the application data, where individual physical disruption regions of the asymmetric memory component include one or more physical blocks, and where individual physical disruption regions of the asymmetric memory component are configured such that writing to a physical block within a physical disruption region of the asymmetric memory component affects the availability of other physical blocks within the same physical disruption region of the asymmetric memory component, the method comprising:
-
receiving a first instruction to write a first quantum of application data to a logical volume, the first instruction specifying a first logical block within the logical volume to which the first quantum of application data is to be written; converting the first instruction to write the first quantum of application data to the first logical block within the logical volume into a second instruction to write the first quantum of application data to a specified physical block within a first physical disruption region of the asymmetric memory component; processing the second instruction to write the first quantum of application data to the specified physical block within the first physical disruption region of the asymmetric memory component; in response to processing the second instruction to write the first quantum of application data to the specified physical block within the first physical disruption region of the asymmetric memory component, performing a first write operation that includes; generating first metadata that maps logic blocks within the logical volume to the specified physical block within the first physical disruption region to which the first write operation is directed, the first metadata indicating that the specified physical block within the first physical disruption region of the asymmetric memory component is valid, and writing the first quantum of application data and the first metadata related to the first write operation to different physical blocks within the first physical disruption region of the asymmetric memory component such that the first quantum of application data and the first metadata related to the first write operation both are written to the same physical disruption region of the asymmetric memory component in an interleaved manner such that the first metadata occupies both the first physical block and the last physical block of the first physical disruption region; subsequent to performing the first write operation, receiving a third instruction to write a new quantum of application data to the logical volume, the third instruction specifying the first logical block within the logical volume to which the new quantum of application data is to be written; converting the third instruction to write the new quantum of application data to the first logical block within the logical volume into a fourth instruction to write the new quantum of application data to a specified physical block within a second physical disruption region of the asymmetric memory component that is different from the first physical disruption region of the asymmetric memory component; processing the fourth instruction to write the new quantum of application data to the specified physical block within the second physical disruption region of the asymmetric memory component; in response to processing the fourth instruction to write the new quantum of application data to the specified physical block within the second physical disruption region of the asymmetric memory component, performing a second write operation that includes; generating second metadata that maps logic blocks within the logical volume to the specified physical block within the second physical disruption region to which the second write operation is directed, the second metadata indicating that the specified physical block within the second physical disruption region of the asymmetric memory component is valid, writing the new quantum of application data and the second metadata related to the second write operation to different physical blocks within the second physical disruption region of the asymmetric memory component such that the new quantum of application data and the second metadata related to the second write operation both are written to the same physical disruption region of the asymmetric memory component in an interleaved manner in which the second metadata occupies both the first physical block and the last physical block of the second physical disruption region while data from the first quantum of application data and the first metadata in different physical blocks within the first physical disruption region of the asymmetric memory is available for random access reading, and updating the first metadata stored in the first physical disruption region of the asymmetric memory component to indicate that the specified physical block within the first physical disruption region of the asymmetric memory component is invalid, determining that a volume information table for the logical volume needs to be recreated, and in response to the determination that the volume information table for the logical volume needs to be recreated, recreating the volume information table by; accessing the first metadata from the first physical disruption region of the asymmetric memory component, accessing the second metadata from the second physical disruption region of the asymmetric memory component, determining that the specified physical block within the second physical disruption region of the asymmetric memory component stores a valid version of the first logical block within the logical volume based on processing; the first metadata which indicates that the specified physical block within the first physical disruption region of the asymmetric memory component corresponds to the first logical block within the logical volume, but is invalid, and the second metadata which indicates that the specified physical block within the second physical disruption region of the asymmetric memory component corresponds to the first logical block within the logical volume and is valid, and based on the determination that the specified physical block within the second physical disruption region of the asymmetric memory component stores a valid version of the first logical block within the logical volume, configuring the recreated volume information table to map the first logical block within the logical volume to the specified physical block within the second physical disruption region of the asymmetric memory component. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A memory storage system for storing data for an electronic device, the memory storage system comprising:
-
a first physical disruption region of asymmetric memory within a memory module that includes; a first set of physical data blocks for storing application data, a first physical metadata block that is reserved for storing metadata that maps logic blocks utilized by a file system to the first set of physical data blocks within the first physical disruption region of asymmetric memory in which the application data has been stored, and a second physical metadata block that is reserved for storing a redundant copy of the metadata that identifies the application data stored in the first set of physical data blocks within the first physical disruption region of asymmetric memory, wherein the first physical disruption region of asymmetric memory is configured to enable write operations to individual physical data blocks within the first physical disruption region of asymmetric memory in which writing to an individual physical data block within the first physical disruption region of asymmetric memory affects the availability of other physical blocks within the first physical disruption region of asymmetric memory, and wherein the first set of physical data blocks are interleaved with the first and second physical metadata blocks such that the first and second physical metadata blocks occupy both the first physical block and the last physical block of the first physical disruption region; a second physical disruption region of asymmetric memory within the memory module that includes; a second set of physical data blocks for storing application data, a third physical metadata block that is reserved for storing metadata that maps logic blocks utilized by the file system to the second set of physical data blocks within the second physical disruption region of asymmetric memory in which the application data has been stored, and a fourth physical metadata block that is reserved for storing a redundant copy of the metadata that identifies the application data stored in the second set of physical data blocks within the second physical disruption region of asymmetric memory, wherein the second physical disruption region of asymmetric memory is configured to enable write operations to individual physical data blocks within the second physical disruption region of asymmetric memory in which writing to an individual physical data block within the second physical disruption region of asymmetric memory affects the availability of other physical blocks within the second physical disruption region of asymmetric memory, and wherein the second set of physical data blocks are interleaved with the third and the fourth physical metadata blocks such that the third and the fourth physical metadata blocks occupy both the first physical block and the last physical block of the second physical disruption region; and a memory controller configured to (i) process memory-level random-access read operations to the first physical disruption region of asymmetric memory within the memory module during block-level write operations to the second physical disruption region of asymmetric memory within the memory module when a portion of the physical blocks in the first physical disruption region is being updated by virtue of the block-level write operations to the second physical disruption region and (ii) process memory-level random-access read operations to the second physical disruption region of asymmetric memory within the memory module during block-level write operations to the first physical disruption region of asymmetric memory within the memory module when a portion of the physical blocks in the second physical disruption region is being updated by virtue of the block-level write operations to the first physical disruption region, wherein the memory controller is configured to recreate a volume information table for a logical volume by; accessing first metadata from the first physical metadata block, accessing second metadata from the third physical metadata block, reconciling one or more conflicts between the accessed first metadata and the access second metadata, and based on reconciliation of the one or more conflicts, configuring the recreated volume information table to map each logical block within the logical volume to a single physical data block within the asymmetric memory. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
Specification