DETAILED 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 .
Note
It is noted that any citations to specific, pages, columns, lines, or figures in the prior art references and any interpretation of the reference should not be considered to be limiting in any way. A reference is relevant for all it contains and may be relied upon for all that it would have reasonably suggested to one having ordinary skill in the art. See MPEP § 2123.
Claim Status
Claims 21-40 are currently pending. Claims 21, 26, 31, and 36 have been amended as per Applicant’s amendment filed 06 March 2026.
Response to Arguments
Examiner withdraws the Double Patenting rejection in light of the filed Terminal Disclaimer.
Applicant's arguments filed 06 March 2026 have been fully 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.
The amended claims are addressed in the rejection below further in view of Lee (US 20210349649 A1).
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) 21-40 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dubnicki (US 20100064166 A1) in view of Lee (US 20210349649 A1).
Referring to claim 21, Dubnicki teaches
A system comprising: a data container; ([Dubnicki abstract, 0011-0013, Figs. 2] each storage node includes a storage medium configured to store fragments of data blocks in a chain of data containers that is redundant with respect to chains of data containers) a first device configured to control the data container; ([Dubnicki 0013, Figs. 2-4] a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures.) and a second device, ([Dubnicki 0013, 0049, Figs. 2-4] A storage node 218 may comprise one or more storage servers 302, a processing unit 304 and a storage medium 306.) wherein: the data container is initially located on the first device, the first device is configured to split the data container into two data containers, ([Dubnicki abstract, 0011-0013, 0104-015, Figs. 2, 7] the present invention may provide a plurality of data services by employing splittable, mergable and transferable redundant chains of data containers. The chains and containers may be automatically split and/or merged in response to changes in storage node network configurations and may be stored in erasure coded fragments distributed across different storage nodes. a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 808, at least one chain of containers may be split in response to detecting the addition of active storage nodes. For example, one or more chains of containers may be split as described above with respect to rows 702 and 710 in FIG. 7. It should be understood that the splitting may comprise splitting one or more data containers 628 and/or splitting one or more data container/synchrun chains 636. For example, splitting a chain of data containers may comprise separating at least one data container from the chain of containers. In addition, the metadata may be referenced during container chain splitting to permit, for example, the maintenance of a desired redundancy level or to conduct load balancing in response to one or more added nodes. In addition, it should also be noted that automatic splitting may comprise extending at least one prefix of content addresses to generate new supernodes or subsets of storage nodes, for example, as described above with respect to FIG. 7,) the first device is configured to transfer one or both of the two data containers to the second device ([Dubnicki 0013, 0084, 0102-0105, Figs. 7, 8] and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Dubnicki does not explicitly disclose and the data container is configured to determine storage devices for building a failure resilient stripe.
Lee teaches and the data container is configured to determine storage devices for building a failure resilient stripe ([Lee 0089, 0095, 0097, 0279, 0284, Figs. 15, 20] Data is laid out or distributed across multiple storage nodes in data fragments or stripes that support data recovery in some embodiments. Storage capacity of each storage node 150 is broadcast, and influences decisions of how to stripe the data. For maximum storage efficiency, an embodiment can self-configure as wide as possible in the stripe, subject to a predetermined requirement of continued operation with loss of up to one, or up to two, non-volatile solid state storage 152 units or storage nodes 150 within the chassis. FIG. 20 depicts an embodiment of a storage system forming data stripes and writing data stripes, using resources in resiliency groups. Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment. The storage resources in each storage resources resiliency group 1912 are performing the action 2004, to write a data stripe. Each data stripe is communicated from the computing zone 1906, where formed, to the storage zone 1910, where written. ).
Dubnicki and Lee are analogous art because they are from the same field of endeavor in storage devices. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, having the teaching of Dubnicki and Lee before him or her to modify the system of Dubnicki to include the resiliency group stripe of Lee, thereafter the system is connected to resiliency group stripe. The suggestion and/or motivation for doing so would be obtaining the advantage of allowing the system have more system survivability when experiencing failure by adding more resiliency as suggested by Lee. It is known to combine prior art elements according to known methods to yield predictable results Therefore, it would have been obvious to combine Dubnicki with Lee to obtain the invention as specified in the instant application claims.
Referring to claim 22, Dubnicki in view of Lee teaches
The system of claim 21, wherein a computing device comprises the first device ([Dubnicki 0013, 0049, Figs. 2-4] A storage node 218 may comprise one or more storage servers 302, a processing unit 304 and a storage medium 306.).
Referring to claims 23, 29, 33, and 39, taking claim 23 as exemplary, Dubnicki in view of Lee teaches
The system of claim 21, wherein the data container is configured to build a plurality of failure resilient stripes ([Dubnicki abstract, 0011-0013, 0033, 0102-0105] Data services provided in a distributed secondary storage system utilizing redundant chains of containers may include global deduplication, dynamic scalability, support for multiple redundancy classes, data location, fast reading and writing of data and rebuilding of data due to node or disk failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. Other features may include the use of modified distributed hash tables, which permit the building of a scalable and failure-resistant system and the extension of duplicate elimination to a global level. Furthermore, each of the chains of data containers corresponding to a supernode may include the same metadata describing data block information such as, for example, hash value and resiliency level, as discussed above.).
Referring to claims 24, 30, 34, and 40, taking claim 24 as exemplary, Dubnicki in view of Lee teaches
The system of claim 21, wherein the first device is configured to split the data container into three or more data containers ([Dubnicki 0104, Fig. 8] At step 808, at least one chain of containers may be split in response to detecting the addition of active storage nodes. For example, one or more chains of containers may be split as described above with respect to rows 702 and 710 in FIG. 7. It should be understood that the splitting may comprise splitting one or more data containers 628 and/or splitting one or more data container/synchrun chains 636. For example, splitting a chain of data containers may comprise separating at least one data container from the chain of containers.).
Referring to claim 25, Dubnicki in view of Lee teaches
The system of claim 21, wherein: each of the two data containers is configured to build a failure resilient stripe, and a most recently added storage device of a plurality of storage devices is selected for the failure resilient stripe ([Dubnicki 0102-0105, Fig. 8] At step 806, an addition of active storage nodes to the storage node network may be detected by one or more storage nodes. For example, an explicit addition or removal of one or more storage nodes may be detected by a peer component by receiving an administration command indicating the additions and/or removals. t step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system. Thus, generation of new supernodes and data distribution between them permits effective utilization of storage nodes in the network such that the storage of data is diversified, thereby providing robustness against one or more node failures.).
Referring to claim 26, Dubnicki teaches
A system comprising: a first computing device; ([Dubnicki 0013, Fig. 3] a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures.) and a plurality of storage devices, ([Dubnicki abstract, 0011-0013, Figs. 2] distributing data blocks to different data containers located in a plurality of different physical storage nodes in a node network to generate redundant chains of data containers in the nodes) wherein: a data container is located on the first computing device, the data container is configured to build a failure resilient stripe that spans a group of storage devices that are selected from the plurality of storage devices, ([Dubnicki abstract, 0011-0013, 0033, 0102-0105] Data services provided in a distributed secondary storage system utilizing redundant chains of containers may include global deduplication, dynamic scalability, support for multiple redundancy classes, data location, fast reading and writing of data and rebuilding of data due to node or disk failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. Other features may include the use of modified distributed hash tables, which permit the building of a scalable and failure-resistant system and the extension of duplicate elimination to a global level. Furthermore, each of the chains of data containers corresponding to a supernode may include the same metadata describing data block information such as, for example, hash value and resiliency level, as discussed above.) the first computing device is configured to split the data container into two data containers, ([Dubnicki abstract, 0011-0013, 0104-015, Figs. 2, 7] the present invention may provide a plurality of data services by employing splittable, mergable and transferable redundant chains of data containers. The chains and containers may be automatically split and/or merged in response to changes in storage node network configurations and may be stored in erasure coded fragments distributed across different storage nodes. a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 808, at least one chain of containers may be split in response to detecting the addition of active storage nodes. For example, one or more chains of containers may be split as described above with respect to rows 702 and 710 in FIG. 7. It should be understood that the splitting may comprise splitting one or more data containers 628 and/or splitting one or more data container/synchrun chains 636. For example, splitting a chain of data containers may comprise separating at least one data container from the chain of containers. In addition, the metadata may be referenced during container chain splitting to permit, for example, the maintenance of a desired redundancy level or to conduct load balancing in response to one or more added nodes. In addition, it should also be noted that automatic splitting may comprise extending at least one prefix of content addresses to generate new supernodes or subsets of storage nodes, for example, as described above with respect to FIG. 7,) and a most recently added storage device of the plurality of storage devices is selected for the group of storage devices prior to an occupied storage device ([Dubnicki 0013, 0084, 0104-0105, Figs. 7, 8] At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Dubnicki does not explicitly disclose and the data container determines the group of storage devices used for the failure resilient stripe.
Lee teaches and the data container determines the group of storage devices used for the failure resilient stripe ([Lee 0089, 0095, 0097, 0279, 0284, Figs. 15, 20] Data is laid out or distributed across multiple storage nodes in data fragments or stripes that support data recovery in some embodiments. Storage capacity of each storage node 150 is broadcast, and influences decisions of how to stripe the data. For maximum storage efficiency, an embodiment can self-configure as wide as possible in the stripe, subject to a predetermined requirement of continued operation with loss of up to one, or up to two, non-volatile solid state storage 152 units or storage nodes 150 within the chassis. FIG. 20 depicts an embodiment of a storage system forming data stripes and writing data stripes, using resources in resiliency groups. Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment. The storage resources in each storage resources resiliency group 1912 are performing the action 2004, to write a data stripe. Each data stripe is communicated from the computing zone 1906, where formed, to the storage zone 1910, where written. ).
Dubnicki and Lee are analogous art because they are from the same field of endeavor in storage devices. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, having the teaching of Dubnicki and Lee before him or her to modify the system of Dubnicki to include the resiliency group stripe of Lee, thereafter the system is connected to resiliency group stripe. The suggestion and/or motivation for doing so would be obtaining the advantage of allowing the system have more system survivability when experiencing failure by adding more resiliency as suggested by Lee. It is known to combine prior art elements according to known methods to yield predictable results Therefore, it would have been obvious to combine Dubnicki with Lee to obtain the invention as specified in the instant application claims.
Referring to claim 27, Dubnicki in view of Lee teaches
The system of claim 26, wherein the first computing device is configured to transfer any data container to a second computing device ([Dubnicki 0013, 0084, 0102-0105, Figs. 7, 8] and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Referring to claim 28, Dubnicki in view of Lee teaches
The system of claim 27, wherein the transferred data container is located on the second computing device ([Dubnicki 0013, 0084, 0102-0105, Figs. 7, 8] and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Referring to claim 31, Dubnicki teaches
A method comprising: building a failure resilient stripe, using a data container of a first computing device, such that the failure resilient stripe spans a group of storage devices that are selected from a plurality of storage devices; ([Dubnicki abstract, 0011-0013, 0033, 0102-0105] Data services provided in a distributed secondary storage system utilizing redundant chains of containers may include global deduplication, dynamic scalability, support for multiple redundancy classes, data location, fast reading and writing of data and rebuilding of data due to node or disk failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. Other features may include the use of modified distributed hash tables, which permit the building of a scalable and failure-resistant system and the extension of duplicate elimination to a global level. Furthermore, each of the chains of data containers corresponding to a supernode may include the same metadata describing data block information such as, for example, hash value and resiliency level, as discussed above.) splitting the data container, located on the first computing device, into two data containers; ([Dubnicki abstract, 0011-0013, 0104-015, Figs. 2, 7] the present invention may provide a plurality of data services by employing splittable, mergable and transferable redundant chains of data containers. The chains and containers may be automatically split and/or merged in response to changes in storage node network configurations and may be stored in erasure coded fragments distributed across different storage nodes. a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 808, at least one chain of containers may be split in response to detecting the addition of active storage nodes. For example, one or more chains of containers may be split as described above with respect to rows 702 and 710 in FIG. 7. It should be understood that the splitting may comprise splitting one or more data containers 628 and/or splitting one or more data container/synchrun chains 636. For example, splitting a chain of data containers may comprise separating at least one data container from the chain of containers. In addition, the metadata may be referenced during container chain splitting to permit, for example, the maintenance of a desired redundancy level or to conduct load balancing in response to one or more added nodes. In addition, it should also be noted that automatic splitting may comprise extending at least one prefix of content addresses to generate new supernodes or subsets of storage nodes, for example, as described above with respect to FIG. 7,) and transferring one or both of the two data containers to a second computing device ([Dubnicki 0013, 0084, 0102-0105, Figs. 7, 8] and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Dubnicki does not explicitly disclose wherein the data container determines which storage devices are used to build the failure resilient stripe.
Lee teaches wherein the data container determines which storage devices are used to build the failure resilient stripe ([Lee 0089, 0095, 0097, 0279, 0284, Figs. 15, 20] Data is laid out or distributed across multiple storage nodes in data fragments or stripes that support data recovery in some embodiments. Storage capacity of each storage node 150 is broadcast, and influences decisions of how to stripe the data. For maximum storage efficiency, an embodiment can self-configure as wide as possible in the stripe, subject to a predetermined requirement of continued operation with loss of up to one, or up to two, non-volatile solid state storage 152 units or storage nodes 150 within the chassis. FIG. 20 depicts an embodiment of a storage system forming data stripes and writing data stripes, using resources in resiliency groups. Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment. The storage resources in each storage resources resiliency group 1912 are performing the action 2004, to write a data stripe. Each data stripe is communicated from the computing zone 1906, where formed, to the storage zone 1910, where written. ).
Dubnicki and Lee are analogous art because they are from the same field of endeavor in storage devices. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, having the teaching of Dubnicki and Lee before him or her to modify the system of Dubnicki to include the resiliency group stripe of Lee, thereafter the system is connected to resiliency group stripe. The suggestion and/or motivation for doing so would be obtaining the advantage of allowing the system have more system survivability when experiencing failure by adding more resiliency as suggested by Lee. It is known to combine prior art elements according to known methods to yield predictable results Therefore, it would have been obvious to combine Dubnicki with Lee to obtain the invention as specified in the instant application claims.
Referring to claim 32, Dubnicki in view of Lee teaches
The method of claim 31, wherein the first computing device is an element of a computing device ([Dubnicki 0013, Fig. 3] a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures.).
Referring to claim 35, Dubnicki in view of Lee teaches
The method of claim 31, wherein the method comprises: selecting a most recently added storage device of the plurality of storage devices for a new failure resilient stripe; and building the new failure resilient stripe ([Dubnicki 0102-0105, Fig. 8] At step 806, an addition of active storage nodes to the storage node network may be detected by one or more storage nodes. For example, an explicit addition or removal of one or more storage nodes may be detected by a peer component by receiving an administration command indicating the additions and/or removals. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system. Thus, generation of new supernodes and data distribution between them permits effective utilization of storage nodes in the network such that the storage of data is diversified, thereby providing robustness against one or more node failures.).
Referring to claim 36, Dubnicki teaches
A method comprising: forming a group of storage devices, on a first computing device, ([Dubnicki abstract, 0011-0013, Figs. 2] distributing data blocks to different data containers located in a plurality of different physical storage nodes in a node network to generate redundant chains of data containers in the nodes) by selecting storage devices from a plurality of storage devices according to when the storage devices were added to the plurality of storage devices; ([Dubnicki 0102-0105, Fig. 8] At step 806, an addition of active storage nodes to the storage node network may be detected by one or more storage nodes. For example, an explicit addition or removal of one or more storage nodes may be detected by a peer component by receiving an administration command indicating the additions and/or removals. t step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system. Thus, generation of new supernodes and data distribution between them permits effective utilization of storage nodes in the network such that the storage of data is diversified, thereby providing robustness against one or more node failures.) building a failure resilient stripe that spans the group of storage devices, via a data container located on the first computing device; ([Dubnicki abstract, 0011-0013, 0033, 0102-0105] Data services provided in a distributed secondary storage system utilizing redundant chains of containers may include global deduplication, dynamic scalability, support for multiple redundancy classes, data location, fast reading and writing of data and rebuilding of data due to node or disk failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. Other features may include the use of modified distributed hash tables, which permit the building of a scalable and failure-resistant system and the extension of duplicate elimination to a global level. Furthermore, each of the chains of data containers corresponding to a supernode may include the same metadata describing data block information such as, for example, hash value and resiliency level, as discussed above.) and splitting the data container into two data containers ([Dubnicki abstract, 0011-0013, 0104-015, Figs. 2, 7] the present invention may provide a plurality of data services by employing splittable, mergable and transferable redundant chains of data containers. The chains and containers may be automatically split and/or merged in response to changes in storage node network configurations and may be stored in erasure coded fragments distributed across different storage nodes. a storage server configured to detect an addition of active storage nodes to the network, to automatically split at least one chain of containers on said storage medium in response to detecting the addition, and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 808, at least one chain of containers may be split in response to detecting the addition of active storage nodes. For example, one or more chains of containers may be split as described above with respect to rows 702 and 710 in FIG. 7. It should be understood that the splitting may comprise splitting one or more data containers 628 and/or splitting one or more data container/synchrun chains 636. For example, splitting a chain of data containers may comprise separating at least one data container from the chain of containers. In addition, the metadata may be referenced during container chain splitting to permit, for example, the maintenance of a desired redundancy level or to conduct load balancing in response to one or more added nodes. In addition, it should also be noted that automatic splitting may comprise extending at least one prefix of content addresses to generate new supernodes or subsets of storage nodes, for example, as described above with respect to FIG. 7,).
Dubnicki does not explicitly disclose wherein the data container determines which storage devices are used to build the failure resilient stripe.
Lee teaches wherein the data container determines which storage devices are used to build the failure resilient stripe ([Lee 0089, 0095, 0097, 0279, 0284, Figs. 15, 20] Data is laid out or distributed across multiple storage nodes in data fragments or stripes that support data recovery in some embodiments. Storage capacity of each storage node 150 is broadcast, and influences decisions of how to stripe the data. For maximum storage efficiency, an embodiment can self-configure as wide as possible in the stripe, subject to a predetermined requirement of continued operation with loss of up to one, or up to two, non-volatile solid state storage 152 units or storage nodes 150 within the chassis. FIG. 20 depicts an embodiment of a storage system forming data stripes and writing data stripes, using resources in resiliency groups. Data is striped across multiple units of non-volatile solid state storage 152, which may include or be different from the non-volatile solid state storage 152 having the authority 168 for a particular data segment. The storage resources in each storage resources resiliency group 1912 are performing the action 2004, to write a data stripe. Each data stripe is communicated from the computing zone 1906, where formed, to the storage zone 1910, where written. ).
Dubnicki and Lee are analogous art because they are from the same field of endeavor in storage devices. Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art, having the teaching of Dubnicki and Lee before him or her to modify the system of Dubnicki to include the resiliency group stripe of Lee, thereafter the system is connected to resiliency group stripe. The suggestion and/or motivation for doing so would be obtaining the advantage of allowing the system have more system survivability when experiencing failure by adding more resiliency as suggested by Lee. It is known to combine prior art elements according to known methods to yield predictable results Therefore, it would have been obvious to combine Dubnicki with Lee to obtain the invention as specified in the instant application claims.
Referring to claim 37, Dubnicki in view of Lee teaches
The method of claim 36, wherein the method comprises transferring the data container to a second computing device ([Dubnicki 0013, 0084, 0102-0105, Figs. 7, 8] and to transfer at least a portion of data split from the at least one chain of containers to a different storage node to enhance system robustness against node failures. At step 810, at least a portion of data split from at least one chain of container may be transferred from one of storage node to another storage node to enhance system robustness against node failures. For example, as discussed above with respect to FIG. 7, data block fragments stored in containers of a chain of SCCs may be split and distributed to different supernodes. As stated above, different supernodes may include different storage node components; as such, a transfer from one supernode or subset of nodes to another supernode or subset of nodes may comprise a transfer between different storage nodes. As discussed above, the split may be performed in response to an addition of new storage nodes to the secondary storage system.).
Referring to claim 38, Dubnicki in view of Lee teaches
The method of claim 36, wherein the first computing device comprise a frontend and a backend ([Dubnicki 0031] As discussed herein below, exemplary embodiments of the present invention include commercial storage systems that comprise a backend architectured as a grid of storage nodes. The front-end may comprise a layer of access nodes scaled for performance, which may be implemented using a standard file system interface, such as, for example, network file system (NFS) or common internet file system (CIFS) protocols, as understood by those of ordinary skill in the art. The present principles disclosed herein are primarily directed to the backend portion of secondary storage systems, which may be based on content addressable storage.).
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 FRANCISCO A GRULLON whose telephone number is (571)272-8318. The examiner can normally be reached Monday - Friday, 9-5.
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, Hosain Alam can be reached at (571)272-3978. 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.
/FRANCISCO A GRULLON/Primary Examiner, Art Unit 2132