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 .
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) 17-20 are rejected under 35 U.S.C. 103 as being unpatentable over Akutsu et al. (USPN 20180357127A1) in view of Vohra et al. (USPN 20230195444A1) in view of Mao et al. (USPN 20180024964A1) in further view of Martin et al. (USPN 9081828B1).
As per claim 17, Akutsu et al. discloses a system, comprising: one or more processing circuits (paragraph 0101 – each node has a processor package including a memory and a processor) configured to: store a plurality of data blocks and a plurality of parity blocks across a plurality of storage block addresses (SBAs) in a local storage and in a remote storage of at least one remoteIAS system based on a mapping function, and wherein each RAIS set of a plurality of RAIS sets comprises a plurality of stripes, each stripe of the plurality of stripes comprises a portion of the plurality of data blocks and at least one of the plurality of parity blocks, and wherein storing is performed based on a distributed data mapping of the plurality of data blocks and a distributed parity mapping of the plurality of parity blocks (paragraphs 0080-0088 – discloses FIG. 1 illustrates an outline of write processing in the distributed storage system as an example of this embodiment. Computer nodes 101A, 101B, and 101C are included in a single computer domain (hereinafter, also referred to as domain). In the example described hereinafter, a domain is associated with a site. Computer nodes 101D and 101E are each located in a site different from the other computer nodes. The computer nodes 101A to 101E communicate with one another via a network. Hereinafter, a computer node may be simply referred to as node. Each of the computer nodes 101A to 101E includes a cache 181 and storage drives 113. Each of the nodes 101A to 101E provides a volume 1303.; these paragraphs disclose how at least one computer node contains data and redundant code of another node in stripes with paragraph 0190 – discloses the redundant code is parity); and
perform a plurality of operations (i) to maintain distributed redundancy on the stored plurality of data blocks and the stored plurality of parity blocks to maintain distributed redundancy across a plurality of the IAS systems by transmitting, in parallel, a first set of operations to at least two of the plurality of IAS systems, or (ii) on the stored plurality of data blocks mapped to the at least one local storage or on the stored plurality of remote data blocks on the at least one remote storage of the at least one remote IAS system (paragraph 0437 - This embodiment distributes copies of one write data block (d2 block) 2902 and two parities (p and q parities) 2903 and 2904 to three nodes 101B to 101D. When the copies have been distributed, synchronous write processing is completed because required redundancy is attained (data recovery is available when two nodes are failed).; paragraphs 0255-0256 – discloses for a synchronous write calculating the intermediate code which represents update differences between old data (the latest data at this time) and new data (data to be written in this processing). In the case of redundant data in RAID 5 for example, the intermediate code is the xor value of the old data and the new data.; this operation can be performed on another computer node as disclosed in paragraphs 0080-0088 – discloses FIG. 1 illustrates an outline of write processing in the distributed storage system as an example of this embodiment. Computer nodes 101A, 101B, and 101C are included in a single computer domain (hereinafter, also referred to as domain). In the example described hereinafter, a domain is associated with a site. Computer nodes 101D and 101E are each located in a site different from the other computer nodes. The computer nodes 101A to 101E communicate with one another via a network. Hereinafter, a computer node may be simply referred to as node. Each of the computer nodes 101A to 101E includes a cache 181 and storage drives 113. Each of the nodes 101A to 101E provides a volume 1303.);
wherein the plurality of IAS systems share the distributed data mapping of the plurality of data blocks, and wherein the plurality of IAS systems share the distributed parity mapping of a plurality of parity blocks (these paragraphs disclose how at least one computer node contains data and redundant code of another node in stripes with paragraph 0190 – discloses the redundant code is parity; paragraph 0143 - FIG. 7A illustrates a configuration example of the static mapping table 211 of the protection layer number 2 (site). The site static mapping table 211 is information shared by the nodes 101 in a site 102. The site static mapping table 211 holds relations of each site stripe type number with the node numbers of data nodes for storing corresponding stripes (user data/write data) and the node numbers of redundant code nodes for storing redundant codes created from the stripes.; paragraph 0146 - The site static mapping table 211 may be shared among the sites, unless the memory or security is restricted.; paragraphs 0155-0168 – discloses the log-structured mapping table which includes a data mapping table – associates the storage address (logical address) in the pool volume of user data (stripe) with the corresponding storage address (physical address), a redundant code mapping table - manages redundant codes the node holding the table stores in its storage device (drives 113), and a reverse mapping table - convert an address of a physical area into a pool volume-related address)).
Akutsu et al. fails to explicitly state wherein each of the plurality of IAS systems corresponds to a hot-swappable module.
Akutsu et al. does disclose in paragraphs 0080-0088 – discloses FIG. 1 illustrates an outline of write processing in the distributed storage system as an example of this embodiment. Computer nodes 101A, 101B, and 101C are included in a single computer domain (hereinafter, also referred to as domain). In the example described hereinafter, a domain is associated with a site. Computer nodes 101D and 101E are each located in a site different from the other computer nodes. The computer nodes 101A to 101E communicate with one another via a network. Hereinafter, a computer node may be simply referred to as node. Each of the computer nodes 101A to 101E includes a cache 181 and storage drives 113. Each of the nodes 101A to 101E provides a volume 1303.; paragraph 0548 - It should be noted that this invention is not limited to the above-described embodiments but include various modifications.
Vohra et al. discloses wherein each of the plurality of IAS systems corresponds to a hot-swappable module (paragraph 0096 - One or more storage nodes 150 can be plugged into or removed from each chassis and the storage cluster self-configures in some embodiments. Plug-in storage nodes 150, whether installed in a chassis as delivered or later added, can have different sizes.).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the one or more storage nodes plugged into or remove from each chassis of Vohra in the nodes of a distributed storage system that can be modified of Akutsu. A person of ordinary skill in the art would have been motivated to make the modification because the storage nodes are able to have various storage amount or capacities based on adding/removing nodes, as disclosed in paragraph 0096.
Akutsu et al. and Vohra et al. fail to explicitly state each of the plurality of IAS system plugged into a slot within a chassis.
Akutsu et al. does disclose in paragraphs 0080-0088 – discloses FIG. 1 illustrates an outline of write processing in the distributed storage system as an example of this embodiment. Computer nodes 101A, 101B, and 101C are included in a single computer domain (hereinafter, also referred to as domain). In the example described hereinafter, a domain is associated with a site. Computer nodes 101D and 101E are each located in a site different from the other computer nodes. The computer nodes 101A to 101E communicate with one another via a network. Hereinafter, a computer node may be simply referred to as node. Each of the computer nodes 101A to 101E includes a cache 181 and storage drives 113. Each of the nodes 101A to 101E provides a volume 1303.; paragraph 0548 - It should be noted that this invention is not limited to the above-described embodiments but include various modifications.
Mao et al. discloses each of the plurality of IAS system plugged into a slot within a chassis (paragraph 0076 - The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.; 0080 - Storage nodes 150 are hot pluggable, meaning that a storage node 150 can be inserted into a slot 142 in the chassis 138, or removed from a slot 142, without stopping or powering down the system. Upon insertion or removal of storage node 150 from slot 142, the system automatically reconfigures in order to recognize and adapt to the change. Reconfiguration, in some embodiments, includes restoring redundancy and/or rebalancing data or load.)
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the nodes plugged into a chassis of Mao in the nodes of a distributed storage system that can be modified of Akutsu. A person of ordinary skill in the art would have been motivated to make the modification because the storage cluster distributes user data across storage nodes housed within a chassis, as disclosed in paragraph 0076.
Akutsu et al., Vohra et al., and Mao et al. fail to explicitly state interface via an integrated switch using a corresponding controller.
Akutsu et al. discloses does disclose in paragraphs 0080-0088 – discloses FIG. 1 illustrates an outline of write processing in the distributed storage system as an example of this embodiment. Computer nodes 101A, 101B, and 101C are included in a single computer domain (hereinafter, also referred to as domain). In the example described hereinafter, a domain is associated with a site. Computer nodes 101D and 101E are each located in a site different from the other computer nodes. The computer nodes 101A to 101E communicate with one another via a network. Hereinafter, a computer node may be simply referred to as node. Each of the computer nodes 101A to 101E includes a cache 181 and storage drives 113. Each of the nodes 101A to 101E provides a volume 1303.; paragraph 0548 - It should be noted that this invention is not limited to the above-described embodiments but include various modifications.
Martin et al. discloses interface via an integrated switch using a corresponding controller in column 3, lines 48-49 - In various embodiments, the chassis may include one or more Ethernet switches.; column 3, lines 58 - column 4, line 3 - In some embodiments, the Ethernet switch fabric may include an Ethernet port/interface for enabling communication between the chassis (e.g., each controller) and at least one network and/or network device that is remote to the chassis. However, embodiments are not so limited; and in some other embodiments, the chassis may be modified to include a component that can detect differences between storage-drive-access protocols and Ethernet protocols. In some other embodiments, a traditional backplane may not be utilized, but rather the switch fabric may include connectors for coupling with storage drives, where these connectors include an Ethernet interface..
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the chassis including ethernet switches, a controller, and Ethernet port/interface of Martin in the nodes of a distributed storage system that can be modified of Akutsu. A person of ordinary skill in the art would have been motivated to make the modification because controllers may communicate with each other to coordinate and perform tasks between a plurality of storage drives, as disclosed in column 7, line 65 – column 8, line 1.
As per claim 18, Akutsu et al. discloses wherein the one or more processing circuits are further configured to allocate a plurality of spare storage block addresses within the local storage and the remote storage, and to remap at least one of the plurality of data blocks to a spare storage block address responsive to detecting a failure in an original storage block address, wherein the remapping is performed based on the distributed data mapping of the plurality of data blocks (paragraphs 0202-0204 - A spare node is a temporal storage to recover the redundancy level at an occurrence of a node failure. The spare node to store a redundant code is selected from the nodes other than the data nodes of the same stripe type. In the example of FIG. 11, a failure occurs in the node of node number 6. The spare node associated with the stripe type number of a stripe or a redundant code temporarily stores the corresponding stripe or redundant code. For example, the node of node number 0 stores the stripe of stripe type number 2 stored in the node of node number 6. The node of node number 7 stores the redundant code Q of stripe type number 3 stored in the node of node number 6. Data restoration is performed by the node to store the data or a different node. The data (stripes and redundant codes) stored in the spare nodes are returned to one node when the node has recovered or added.; paragraphs 0341-0350 - For example, the node of node number 0 stores the stripe of stripe type number 2 stored in the node of node number 6. The node of node number 7 stores the redundant code Q of stripe type number 3 stored in the node of node number 6. Data restoration is performed by the node to store the data or a different node. The data (stripes and redundant codes) stored in the spare nodes are returned to one node when the node has recovered or added. In FIG. 21, the node 101 determines whether the abnormal resource (drive, node, site, or the like) is in a failure state (S211). The resources have three kinds of states: “NORMAL” state, “FAILURE” state, and “WARNING” state. The node 101 can identify the state of the abnormal resource by referring to the state management tables for individual protection layers… Each node 101 notifies the other nodes of the processing to execute and the progress of the processing and waits for the completion of preferential rebuilding for the data having a lower redundancy level in the other nodes 101. For example, a node 101 waits for the completion of rebuilding for the stripe type of the redundancy level 0 at the other nodes 101 to start rebuilding for the stripe type of the redundancy level 1. This arrangement prevents the rebuilding for the stripe type of the redundancy level 0 from taking long because of the rebuilding for the stripe type of the redundancy level 1.).
As per claim 19, Akutsu et al. discloses wherein the one or more processing circuits are further configured to maintain at least one distributed metadata structure comprising a plurality of entries identifying a relationship between the plurality of data blocks, the plurality of parity blocks, and a plurality of corresponding SBAs in the local storage and the remote storage, and wherein at least one of the plurality of operations performed by the one or more processing circuits comprises updating the at least one distributed metadata structure based on at least one update in the stored plurality of data blocks (paragraph 0149 - The geo static mapping table 212A holds relations of each geo stripe type number with the site numbers of data sites allocated corresponding stripes and the site numbers of redundant code sites allocated redundant codes. One node 101 in each data site stores a stripe. One node 101 in each redundant code site stores a redundant code.; paragraph 0157- The data mapping table 701 manages user data (stripes) that the node 101 holding the table 701 stores in its local storage device (drives 113). The node 101 can acquire the storage address (physical address) in the drives 113 (physical storage device) of a stripe from a pool volume-related storage address (logical address) of the stripe.; paragraph 0161 - The redundant code mapping table 702 manages redundant codes the node 101 holding the table 702 stores in its local storage device (drives 113). The redundant codes to be managed include inter-site redundant codes (geo redundant codes R), in-site redundant codes (site redundant codes Q), and in-node redundant codes (node redundant codes P). The node 101 can acquire the physical address of the redundant code of a stripe from the pool volume-related logical address of the stripe.).
As per claim 20, Akutsu et al. discloses wherein the one or more processing circuits are further configured to perform at least one recovery operation by retrieving a plurality of surviving data blocks and at least one parity block from the local storage or the remote storage, performing an operation between the plurality of surviving data blocks and the at least one parity block to reconstruct at least one missing data block, and writing the reconstructed at least one missing data block to a SBA determined based on the distributed data mapping of the plurality of data blocks (paragraphs 0202-0204 - A spare node is a temporal storage to recover the redundancy level at an occurrence of a node failure. The spare node to store a redundant code is selected from the nodes other than the data nodes of the same stripe type. In the example of FIG. 11, a failure occurs in the node of node number 6. The spare node associated with the stripe type number of a stripe or a redundant code temporarily stores the corresponding stripe or redundant code. For example, the node of node number 0 stores the stripe of stripe type number 2 stored in the node of node number 6. The node of node number 7 stores the redundant code Q of stripe type number 3 stored in the node of node number 6. Data restoration is performed by the node to store the data or a different node. The data (stripes and redundant codes) stored in the spare nodes are returned to one node when the node has recovered or added.; paragraphs 0341-0350 - For example, the node of node number 0 stores the stripe of stripe type number 2 stored in the node of node number 6. The node of node number 7 stores the redundant code Q of stripe type number 3 stored in the node of node number 6. Data restoration is performed by the node to store the data or a different node. The data (stripes and redundant codes) stored in the spare nodes are returned to one node when the node has recovered or added. In FIG. 21, the node 101 determines whether the abnormal resource (drive, node, site, or the like) is in a failure state (S211). The resources have three kinds of states: “NORMAL” state, “FAILURE” state, and “WARNING” state. The node 101 can identify the state of the abnormal resource by referring to the state management tables for individual protection layers… Each node 101 notifies the other nodes of the processing to execute and the progress of the processing and waits for the completion of preferential rebuilding for the data having a lower redundancy level in the other nodes 101. For example, a node 101 waits for the completion of rebuilding for the stripe type of the redundancy level 0 at the other nodes 101 to start rebuilding for the stripe type of the redundancy level 1. This arrangement prevents the rebuilding for the stripe type of the redundancy level 0 from taking long because of the rebuilding for the stripe type of the redundancy level 1. – a failure includes not being able to access data that is no longer there, missing data).
There is no prior art rejection for claims 1-16 because of the addition of the newly added limitations.
Response to Arguments
Applicant's amendments and arguments filed 01/02/2026 have been fully considered. New references have been added to reject claims 17-20 based on the newly added limitations. Please see the above rejection.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Yolanda L Wilson whose telephone number is (571)272-3653. The examiner can normally be reached M-F (7:30 am - 4 pm).
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.
/Yolanda L Wilson/Primary Examiner, Art Unit 2113