FINAL ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments with respect to claim(s) 1-27 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-27 is/are rejected under 35 U.S.C. 103 as being unpatentable over Frick (US 20150363127) in view of Lee (US 20240394155) and Griffith (US 20170351584).
Regarding claim 1, Frick teaches wherein primary location comprises a logical address associated with a physical location on a first shelf of the data storage environment; identify a secondary location at which to store a replicated version of the metadata, wherein the secondary location comprises a logical address associated with a physical location on a second shelf of the data storage environment that differs from the first shelf; (“The resource distribution rules 416 may specify, for example, a level of data protection associated with each logical zone, one or more rules for distributing data redundancies across different FRUs in a logical zone” ¶63 ); and store the metadata and the replicated version of the metadata using respective logical addresses. (“A saving operation 715 saves the location metadata within the mass data storage system.” ¶78). Frick does not teach receive a write request corresponding to user data to be stored in a storage aggregate of a data storage environment; generate metadata associated with the write request; identify a primary location at which to store the metadata, wherein primary location comprises a logical address associated with a physical location on a first shelf of the data storage environment; identify a secondary location at which to store a replicated version of the metadata,
Lee teaches A computing apparatus comprising: one or more computer-readable storage media; and program instructions stored on the one or more computer-readable storage media executable by a processing device that, based on being read and executed by the processing device, direct the processing device to: receive a write request corresponding to user data to be stored in a storage aggregate of a data storage environment (“The memory controller 110 receives the plurality of host commands and the logical addresses, and translates the plurality of host commands into memory operating commands (which may be referred to as operating commands, for brevity), respectively, and further controls the NV memory 120 with the operating commands to perform reading or writing/programing upon the memory units or data pages of specific physical addresses within the NV memory” ¶21); generate metadata associated with the write request; identify a primary location at which to store the metadata, (“the memory controller 110 may back up the first data and the first metadata from the superpage XP(0) into at least one other block among the plurality of blocks to be their backup versions in advance, for being read afterward to generate third data and third metadata of the third data to be written into the superpage XP(4), respectively” ¶36). It would have been obvious for someone of ordinary skill in the art prior to the filing of the claimed invention to combine the metadata generation and storage methods of Lee with the distribution onto different physical storage systems as taught by Frick. Physical data redundancy increases the likelihood that data can be recovered in the event of component failure
Frick and Lee do not teach determine whether the primary location and the secondary location correspond to a same shelf of the data storage environment based on the physical locations associated with the logical addresses; responsive to determining that the primary location and the secondary location correspond to the same shelf, select a different secondary location having a logical address associated with a physical location on a different shelf.
Griffith teaches determine whether the primary location and the secondary location correspond to a same shelf of the data storage environment based on the physical locations associated with the logical addresses; (“However, it would alternatively be possible for the primary and secondary to be located in the same physical machine” ¶67) responsive to determining that the primary location and the secondary location correspond to the same shelf, select a different secondary location having a logical address associated with a physical location on a different shelf (“During normal operation, one of the logical partitions 106A within a server system 102 is designated the primary database server of a particular database 300, and performs all database accesses to that database on behalf of clients 105. Another logical partition 106B is designated the secondary database server, and functions as a backup database server for accessing database 300 in the event that the primary database server becomes unavailable for any of various reasons. Preferably, the primary database server's partition and the secondary database server's partition are located in separate physical server machines 102 within cluster 101 for greater redundancy.” ¶67). It would have been obvious for someone of ordinary skill in the art prior to the filing of the claimed invention to combine the metadata generation and storage distribution of Frick and Lee with the checking of physical locations that correspond to logical addresses as taught by Griffith. Avoiding the storage of data on the same physical location improves redundancy (¶67)
Regarding claim 2, Frick teaches wherein to identify the secondary location, the program instructions direct the processing device to: identify the logical address of the secondary location; (“Responsive to receipt of a write command, a selection operation 705 selects a subset of storage resources for storing redundant data of a file specified by the write command. A generating operation 710 generates location metadata describing the physical and logical positions of each storage resource of the selected subset of storage resources.” ¶77 ); confirm the logical address of the secondary location is associated with a physical location on a shelf different from the first shelf; and responsive to confirming the logical address is associated with the physical location on the second shelf that differs from the first shelf, determine the secondary location (“Another example resource distribution rule limits a total number of storage resources in a same logical zone that can be in a same FRU. For example, the logical zone 142 includes no more than one storage resource per media unit” ¶23).
Regarding claim 3, Frick teaches wherein the program instructions further direct the processing device to: receive a read request corresponding to the user data stored in the storage aggregate; identify the primary location at which the metadata is stored; read the metadata at the primary location to determine a location at which the user data is stored in the storage aggregate; and read the user data from the location. (“The file system interface 440 indexes and manages file system information that allows the system to locate and read file attributes responsive to receipt of a user read command. For example, the file interface 440 saves file attributes and extended file attributes in an index that further associates a user file identifier with such attributes” ¶60).
Regarding claim 4, Frick teaches The computing apparatus of claim 3, wherein the program instructions further direct the processing device to: identify a failure of the first shelf based on attempting to read the metadata at the primary location; responsive to identifying the failure of the first shelf, identify the secondary location at which the replicated version of the metadata is stored; read the replicated version of the metadata at the secondary location to determine the location at which the user data is stored in the storage aggregate; and read the user data from the location. (“For example, a power supply unit failure may temporarily cause one or more storage resources to go off-line. While the storage resources are off-line, data directed to those storage resources may be updated and the updates performed to the data at the redundant data locations” ¶68).
Regarding claim 5, Frick teaches The computing apparatus of claim 4, wherein the program instructions further direct the processing device to: responsive to identifying the failure of the first shelf, identify a location at which to store the replicated version of the metadata; and store the replicated version of the metadata at a logical address of the location (“Consequently, the metadata is itself “based on” the physical position map. A restoration operation 620 restores data of the failed storage resource from one or more storage resources of the identified subset” ¶76).
Regarding claim 6, Frick teaches The computing apparatus of claim 5, wherein the location and the corresponding logical address are associated with a physical location on a third shelf of the data storage environment that differs from the first and second shelves. (“For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25)
Regarding claim 7, Frick teaches The computing apparatus of claim 5, wherein the location and the corresponding logical address are associated with the physical location on the first shelf following recovery of the first shelf (“Location metadata describing a physical position of a storage resource may include, for example, a physical address of a media unit, a physical location of a media unit within a particular rack, an index of a storage resource within an individual unit, etc.” ¶77)
Regarding claim 8, Frick teaches wherein: the data storage environment comprises the storage aggregate that includes the multiple drives, and multiple controllers capable of communicating with each of the drives; (“For example, the media units 132 and 134 each include 8 individual storage drives controlled by a corresponding media unit controller 126 and 128, respectively. The media unit 136 includes 5 individual storage drives (e.g., storage drive 114) controlled by media unit controller 138” ¶19); the first shelf comprises a first subset of the drives and a first set of components, including a first power supply and a first interconnect, coupled to the first subset of the drives; and the second shelf comprises a second subset of the drives and a second set of components, including a second power supply and a second interconnect, coupled to the second subset of the drives. (“The storage rack 104 includes 9 individual storage media units controlled by a rack controller 120 and distributed across three power supply units (PWR A, PWR B, PWR C) such that a ratio of media units to power supply units is 3:1. In other implementations, some storage racks include greater or fewer individual media units than the depicted 10 and 9 storage media units per storage rack and/or a different distribution of media units powered by each power supply unit.” ¶18).
Regarding claim 9, Frick teaches The computing apparatus of claim 8, wherein the logical address of the primary location is associated with a first redundancy group of drives on the first shelf that provide redundancy with respect to each other, (“For example, the data may be addressed to a particular logical zone or the rack controller 218 may assign the data to a logical zone based on a variety of considerations such as a level of data protection specified by a user” ¶39); and wherein the logical address of the secondary location is associated with a second redundancy group of drives on the second shelf different from the first redundancy group that provide redundancy with respect to each other. (“ a physical position of a drive index within the media unit storing the redundancy; (6) a logical block address where the redundancy is stored;” ¶45).
Regarding claim 10, Frick teaches The computing apparatus of claim 1, wherein to program instructions further direct the processing device to store a replicated version of the user data at the secondary location using the logical address associated with the physical location on the second shelf. (“When data is written to a storage resource in the mass data storage system 100, data redundancies are stored in multiple storage resources in a same logical zone. “Data redundancies” refers to, for example, data that is in addition to user or system data that permits correction of errors in stored or transmitted data. For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25).
Regarding claim 11, Frick teaches wherein primary location comprises a logical address associated with a physical location on a first shelf of the data storage environment; identify a secondary location at which to store a replicated version of the metadata, wherein the secondary location comprises a logical address associated with a physical location on a second shelf of the data storage environment that differs from the first shelf; (“The resource distribution rules 416 may specify, for example, a level of data protection associated with each logical zone, one or more rules for distributing data redundancies across different FRUs in a logical zone” ¶63 ); and store the metadata and the replicated version of the metadata using respective logical addresses. (“A saving operation 715 saves the location metadata within the mass data storage system.” ¶78). Lee teaches One or more non-transitory computer-readable storage media having stored thereon program instructions executable by one or more processors of a data storage environment comprising a storage aggregate that includes multiple drives, and one or more controllers capable of communicating with each of the drives in the storage aggregate, that, when executed by the one or more processors, direct the one or more processors to: receive a write request corresponding to user data to be stored in a storage aggregate of a data storage environment (“The memory controller 110 receives the plurality of host commands and the logical addresses, and translates the plurality of host commands into memory operating commands (which may be referred to as operating commands, for brevity), respectively, and further controls the NV memory 120 with the operating commands to perform reading or writing/programing upon the memory units or data pages of specific physical addresses within the NV memory” ¶21); generate metadata associated with the write request; identify a primary location at which to store the metadata, (“the memory controller 110 may back up the first data and the first metadata from the superpage XP(0) into at least one other block among the plurality of blocks to be their backup versions in advance, for being read afterward to generate third data and third metadata of the third data to be written into the superpage XP(4), respectively” ¶36). Griffith teaches determine whether the primary location and the secondary location correspond to a same shelf of the data storage environment based on the physical locations associated with the logical addresses; (“However, it would alternatively be possible for the primary and secondary to be located in the same physical machine” ¶67) responsive to determining that the primary location and the secondary location correspond to the same shelf, select a different secondary location having a logical address associated with a physical location on a different shelf (“During normal operation, one of the logical partitions 106A within a server system 102 is designated the primary database server of a particular database 300, and performs all database accesses to that database on behalf of clients 105. Another logical partition 106B is designated the secondary database server, and functions as a backup database server for accessing database 300 in the event that the primary database server becomes unavailable for any of various reasons. Preferably, the primary database server's partition and the secondary database server's partition are located in separate physical server machines 102 within cluster 101 for greater redundancy.” ¶67).
Regarding claim 12, Frick teaches The one or more non-transitory computer-readable storage media of claim 11, wherein to identify the secondary location, the program instructions direct the one or more processors to: identify the logical address of the secondary location; (“Responsive to receipt of a write command, a selection operation 705 selects a subset of storage resources for storing redundant data of a file specified by the write command. A generating operation 710 generates location metadata describing the physical and logical positions of each storage resource of the selected subset of storage resources.” ¶77 ); confirm the logical address of the secondary location is associated with a physical location on a shelf different from the first shelf; and responsive to confirming the logical address is associated with the physical location on the second shelf that differs from the first shelf, determine the secondary location (“Another example resource distribution rule limits a total number of storage resources in a same logical zone that can be in a same FRU. For example, the logical zone 142 includes no more than one storage resource per media unit” ¶23).
Regarding claim 13, Frick teaches receive a read request corresponding to the user data stored in the storage aggregate; identify the primary location at which the metadata is stored; read the metadata at the primary location to determine a location at which the user data is stored in the storage aggregate; and read the user data from the location. (“The file system interface 440 indexes and manages file system information that allows the system to locate and read file attributes responsive to receipt of a user read command. For example, the file interface 440 saves file attributes and extended file attributes in an index that further associates a user file identifier with such attributes” ¶60).
Regarding claim 14, Frick teaches identify a failure of the first shelf based on attempting to read the metadata at the primary location; responsive to identifying the failure of the first shelf, identify the secondary location at which the replicated version of the metadata is stored; read the replicated version of the metadata at the secondary location to determine the location at which the user data is stored in the storage aggregate; and read the user data from the location. (“For example, a power supply unit failure may temporarily cause one or more storage resources to go off-line. While the storage resources are off-line, data directed to those storage resources may be updated and the updates performed to the data at the redundant data locations” ¶68).
Regarding claim 15, Frick teaches responsive to identifying the failure of the first shelf, identify a location at which to store the replicated version of the metadata; and store the replicated version of the metadata at a logical address of the location (“Consequently, the metadata is itself “based on” the physical position map. A restoration operation 620 restores data of the failed storage resource from one or more storage resources of the identified subset” ¶76).
Regarding claim 16, Frick teaches wherein the location and the corresponding logical address are associated with a physical location on a third shelf of the data storage environment that differs from the first and second shelves or the physical location on the first shelf following recovery of the first shelf.. (“For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25).
Regarding claim 17, Frick teaches to store a replicated version of the user data at the secondary location using the logical address associated with the physical location on the second shelf. (“When data is written to a storage resource in the mass data storage system 100, data redundancies are stored in multiple storage resources in a same logical zone. “Data redundancies” refers to, for example, data that is in addition to user or system data that permits correction of errors in stored or transmitted data. For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25).
Regarding claim 18, Frick teaches teaches wherein: the data storage environment comprises the storage aggregate that includes the multiple drives, and multiple controllers capable of communicating with each of the drives; (“For example, the media units 132 and 134 each include 8 individual storage drives controlled by a corresponding media unit controller 126 and 128, respectively. The media unit 136 includes 5 individual storage drives (e.g., storage drive 114) controlled by media unit controller 138” ¶19); the first shelf comprises a first subset of the drives and a first set of components, including a first power supply and a first interconnect, coupled to the first subset of the drives; and the second shelf comprises a second subset of the drives and a second set of components, including a second power supply and a second interconnect, coupled to the second subset of the drives. (“The storage rack 104 includes 9 individual storage media units controlled by a rack controller 120 and distributed across three power supply units (PWR A, PWR B, PWR C) such that a ratio of media units to power supply units is 3:1. In other implementations, some storage racks include greater or fewer individual media units than the depicted 10 and 9 storage media units per storage rack and/or a different distribution of media units powered by each power supply unit.” ¶18).
Regarding claim 19, Frick teaches Frick teaches The computing apparatus of claim 8, wherein the logical address of the primary location is associated with a first redundancy group of drives on the first shelf that provide redundancy with respect to each other, (“For example, the data may be addressed to a particular logical zone or the rack controller 218 may assign the data to a logical zone based on a variety of considerations such as a level of data protection specified by a user” ¶39); and wherein the logical address of the secondary location is associated with a second redundancy group of drives on the second shelf different from the first redundancy group that provide redundancy with respect to each other. (“ a physical position of a drive index within the media unit storing the redundancy; (6) a logical block address where the redundancy is stored;” ¶45).
Regarding claim 20, Lee teaches A method executed by one or more processors, comprising: generating metadata associated with a write request received for writing data in a storage system (“During performing the SPOR procedure, before writing the dummy data and the other metadata into the superpage XP(3), the memory controller 110 may back up the first data and the first metadata from the superpage XP(0) into at least one other block among the plurality of blocks to be their backup versions in advance, for being read afterward to generate third data and third metadata of the third data to be written into the superpage XP(4), respectively, and back up the second data and the second metadata from the superpage XP(1) into the aforementioned at least one other block to be their backup versions in advance, for being read afterward to generate fourth data and fourth metadata of the fourth data to be written into the superpage XP(5), respectively.” ¶36). Frick teaches a storage system having a first shelf with a first set of storage devices and a second shelf having a second set of storage devices different from the first set storage devices; (“The resource distribution rules 416 may specify, for example, a level of data protection associated with each logical zone, one or more rules for distributing data redundancies across different FRUs in a logical zone” ¶63); identifying a primary location to store the metadata, wherein primary location comprises a logical address associated with a physical location on a first shelf; identifying a secondary location to store a replicated version of the metadata, wherein the secondary location comprises a logical address associated with a physical location on the second shelf ; and storing the metadata and the replicated version of the metadata using respective logical addresses (“The first storage array may receive a data read command from the second storage array to a first logical block address, and in response to the data read command, may determine that a data block pointed to by the first logical block address in the first storage array is also pointed to by second logical block address that is adjacent to the first logical block address in the first logical block table, and send the data block and metadata to the second storage array” ¶3). Griffith teaches determining whether the primary location and the secondary location correspond to a same shelf of the data storage environment based on the physical locations associated with the logical addresses; (“However, it would alternatively be possible for the primary and secondary to be located in the same physical machine” ¶67) responsive to determining that the primary location and the secondary location correspond to the same shelf, select a different secondary location having a logical address associated with a physical location on a different shelf (“During normal operation, one of the logical partitions 106A within a server system 102 is designated the primary database server of a particular database 300, and performs all database accesses to that database on behalf of clients 105. Another logical partition 106B is designated the secondary database server, and functions as a backup database server for accessing database 300 in the event that the primary database server becomes unavailable for any of various reasons. Preferably, the primary database server's partition and the secondary database server's partition are located in separate physical server machines 102 within cluster 101 for greater redundancy.” ¶67).
Regarding claim 21, Frick teaches The method of claim 20, wherein identifying the secondary location comprises: identifying the logical address of the secondary location; ; (“Responsive to receipt of a write command, a selection operation 705 selects a subset of storage resources for storing redundant data of a file specified by the write command. A generating operation 710 generates location metadata describing the physical and logical positions of each storage resource of the selected subset of storage resources.” ¶77 ); confirming the logical address of the secondary location is associated with a physical location on a shelf different from the first shelf; and responsive to confirming the logical address is associated with the physical location on the second shelf that differs from the first shelf, determining the secondary location (“Another example resource distribution rule limits a total number of storage resources in a same logical zone that can be in a same FRU. For example, the logical zone 142 includes no more than one storage resource per media unit” ¶23).
Regarding claim 22, Frick teaches The method of claim 21 further comprising: receiving a read request corresponding to the data stored in the storage system; identifying the primary location at which the metadata is stored; reading the metadata at the primary location to determine a location at which the data is stored ; and reading the data from the location. (“The file system interface 440 indexes and manages file system information that allows the system to locate and read file attributes responsive to receipt of a user read command. For example, the file interface 440 saves file attributes and extended file attributes in an index that further associates a user file identifier with such attributes” ¶60).
Regarding claim 23, Frick teaches The method of claim 22 further comprising: identifying a failure of the first shelf based on an attempt to read the metadata at the primary location; responsive to identifying the failure of the first shelf, identifying the secondary location at which the replicated version of the metadata is stored; reading the replicated version of the metadata at the secondary location to determine the location at which the data is stored; and reading the data from the location. (“For example, a power supply unit failure may temporarily cause one or more storage resources to go off-line. While the storage resources are off-line, data directed to those storage resources may be updated and the updates performed to the data at the redundant data locations” ¶68).
Regarding claim 24, Frick teaches The method of claim 23 further comprising: responsive to identifying the failure of the first shelf, identifying a location to store the replicated version of the metadata; and storing the replicated version of the metadata at a logical address of the location. (“Consequently, the metadata is itself “based on” the physical position map. A restoration operation 620 restores data of the failed storage resource from one or more storage resources of the identified subset” ¶76).
Regarding claim 25, Frick teaches The method of claim 24, wherein the location and the corresponding logical address are associated with either a physical location on a third shelf of the storage system that differs from the first and second shelves or the physical location on the first shelf following recovery of the first shelf. (“For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25).
Regarding claim 26, Frick teaches Frick teaches storing a replicated version of the user data at the secondary location using the logical address associated with the physical location on the second shelf. (“When data is written to a storage resource in the mass data storage system 100, data redundancies are stored in multiple storage resources in a same logical zone. “Data redundancies” refers to, for example, data that is in addition to user or system data that permits correction of errors in stored or transmitted data. For example, data redundancies may refer to data that is spread across and/or duplicated at a number of different storage locations that can be assembled in one or more ways to reconstruct a cohesive data set.” ¶25).
Regarding claim 27, Frick teaches wherein the logical address of the primary location is associated with a first redundancy group of drives on the first shelf that provide redundancy with respect to each other, (“For example, the data may be addressed to a particular logical zone or the rack controller 218 may assign the data to a logical zone based on a variety of considerations such as a level of data protection specified by a user” ¶39); and wherein the logical address of the secondary location is associated with a second redundancy group of drives on the second shelf different from the first redundancy group that provide redundancy with respect to each other. (“ a physical position of a drive index within the media unit storing the redundancy; (6) a logical block address where the redundancy is stored;” ¶45).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SEAN KEVIN MCNAMARA whose telephone number is (703)756-1884. The examiner can normally be reached Monday-Friday 7:30-5:00 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bryce Bonzo can be reached at 571-272-3655. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/SEAN KEVIN MCNAMARA/Examiner, Art Unit 2113
/PHILIP GUYTON/Primary Examiner, Art Unit 2113