DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
MPEP § 804, subsection I.B.1 states:
“A complete response to a nonstatutory double patenting (NSDP) rejection is either a reply by applicant showing that the claims subject to the rejection are patentably distinct from the reference claims, or the filing of a terminal disclaimer in accordance with 37 CFR 1.321 in the pending application(s) with a reply to the Office action (see MPEP § 1490 for a discussion of terminal disclaimers). Such a response is required even when the nonstatutory double patenting rejection is provisional.
As filing a terminal disclaimer, or filing a showing that the claims subject to the rejection are patentably distinct from the reference application’s claims, is necessary for further consideration of the rejection of the claims, such a filing should not be held in abeyance. Only compliance with objections or requirements as to form not necessary for further consideration of the claims may be held in abeyance until allowable subject matter is indicated. Replies with an omission should be treated as provided in MPEP § 714.03.” (emphasis added)
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Rejections based on US Patent No. US 11,467,913 B1 (‘913):
Claims 15 and 18-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 8 and 10-11 of ‘913. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 8 and 10-11 of ‘913 contain every element of claims 15 and 18-20 of the instant application and as such anticipates claims 15 and 18-20 of the instant application.
"A later patent claim is not patentably distinct from an earlier patent claim if the later claim is obvious over, or anticipated by, the earlier claim. In re Longi, 759 F.2d at 896,225 USPQ at 651 (affirming a holding of obviousness-type double patenting because the claims at issue were obvious over claims in four prior art patents); In re Berq, 140 F.3d at 1437, 46 USPQ2d at 1233 (Fed. Cir. 1998) (affirming a holding of obviousness-type double patenting where a patent application claim to a genus is anticipated by a patent claim to a species within that genus). " ELI LILLY AND COMPANY v BARR LABORATORIES, INC., United States Court of Appeals for the Federal Circuit, ON PETITION FOR REHEARING EN BANC (DECIDED: May 30, 2001).
Instant Application
‘913
15. A non-transitory computer-readable storage medium having instructions thereupon which, when executed by a processing device, cause the processing device to:
receive, from a coordinating agent from a plurality of distributed agents of a storage system, corresponding confirmations that the plurality of distributed agents are in a snapshot creation mode, the coordinating agent comprising software stored in the memory for execution by the processing device;
provide, to the plurality of distributed agents, a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot is recorded;
and commit the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:
recording, by a snapshot director in a storage system, intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to receiving responses from a plurality of distributed agents of the storage system that all of the plurality of distributed agents are in a snapshot creation mode;
responding, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of distributed agents regarding one or more I/O (input/output) operations, after the intent to create the snapshot is recorded, wherein the plurality of distributed agents are data structures stored within memory of the storage system and wherein multiple distributed agents of the plurality of distributed agents are configured to have allocated differing amounts of the memory; creating the snapshot using the existing snapshot copy identifier; and notifying the plurality of distributed agents,
committing the snapshot and exiting the snapshot creation mode, responsive to confirmation from the plurality of distributed agents that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
18. The non-transitory computer-readable storage medium of claim 15, wherein the processing device is further to:
communicate to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
10. The computer readable media of claim 8, wherein the method further comprises: receiving a request to create the snapshot of the storage system; and
communicating a snapshot precommitment to each of the plurality of distributed agents that indicates the storage system is entering the snapshot creation mode.
19. The non-transitory computer-readable storage medium of claim 15, wherein the processing device is further to:
direct the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
11. The computer readable media of claim 8, wherein the method further comprises:
directing, after the recording the intent to create the snapshot, that each of the plurality of distributed agents complete service, using the existing snapshot copy identifier, to all of the in-flight I/O operations that started before the intent to create the snapshot was recorded.
[Examiner note: recording intent to create a snapshot is interpreted as “entering the snapshot creation mode”]
20. The non-transitory computer-readable storage medium of claim 19, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
8… responsive to confirmation from the plurality of distributed agents that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
[Examiner note: recording intent to create a snapshot is interpreted as “entering the snapshot creation mode”]
Claims 1-2, 4-6, 8 and 11-13 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 8, 10-11, 14, 16 and 18 of ‘913. Although the claims at issue are not identical, they are not patentably distinct from each other because:
Claims 14, 16 and 18 of ‘913 recite a system configured to perform all of the same limitations of the method of claims 1-2 and 4-6 of the instant application, but are directed to a different statutory class.
Claims 8 and 10-11 of ‘913 recite a non-transitory computer readable medium having instructions, which when executed by a processor, cause a processor to perform all of the functional limitations that the system of claims 8 and 11-13 of the instant application is configured to, but is directed to a different statutory class.
Instant Application
‘913
1. A method, comprising:
receiving, by a coordinating agent from a plurality of distributed agents of a storage system, confirmations that the plurality of distributed agents are in a snapshot creation mode;
providing, to the plurality of distributed agents, a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot is recorded; and
committing the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
14. A storage system, comprising: a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities;
one authority of the plurality of authorities configured to act as a snapshot director and record intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to a first confirmation that all of the plurality of authorities are in a snapshot creation mode, wherein the snapshot director is configured to:
respond, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of authorities regarding one or more I/O (input/output) operations, after the intent to create the snapshot is recorded, wherein the plurality of authorities are data structures stored within memory of the storage system and wherein multiple authorities of the plurality of authorities are configured to have allocated differing amounts of the memory; create the snapshot using the existing snapshot copy identifier; and
commit the snapshot and exit the snapshot creation mode, responsive to a second confirmation from the plurality of authorities that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
2. The method of claim 1, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes.
14…a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities; one authority of the plurality of authorities configured to act as a snapshot director.
4. The method of claim 1, further comprising: communicating to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
16. The storage system of claim 14, wherein the storage system is configured to receive a request to create the snapshot of the storage system contents and wherein the snapshot director is further configured to communicate a snapshot precommitment to the plurality of authorities that indicates the storage system is entering the snapshot creation mode, responsive to receiving the request to create the snapshot.
5. The method of claim 1, further comprising: directing the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
18. The storage system of claim 14, wherein the snapshot director is further configured to: direct, after recording the intent to create the snapshot, that the plurality of authorities complete service, using the existing snapshot copy identifier, to all of the in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier, and then respond with the second confirmation.
[Examiner note: recording intent to create a snapshot is interpreted as “entering the snapshot creation mode”]
6. The method of claim 5, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
14… and commit the snapshot and exit the snapshot creation mode, responsive to a second confirmation from the plurality of authorities that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
8. A storage system, comprising:
a memory; and a processing device, operatively coupled to the memory, configured to:
receive, from a coordinating agent from a plurality of distributed agents of the storage system, corresponding confirmations that the plurality of distributed agents are in a snapshot creation mode, the coordinating agent comprising software stored in the memory for execution by the processing device;
provide, to the plurality of distributed agents, a new snapshot copy identifier for a snapshot; and
commit the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:
recording, by a snapshot director in a storage system, intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to receiving responses from a plurality of distributed agents of the storage system that all of the plurality of distributed agents are in a snapshot creation mode;
responding, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of distributed agents regarding one or more I/O (input/output) operations, after the intent to create the snapshot is recorded, wherein the plurality of distributed agents are data structures stored within memory of the storage system and wherein multiple distributed agents of the plurality of distributed agents are configured to have allocated differing amounts of the memory; creating the snapshot using the existing snapshot copy identifier; and notifying the plurality of distributed agents,
committing the snapshot and exiting the snapshot creation mode, responsive to confirmation from the plurality of distributed agents that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
11. The storage system of claim 8, wherein the processing device is further configured to:
communicate to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
10. The computer readable media of claim 8, wherein the method further comprises: receiving a request to create the snapshot of the storage system; and communicating a snapshot precommitment to each of the plurality of distributed agents that indicates the storage system is entering the snapshot creation mode.
12. The storage system of claim 8, wherein the processing device is further configured to: direct the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
11. The computer readable media of claim 8, wherein the method further comprises: directing, after the recording the intent to create the snapshot, that each of the plurality of distributed agents complete service, using the existing snapshot copy identifier, to all of the in-flight I/O operations that started before the intent to create the snapshot was recorded.
13. The storage system of claim 12, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
8…committing the snapshot and exiting the snapshot creation mode, responsive to confirmation from the plurality of distributed agents that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
Modifying the statutory class of the claims of ‘913 to comport with a different statutory class, including creating a method performing the functions of the system claimed by ‘913, or creating a system with a processor that implements the functions that the non-transitory computer readable medium having instructions thereupon which, when executed by a processing device, cause the processing device to perform claimed by ‘913, would have been an obvious variation to one of ordinary skill in the art.
Claims 3, 8-10 and 15-17 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 14 of ‘913 in view of US Patent Application Publication No. US 2012/0011100 A1 (Yamane).
Instant Application
‘913
Yamane
3. The method of claim 1 wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
Claim 1 of the instant application is rejected in view of Claim 14 of ‘914 as seen in the prior rejections.
A user terminal (9) external to the coordinator node (3) (particular agent of the plurality of distributed agents)and participant nodes (7a-7b) or transaction coordinator nodes (5) can send a request (remote procedure call – interpreted in congruence with Applicant’s specification that indicates external requests may be viewed as remote procedure calls [Applicant’s specification 0138]) to create a snapshot to the coordinator node (3), which then begins the process of creating the snapshot including sending the snapshot requests to all of the participant nodes (7) (indicating intent to create a snapshot) [0040-0041] [0049] [0071]).
8. A storage system, comprising:
a memory; and
a processing device, operatively coupled to the memory, configured to:
receive, by a coordinating agent from a plurality of distributed agents of the storage system, corresponding confirmations that the plurality of distributed agents are in a snapshot creation mode, the coordinating agent comprising software stored in the memory for execution by the processing device
provide, to the plurality of distributed agents, a new snapshot copy identifier for a snapshot; and
commit the snapshot and exiting the snapshot creation mode.
14. A storage system, comprising:
a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities; one authority of the plurality of authorities configured to act as a snapshot director and record intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to a first confirmation that all of the plurality of authorities are in a snapshot creation mode, wherein the snapshot director is configured to:
respond, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of authorities regarding one or more I/O (input/output) operations, after the intent to create the snapshot is recorded, wherein the plurality of authorities are data structures stored within memory of the storage system and wherein multiple authorities of the plurality of authorities are configured to have allocated differing amounts of the memory; create the snapshot using the existing snapshot copy identifier;
and commit the snapshot and exit the snapshot creation mode, responsive to a second confirmation from the plurality of authorities that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
The user terminal, snapshot coordinator, and participant nodes each include processors (2503), memory (2501), and an OS as well as any necessary application programs for performing the various disclosed functions, such as capturing a snapshot, which are installed on an HDD (2505) [Fig. 24].
9. The storage system of claim 8, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes.
14… a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities; one authority of the plurality of authorities configured to act as a snapshot director and record intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to a first confirmation that all of the plurality of authorities are in a snapshot creation mode
10. The storage system of claim 8, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
A user terminal (9) external to the coordinator node (3) (particular agent of the plurality of distributed agents)and participant nodes (7a-7b) or transaction coordinator nodes (5) can send a request (remote procedure call – interpreted in congruence with Applicant’s specification that indicates external requests may be viewed as remote procedure calls [Applicant’s specification 0138]) to create a snapshot to the coordinator node (3), which then begins the process of creating the snapshot including sending the snapshot requests to all of the participant nodes (7) (indicating intent to create a snapshot) [0040-0041] [0049] [0071]).
15. A non-transitory computer-readable storage medium having instructions thereupon which, when executed by a processing device, cause the processing device to:
receive, from a coordinating agent from a plurality of distributed agents of a storage system, confirmations that the plurality of distributed agents are in a snapshot creation mode, the coordinating agent comprising software stored in the memory for execution by the processing device;
provide, to the plurality of distributed agents, a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot is recorded;
And commit the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
14. A storage system, comprising:
a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities; one authority of the plurality of authorities configured to act as a snapshot director and record intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier, responsive to a first confirmation that all of the plurality of authorities are in a snapshot creation mode, wherein the snapshot director is configured to:
respond, with a new snapshot copy identifier that replaces the existing snapshot copy identifier, to one or more inquiries from the plurality of authorities regarding one or more I/O (input/output) operations, after the intent to create the snapshot is recorded, wherein the plurality of authorities are data structures stored within memory of the storage system and wherein multiple authorities of the plurality of authorities are configured to have allocated differing amounts of the memory; create the snapshot using the existing snapshot copy identifier;
and commit the snapshot and exit the snapshot creation mode, responsive to a second confirmation from the plurality of authorities that service is complete for all in-flight I/O operations that started before the intent to create the snapshot was recorded or that are associated with the existing snapshot copy identifier.
The user terminal, snapshot coordinator, and participant nodes each include processors (2503), memory (2501), and an OS as well as any necessary application programs for performing the various disclosed functions, such as capturing a snapshot, which are installed on an HDD (2505) [Fig. 24].
16. The non-transitory computer-readable storage medium of claim 15, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes.
14… a plurality of authorities acting as distributed agents; a plurality of storage nodes, each having one or more authorities of the plurality of authorities; one authority of the plurality of authorities configured to act as a snapshot director and record intent to create a snapshot of storage system contents associated with an existing snapshot copy identifier,
17. The non-transitory computer-readable storage medium of claim 15, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
A user terminal (9) external to the coordinator node (3) (particular agent of the plurality of distributed agents)and participant nodes (7a-7b) or transaction coordinator nodes (5) can send a request (remote procedure call – interpreted in congruence with Applicant’s specification that indicates external requests may be viewed as remote procedure calls [Applicant’s specification 0138]) to create a snapshot to the coordinator node (3), which then begins the process of creating the snapshot including sending the snapshot requests to all of the participant nodes (7) (indicating intent to create a snapshot) [0040-0041] [0049] [0071]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the process of creating a snapshot by the system including the snapshot director as claimed in claim 14 of ‘913 to include being in response to receiving an external request to create a snapshot from a user terminal sent to a snapshot coordinator as taught by Yamane because it only would have required the combination of known elements according to known methods to yield predictable results. One of ordinary skill in the art could have combined the process of creating a snapshot in the system as claimed in claim 14 of ‘913 by known methods to include being in response to receiving an external request at the snapshot coordinator as taught by Yamane. In combination, each function would continue to have the same function as it did separately. For example, the process of creating a snapshot by the snapshot director taught by claim 14 of ‘913 would continue to function the same, but would simply be performed in response to the external request to instruct a coordinator to take a snapshot as taught by Yamane (i.e. the same function as each did separately). Additionally, the results would have been predictable and the claimed invention would have been obvious to one of ordinary skill in the art.
It also would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the storage nodes as claimed in claim 14 of ‘913 to include being implemented by processors and non-transitory computer readable memory with instructions (as claimed in claims 8 and 15 of the instant application) for performing the storage node’s functions (such as for taking a snapshot) as taught by Yamane because it would have only required the combination of known elements according to known methods to yield predictable results. One of ordinary skill in the art could have combined the storage nodes as taught by claim 14 of ‘913 with the processors and non-transitory computer readable memory with instructions for performing the storage node functions as taught by Yamane. In combination, each element would continue to have the same function as it did separately. For example, the storage nodes would continue to perform the functions of the authorities as claimed by claim 14 of ‘913, and the processor and non-transitory computer readable memory with instructions for performing the storage node functions would continue to perform storage node functions as taught by Yamane (i.e., the same function as each did separately). Additionally, the results would have been predictable and the claimed invention would have been obvious to one of ordinary skill in the art.
Claims 7 and 14 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 8 and 14 of ‘913 as applied in the corresponding rejection above in view of US Patent Application Publication No. US 2016/0041869 A1 (Davis).
Instant Application
‘913
Davis
7. The method of claim 1
wherein the plurality of distributed agents are authorities that control erasure coding of data stored in the storage system.
Claim 14 as applied in the corresponding rejection above.
A storage cluster distributes data across storage nodes [0003]. The storage nodes break up and reassemble write data according to an erasure coding. The data is sharded across the non-volatile memory of the storage nodes (150) according to the erasure code. The authority may be the owning node that has the right to update the metadata owning the data striped across the storage nodes [0031] [0033-0035].
14. The storage system of claim 8
wherein the plurality of distributed agents are authorities that control erasure coding of data stored in the storage system.
Claim 8 as applied in the corresponding rejection above.
A storage cluster distributes data across storage nodes [0003]. The storage nodes break up and reassemble write data according to an erasure coding. The data is sharded across the non-volatile memory of the storage nodes (150) according to the erasure code. The authority may be the owning node that has the right to update the metadata owning the data striped across the storage nodes [0031] [0033-0035].
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the plurality of distributed authorities acting as agents in the storage system as claimed by claims 8 and 14 of ‘913 to include performing erasure coding on the data and striping it across distributed storage across a plurality of nodes hosting the authorities in shards as taught by Davis.
One of ordinary skill in the art would have been motivated to make this modification because erasure coding provides data protection because the data is expanded and encoded with redundant pieces and stored across a set of different locations so that data can be recovered from remaining locations in the event that some of the data is lost, and can tolerate the failure of multiple storage nodes as taught by Davis in [0003] [0018] [0035].
Rejections based on U.S. Patent No. US 12,204,413 B2 (‘413):
Claims 1-6, 8-14 and 15-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-5 of U.S. Patent No. US 12,204,413 B2 (‘413) in view of Yamane.
Instant Application
‘413
Yamane
1. A method, comprising:
by a coordinating agent
receiving, by a coordinating agent from a plurality from a plurality of distributed agents of a storage system, confirmations that the plurality of distributed agents are in a snapshot creation mode;
providing, to the plurality of distributed agents, a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot is recorded; and
committing the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
1. A method, comprising:
…by a coordinating agent…
recording, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, an intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot; switching to a new snapshot copy identifier; receiving, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot; responding to the corresponding requests with the new snapshot copy identifier;
and committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
A snapshot coordinator transmits a request to all participant nodes for a snapshot [0071]. Each node sends a list of transactions in progress to the snapshot coordinator (14) [Fig. 9A] – the snapshot coordinator receives a list from all nodes before progressing with the snapshot [0073] (confirmation that the plurality of distributed agents are in a snapshot creation mode). The list may be used to select which transactions are included in the snapshot. Those not included are written with a copy-on-write procedure to a next snapshot [Fig. 10] [Fig. 19] [Fig. 14] [Fig. 1.
2. The method of claim 1, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes.
2. The method of claim 1, wherein the one or more storage nodes have the distributed agents distributed among the one or more storage nodes.
3. The method of claim 1, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
3. The method of claim 1, wherein the recording of the intent to create the snapshot is in response to receiving a remote procedure call.
(where the intent to create the snapshot is recorded by the coordinating agent as claimed in claim 1)
4. The method of claim 1, further comprising:
communicating to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
4. The method of claim 1, further comprising: communicating to each of the distributed agents that the storage system is entering the snapshot creation mode.
5. The method of claim 1, further comprising:
directing the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
5. The method of claim 1, further comprising: directing each of the distributed agents to complete service, using the existing snapshot copy identifier, to all of the I/O operations that started before recording the intent to create the snapshot.
6. The method of claim 5, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
1… and committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
8. A storage system, comprising:
a memory; and
a processing device, operatively coupled to the memory, configured to:
receive, by a coordinating agent from a plurality of distributed agents of the storage system, corresponding confirmations that the plurality of distributed agents are in a snapshot creation mode, the snapshot coordinating agent comprising software stored in the memory for execution by the processing device;
provide, to the plurality of distributed agents, a new snapshot copy identifier for a snapshot; and
commit the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
1. A method, comprising:
recording, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, an intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot; switching to a new snapshot copy identifier; receiving, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot; responding to the corresponding requests with the new snapshot copy identifier; and
committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
The user terminal, snapshot coordinator, and participant nodes each include processors (2503), memory (2501), and an OS as well as any necessary application programs for performing the various disclosed functions, which are installed on an HDD (2505) [Fig. 24].
A snapshot coordinator transmits a request to all participant nodes for a snapshot [0071]. Each node sends a list of transactions in progress to the snapshot coordinator (14) [Fig. 9A] – the snapshot coordinator receives a list from all nodes before progressing with the snapshot [0073] (confirmation that the plurality of distributed agents are in a snapshot creation mode). The list may be used to select which transactions are included in the snapshot. Those not included are written with a copy-on-write procedure to a next snapshot [Fig. 10] [Fig. 19] [Fig. 14] [Fig. 1.
9. The storage system of claim 8, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes
2. The method of claim 1, wherein the one or more storage nodes have the distributed agents distributed among the one or more storage nodes.
10. The storage system of claim 8, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
3. The method of claim 1, wherein the recording of the intent to create the snapshot is in response to receiving a remote procedure call.
(where the intent to create the snapshot is recorded by the coordinating agent as claimed in claim 1)
11. The storage system of claim 8, wherein the processing device is further configured to: communicate to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
4. The method of claim 1, further comprising: communicating to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
12. The storage system of claim 8, wherein the processing device is further configured to: direct the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
5. The method of claim 1, further comprising: directing the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using an existing snapshot copy identifier.
13. The storage system of claim 12, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
1…and committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
15. A non-transitory computer-readable storage medium having instructions thereupon which, when executed by a processing device, cause the processing device to:
receive, from a coordinating agent from a plurality of distributed agents of a storage system, corresponding confirmations that the plurality of distributed agents are in a snapshot creation mode, the coordinating agent comprising software stored in the memory for execution by the processing device;
provide, to the plurality of distributed agents, a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot is recorded;
and commit the snapshot using an existing snapshot copy identifier and exiting the snapshot creation mode.
1. A method, comprising:
recording, by a coordinating agent in a data structure stored in memory of one or more storage nodes of a storage system, an intent to create a snapshot of contents of the storage system associated with an existing snapshot copy identifier, wherein the data structure stored in the memory is monitored by distributed agents of the storage system to identify the intent to create the snapshot; switching to a new snapshot copy identifier; receiving, by the coordinating agent, corresponding requests for a snapshot copy identifier from the distributed agents of the storage system performing input/output (I/O) operations after recording the intent to create the snapshot; responding to the corresponding requests with the new snapshot copy identifier; and
committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
A user terminal, snapshot coordinator, and participant nodes each include processors (2503), memory (2501), and an OS as well as any necessary application programs for performing the various disclosed functions for capturing a snapshot, which are installed on an HDD (2505) [Fig. 24].
A snapshot coordinator transmits a request to all participant nodes for a snapshot [0071]. Each node sends a list of transactions in progress to the snapshot coordinator (14) [Fig. 9A] – the snapshot coordinator receives a list from all nodes before progressing with the snapshot [0073] (confirmation that the plurality of distributed agents are in a snapshot creation mode). The list may be used to select which transactions are included in the snapshot. Those not included are written with a copy-on-write procedure to a next snapshot [Fig. 10] [Fig. 19] [Fig. 14] [Fig. 1.
16. The non-transitory computer-readable storage medium of claim 15, wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes.
2. The method of claim 1, wherein the one or more storage nodes have the distributed agents distributed among the one or more storage nodes.
17. The non-transitory computer-readable storage medium of claim 15, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot.
3. The method of claim 1, wherein the recording of the intent to create the snapshot is in response to receiving a remote procedure call.
(where the intent to create the snapshot is recorded by the coordinating agent as claimed in claim 1)
18. The non-transitory computer-readable storage medium of claim 15, wherein the processing device is further to: communicate to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
4. The method of claim 1, further comprising: communicating to the plurality of distributed agents that the storage system is entering the snapshot creation mode.
19. The non-transitory computer-readable storage medium of claim 15, wherein the processing device is further to: direct the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the existing snapshot copy identifier.
5. The method of claim 1, further comprising: directing the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using an existing snapshot copy identifier.
20. The non-transitory computer-readable storage medium of claim 19, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations.
1…and committing the snapshot and exiting a snapshot creation mode upon receiving, by the coordinating agent, responses from each distributed agent of the storage system that service is complete for all I/O operations that started before recording the intent to create the snapshot.
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the invention claimed in ‘314 to include the coordinating agent waiting for confirmation from the plurality of snapshot participant nodes (distributed agents) that they are in the snapshot creation mode by receiving a list of transactions in progress, to determine which transactions are to be included in the current snapshot and which should be written with a copy-on-write procedure to a next snapshot as taught by Yamane.
One of ordinary skill in the art would have been motivated to make this modification because it makes it possible to obtain a consistent snapshot at the final snapshot time, as taught by Yamane in [0084].
It also would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the storage nodes as claimed in claim 1 of ‘413 to include being implemented by processors and non-transitory computer readable memory with instructions (as claimed in claims 8 and 15 of the instant application) for performing the storage node’s functions (such as for taking a snapshot) as taught by Yamane because it would have only required the combination of known elements according to known methods to yield predictable results. One of ordinary skill in the art could have combined the storage nodes as taught by claim 1 of ‘413 with the processors and non-transitory computer readable memory with instructions for performing the storage node functions as taught by Yamane. In combination, each element would continue to have the same function as it did separately. For example, the storage nodes would continue to perform the functions of the authorities as claimed by claim 1 of ‘413, and the processor and non-transitory computer readable memory with instructions for performing the storage node functions would continue to perform storage node functions as taught by Yamane (i.e., the same function as each did separately). Additionally, the results would have been predictable and the claimed invention would have been obvious to one of ordinary skill in the art.
Claims 7 and 14 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1 of ‘413 in view of Yamane as applied in the corresponding rejection above in further view of US Patent Application Publication No. US 2016/0041869 A1 (Davis).
Instant Application
‘413
Yamane
Davis
7. The method of claim 1
wherein the plurality of distributed agents are authorities that control erasure coding of data stored in the storage system.
Claim 1 as applied in the corresponding rejection above.
As applied in the corresponding rejection above.
A storage cluster distributes data across storage nodes [0003]. The storage nodes break up and reassemble write data according to an erasure coding. The data is sharded across the non-volatile memory of the storage nodes (150) according to the erasure code. The authority may be the owning node that has the right to update the metadata owning the data striped across the storage nodes [0031] [0033-0035].
14. The storage system of claim 8
wherein the plurality of distributed agents are authorities that control erasure coding of data stored in the storage system.
Claim 1 as applied in the corresponding rejection above.
As applied in the corresponding rejection above.
A storage cluster distributes data across storage nodes [0003]. The storage nodes break up and reassemble write data according to an erasure coding. The data is sharded across the non-volatile memory of the storage nodes (150) according to the erasure code. The authority may be the owning node that has the right to update the metadata owning the data striped across the storage nodes [0031] [0033-0035].
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the plurality of distributed agents in the storage system including storage nodes as claimed by claims 1 of ‘413 to include performing erasure coding on the data and striping it across distributed storage across a plurality of nodes hosting the authorities in shards as taught by Davis.
One of ordinary skill in the art would have been motivated to make this modification because erasure coding provides data protection because the data is expanded and encoded with redundant pieces and stored across a set of different locations so that data can be recovered from remaining locations in the event that some of the data is lost, and can tolerate the failure of multiple storage nodes as taught by Davis in [0003] [0018] [0035].
Claim Objections
Claims 8-20 are objected to because of the following informalities:
Claims 8 and 15 recite “a processing device, configured to:” and “the processing device to:” both “exiting the snapshot creation mode”, which as best understood by the Examiner in light of the specification should be amended to recite, “exit[[ing]] the snapshot creation mode”.
Claims 9-14 and 16-20 are objected to for failing to correct the deficiencies of a base claim from which they depend.
Appropriate correction is required.
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.
Claims 1-6, 8-13 and 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. US 2012/0011100 A1 (Yamane) in view of US Patent No. US 8,401,997 B1 (Tawri) in further view of US Patent Application Publication No. US 2020/0012637 A1 (Strauss).
Regarding claim 1 and analogous claims 8 and 15:
Yamane discloses, A method, comprising (by disclosing a method for creating snapshots in a distributed data system that are consistent [0007] [0049-0061] [Fig. 4]. The distributed data storage system includes a plurality of nodes, including a user terminal (9), coordinator node (3) and participant node (7). The nodes may each be implemented with a memory (2501), CPU processor (2503), HDD (2505), and an operating system and applications stored in the HDD (non-transitory computer readable medium) for carrying out the disclosed functions [0133]) receiving, by a coordinating agent from a plurality of distributed agents of a storage system, confirmations that the plurality of distributed agents are in a snapshot creation mode; (by disclosing a snapshot coordinator (coordinating agent) transmits a request (S3) to all participant nodes for a snapshot of a storage system (intent to create a snapshot) [0087] [Fig. 10]. Each snapshot participant (plurality of distributed agents) sends a list of transactions in progress (confirmation that the plurality of distributed agents are in a snapshot creation mode (i.e. or else they would not have sent the list)) to the snapshot coordinator (S19) [Fig. 10]. The snapshot coordinator receives a list from all nodes before progressing with the snapshot [0093]) and committing the snapshot for the in-progress snapshot and exiting a snapshot creation mode (by disclosing that the snapshot coordinator receives the snapshot completion message from all snapshot participants (S71) [0117] after all of the selected I/O operations have been reflected to the snapshot (S57) [Fig. 19]. Furthermore, after the completion messages have been received and therefore all of the data is reflected (committed) [0056] [Fig. 20] [0107] [0111-0112], the data is available for request by a user and a completion message is sent to a user (S73) (committing the snapshot and exiting the snapshot creation mode) [0117-0118]).
Yamane does not explicitly disclose, but Tawri teaches that a method of indicating an intent to create a snapshot for an existing snapshot copy identifier may including providing a new snapshot copy identifier to be used for input/output operations initiated after an intent to create a snapshot (by teaching that an interval coordinator (snapshot coordinator) may signal the end of an interval (410) (intent to create a snapshot for the current interval associated with a current interval ID (existing snapshot copy identifier) as a way to indicate to a plurality of nodes that the system should finalize the snapshot for the current interval ID [Fig. 4]. The signal for the end of the interval may include the new interval ID. The new interval ID will be used for write operations (470) that were not in-progress before the end of the interval (440) (420), and therefore, the new interval ID is to be used for input/output operations initiated after intent to create a snapshot with the current interval ID (460) [Fig. 4] [Col 4: line 59 – Col 5: line 34] [Col 17: line 65 – Col 18: line 61]), in this way, the snapshot that is ultimately created then is the snapshot using an existing snapshot copy identifier (by teaching that the signal of the end of the current interval and start of the new interval may include the new interval ID, but the current interval that is ending and being finalized (i.e., committed) is the interval associated with the current interval ID (using an existing snapshot copy identifier) [Col 17: line 62 – Col 19: line 7] [Fig. 3] [Fig. 4]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the snapshot creation request taught by Yamane to include the new interval ID (new snapshot copy identifier) as taught by Tawri, and to modify snapshots to use interval identifiers, such as a current interval ID (existing snapshot copy identifier) to indicate and commit writes to a current interval (commit the snapshot using the existing snapshot copy identifier) as taught by Tawri because it would have only required the combination of known elements according to known methods to yield predictable results. For example, Yamane teaches an iterative process where a current snapshot may be committed and transactions received after an intent to create the current snapshot can be reflected to a next snapshot, but does not explicitly disclose that snapshots can be identified with current and new identifiers, or that an intent to create the current snapshot by ending the current interval and include the new identifier for the next interval (new snapshot copy identifier). However, Tawri teaches that snapshots can be identified with current and new identifiers, and that an intent to create the current snapshot by ending the current interval can include the new identifier for the next interval (new snapshot copy identifier). Accordingly, one of ordinary skill in the art could have combined the identifiers taught by Tawri with the snapshots taught by Yamane, and could have included the new identifier as taught by Tawri in the snapshot creation request signaling and end to writes to the current snapshot as taught by Yamane according to known methods, and the results would have been predictable (i.e., the current and next/new snapshots taught by Yamane could be identified with identifiers, and the snapshot request could have been signified with an indication of the new identifier). Therefore, the combination would have been obvious to one of ordinary skill in the art.
Yamane in view of Tawri do not explicitly disclose, but Strauss teaches that indicating the intent to create the snapshot is recorded (by teaching that an access node may restart after a failure (for example, after responding to the prepare message (indicating intent to create a snapshot)). In this case, the access node does not know if there is a snapshot transition in progress or the status of the filesystem, accordingly, the access node may read the superblock for the file system, which is a persistent data structure and includes enough information to inform the access node that a prepare message has been sent (a recorded intent to create the snapshot). For example, the data structure may set a preserve flag (metadata) that directs copy on write to be performed for the filesystem so that the previous epoch (snapshot) and metadata is preserved, (which is called a copy-on-write policy, as it directs new writes to the new snapshot) as well as including an epoch number indicating the current epoch [0044] [0079]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the snapshot process disclosed by Yamane to include recording snapshotting state information into a block as so that an access node (i.e. participant node as taught by Yamane) may resume the snapshot creation process if it starts up after a failure and finds snapshot state information indicative of the coordinator node intending to create a snapshot recorded in a block as taught by Strauss.
22. One of ordinary skill in the art would have been motivated to make this modification because it allows an access node to recover after a failure as taught by Strauss in [0079].
Regarding claim 2 and analogous claims 9 and 16:
The method of claim 1 is made obvious by Yamane in view of Tawri in further view of Strauss (Yamane-Tawri-Strauss).
Yamane further discloses wherein the storage system comprises one or more storage nodes and the plurality of distributed agents are distributed among the one or more storage nodes (by disclosing that a snapshot coordinator (310) is on one storage node (3) and transmits a request to all snapshot participants (71) (plurality of distributed agents), which are on their own storage nodes (7) (distributed among the one or more storage nodes), for a snapshot [0071], as part of a distributed storage system [Fig. 4]).
Regarding claim 3 and analogous claims 10 and 17:
The method of claim 1 is made obvious by Yamane-Tawri-Strauss.
Yamane further discloses, wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot. (by teaching that a user terminal (9) external to the coordinator node (3) and participant nodes (7a-7b) or transaction coordinator nodes (5) can send a request (remote procedure call – interpreted in congruence with Applicant’s specification that indicates external requests may be viewed as remote procedure calls [Applicant’s specification 0138]) to create a snapshot to the coordinator node (3), which then begins the process of creating the snapshot including sending the snapshot requests to all of the participant nodes (7) [0049-0053] [0049] [0087]. The snapshot coordinator node (3) may sometimes also be a participant node (7), but snapshot coordinator node (3) includes the snapshot coordinator (321) and is the note that receives the request to snapshot from the user (9) (wherein the coordinating agent is assigned to a particular agent of the plurality of distributed agents that receives a remote procedure call requesting the snapshot) [Fig. 4] [Fig. 10] [0087]).
Regarding claim 4 and analogous claims 11 and 18:
The method of claim 1 is made obvious by Yamane-Tawri-Strauss.
Yamane further discloses, further comprising: communicating to each of the distributed agents that the storage system is entering the snapshot creation mode (by disclosing that a snapshot coordinator (310) may receive an instruction to create a snapshot (S1) and sends a snapshot request (S3) to all participant nodes (7) (communicating to each of the plurality of distributed agents that the storage system is entering the snapshot creation mode) [Fig. 10] [0087]).
Regarding claim 5 and analogous claims 12 and 19:
The method of claim 1 is made obvious by Yamane-Tawri-Strauss.
Yamane further discloses, further comprising: directing each of the plurality of distributed agents to complete service of pending input/output (I/O) operations that started before entering the snapshot creation mode using the in-progress snapshot (i.e., the existing snapshot copy identifier as taught by Yamane with respect to claim 1) (by disclosing the method started in [Fig. 10] and then completed in [Fig. 19] where each of the snapshot participant nodes complete the I/O for the selected transactions (S57), where the selected transactions are the I/O that started before the snapshot time (S3) and are to be associated with the snapshot file that is being committed (i.e., the existing snapshot copy identifier as taught by Yamane) [0076] [0083] [0116] [0144-0149]. Furthermore, the snapshot participants communicate to the snapshot coordinator that they have finished processing the selected transactions [0078]).
Regarding claim 6 and analogous claims 13 and 20:
The method of claim 5 is made obvious by Yamane-Tawri-Strauss.
Yamane further discloses, wherein the committing the snapshot is responsive to receiving responses from the distributed agents that service is complete for the pending I/O operations (by disclosing that the snapshot coordinator receives the snapshot completion message from all snapshot participants (S71) [0117] after all of the selected I/O operations have been reflected to the snapshot (S57) [Fig. 19]. Furthermore, after the completion messages have been received and therefore all of the data is reflected (committed) [0056] [Fig. 20] [0107] [0111-0112], the data is available for request by a user and a completion message is sent to a user (S73) (committing the snapshot and exiting the snapshot creation mode) [0117-0118]).
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Yamane-Tawri-Strauss in further view of US Patent Application Publication No. US 2016/0041869 A1 (Davis).
Regarding claim 7 and analogous claim 14:
The method of claim 1 is made obvious by Yamane-Tawri-Strauss.
Yamane does not explicitly disclose, but Davis teaches, wherein the plurality of distributed agents are authorities that control erasure coding of data stored in the storage system (by disclosing that a storage cluster distributes data across storage nodes [0003]. The storage nodes break up and reassemble write data according to an erasure coding. The data is sharded across the non-volatile memory of the storage nodes (150) according to the erasure code. The authority may be the owning node that has the right to update the metadata owning the data striped across the storage nodes [0031] [0033-0035].).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the plurality of distributed agents in the storage nodes of the storage system as taught by Yamane in view of Ji to include performing erasure coding on the data and striping it across distributed storage across a plurality of nodes hosting the authorities in shards as taught by Davis.
One of ordinary skill in the art would have been motivated to make this modification because erasure coding provides data protection because the data is expanded and encoded with redundant pieces and stored across a set of different locations so that data can be recovered from remaining locations in the event that some of the data is lost, and can tolerate the failure of multiple storage nodes as taught by Davis in [0003] [0018] [0035].
Response to Arguments/Amendments
The double patenting rejection has been updated to reflect the currently amended claims. The Examiner notes that Applicant did not make a complete response to the double patenting rejection as required by MPEP § 804, subsection I.B.1. However, in the interest of compact and timely prosecution, the Examiner has extended a courtesy to the Applicant by Examining the claims rather than treating the reply as non-responsive according to directives in MPEP § 804, subsection I.B.1.
In response to the amendments to the drawings, the objections to the drawings have been withdrawn.
In response to the amendments to the claims, the previous objections to the claims are withdrawn. However, in response to the amendments to the claims, new objections to claims 8-20 have been made as seen in the corresponding objection section above.
In response to the amendments to the claims, the 35 USC §112(b) and 35 USC §112(a) rejections have been withdrawn.
In response to the amendments to the claims, a new 35 USC §103 rejection has been made using the new combination of Yamane, Tawri, and Strauss. Applicant’s arguments are not directed to any deficiencies in the new combination, and accordingly, are moot. Therefore, the claims have been indicated as allowable.
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 CURTIS JAMES KORTMAN whose telephone number is (303)297-4404. The examiner can normally be reached Monday through Friday 7:30 AM through 4:00 PM MT.
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, Reginald Bragdon can be reached on (571) 272-4204. 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.
/CURTIS JAMES KORTMAN/Primary Examiner, Art Unit 2139