DETAILED ACTION
The instant application having Application No. 19/267,802 has a total of 20 claims pending in the application, there are 3 independent claims and 17 dependent claims, all of which are ready for examination by the examiner.
INFORMATION CONCERNING DRAWINGS
Drawings
The applicant's drawings submitted 7/14/2025 are acceptable for examination purposes.
ACKNOWLEDGEMENT OF REFERENCES CITED BY APPLICANT
Information Disclosure Statement
As required by M.P.E.P. ' 609 (C), the applicant's submission of the Information Disclosure Statement, dated 8/15/2025, is acknowledged by the examiner and the cited references have been considered in the examination of the claims now pending. As required by M.P.E.P. ' 609 C(2), a copy of the PTOL-1449 initialed and dated by the examiner is attached to the instant office action.
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 obviousness-type 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); and 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 a nonstatutory double patenting ground provided the conflicting application or patent either is shown to be commonly owned with this application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement.
Effective January 1, 1994, a registered attorney or agent of record may sign a terminal disclaimer. A terminal disclaimer signed by the assignee must fully comply with 37 CFR 3.73(b).
Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over US 11,861,198. Although the conflicting claims are not identical, they are not patentably distinct from each other.
Instant Application
US 11,861,198
A method, comprising: in response to determining that indirect blocks specify disk locations of data targeted by incoming write operations received by a node, logging the indirect blocks into log records of a journal;
generating context information for the log records to include at least one of a file block number, a consistency point count, or a buftree identifier; generating file system messages from the log records within the journal to update a file system of the node; and executing the file system messages to utilize the indirect blocks to update the file system; and verifying that the indirect blocks are not corrupt by determining whether the indirect blocks point to data identified by the context information.
15. A method implemented by a data processing system of a node, comprising: evaluating, by the node of a distributed storage architecture, an incoming write operation to identify an indirect block of data targeted by the incoming write operation; evaluating the indirect block to determine whether the indirect block has been modified with modifications not yet stored to distributed storage of the distributed storage architecture or has not been modified with modifications not yet stored to the distributed storage; in response to determining that the indirect block has been modified with modifications not yet stored to distributed storage of the distributed storage architecture, refraining from caching the indirect block into a journal within which log records are created for write operations received by the node; and in response to determining that the indirect block has not been modified with modifications not yet stored to the distributed storage, caching the indirect block into a log record created within the journal for the incoming write operation.
18. The method of claim 15, comprising: storing a buftree identifier, a file block number, and a consistency point count into the log record as context information, wherein the context information is read from the log record to verify the indirect block as not being corrupt and that the indirect block is pointing a file system to correct data; and initiating a failover in response to detecting a failure, wherein the failover includes a replay process constructing and executing file system messages based upon the log records for updating the file system, wherein the context information is read from the log record to verify the indirect block as not being corrupt and that the indirect block is pointing the file system to correct data.
This rejection has been made as all limitations of claim 1 of the instant application are present in the claims of US 11,861,198, and therefore claim 1 of the instant application is anticipated by US 11,861,198. See MPEP 804(II)(B)(2).
The other independent claims correspond as follows:
Instant Application
US 11,861,198
Claim 16
Claim 22
Claim 9
Claim 11
Further, the dependent claims of both cases contain substantially similar limitations.
Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over US 12,360,694. Although the conflicting claims are not identical, they are not patentably distinct from each other.
Instant Application
US 12,360,694
A method, comprising: in response to determining that indirect blocks specify disk locations of data targeted by incoming write operations received by a node, logging the indirect blocks into log records of a journal;
generating context information for the log records to include at least one of a file block number, a consistency point count, or a buftree identifier; generating file system messages from the log records within the journal to update a file system of the node; and executing the file system messages to utilize the indirect blocks to update the file system; and verifying that the indirect blocks are not corrupt by determining whether the indirect blocks point to data identified by the context information.
A method, comprising: evaluating an incoming write operation to identify an indirect block of data targeted by the incoming write operation; caching the indirect block into a log record created within a journal for the incoming write operation, wherein the caching includes: identifying available free space within a header of the log record used to store metadata; modifying the indirect block to reduce a size of the indirect block to create a modified indirect block having a reduced size that fits within the available free space; and storing the modified indirect block into the available free space of the header; and initiating a failover in response to detecting a failure, wherein the failover includes a replay process that stores indirect blocks from the log records into memory.
2. The method of claim 1, wherein the replay process: generates file system messages for each log record for updating a file system to a consistent state reflected by write operations logged within the journal.
3. The method of claim 2, wherein the replay process: executes the file system messages, utilizing the indirect blocks within the memory, to update the file system.
4. The method of claim 3, wherein the indirect blocks indicate disk locations of data of the write operations logged within the log records.
7. The method of claim 1, comprising: storing a buftree identifier, a file block number, and a consistency point count into the log record as context information.
8. The method of claim 7, wherein the context information is read from the log record to verify the indirect block as not being corrupt and that the indirect block is pointing a file system to correct data.
This rejection has been made as all limitations of claim 1 of the instant application are present in the claims of US 12,360,694 and therefore claim 1 of the instant application is anticipated by US 12,360,694. See MPEP 804(II)(B)(2).
The other independent claims correspond as follows:
Instant Application
US 12,360,694
Claim 16
Claim 17
Claim 9
Claim 12
Further, the dependent claims of both cases contain substantially similar limitations.
CLAIM CONSTRUCTION
The present application contains contingent limitations. Applicant is reminded that “the broadest reasonable interpretation of a method (or process) claim having contingent limitations requires only those steps that must be performed and does not include steps that are not required to be performed because the condition(s) precedent are not met.” See MPEP 2111.04(II).
Note that the limitation “in response to determining that indirect blocks specify disk locations of data targeted by incoming write operations received by a node, logging the indirect blocks into log records of a journal” of claim 1 may never be reached within the scope of the claim under the broadest reasonable interpretation, since it may occur that indirect blocks to do not specify disk locations of data targeted by incoming write operations, and thus the condition may never be met.
The dependent claims also contain contingent limitations, including:
“verifying that an indirect block is not corrupt in response to determining that the indirect block points the file system to the data referenced by the file block number;” of claim 2;
“verifying that an indirect block is not corrupt in response to determining that a current consistency point is assigned the consistency point count of the context information,” of claim 3;
“verifying that an indirect block is not corrupt in response to determining that the indirect block is part of a buftree identified by the buftree identifier;” of claim 4;
“verifying that an indirect block is not corrupt in response to determining that the indirect block points the file system to correct data in distributed storage” of claim 5;
“verifying the indirect block as not being corrupt based upon the checksum matching a calculated checksum for the indirect block;” of claim 6;
“determining that the indirect block is corrupt based upon the checksum not matching a calculated checksum for the indirect block;” of claim 8.
These limitations are not required to be performed in the broadest reasonable interpretation of the claims.
ALLOWABLE SUBJECT MATTER
Regarding Claim 1, Wang et al (US 2020/0349149) teaches a method, comprising:
in response to determining that indirect blocks specify disk locations of data targeted by incoming write operations received by a node, logging the indirect blocks into log records of a journal (as this is a contingent limitation in a method claim as noted in the “CLAIM INTERPRETATION” section above, the condition may not occur if indirect blocks to do not specify disk locations of data targeted by incoming write operations, and thus this limitation is not required to be performed in the broadest reasonable interpretation);
generating file system messages from the log records within the journal to update a file system of the node (the file system messages corresponding to the commands to flush each entry to the file system at step 650 of Fig. 6); and
executing the file system messages to utilize the indirect blocks to update the file system (the file system is updated by executing the messages at step 650 of Fig. 6).
However, the cited prior art does not teach:
“generating context information for the log records to include at least one of a file block number, a consistency point count, or a buftree identifier;” or
“verifying that the indirect blocks are not corrupt by determining whether the indirect blocks point to data identified by the context information” as required by claim 1. Therefore, claim 1 contains allowable subject matter.
Regarding Claim 9, Peterson et al (US 11,481,121) teaches a computing device comprising:
a memory comprising machine executable code (each server has “computer-readable medium [memory] storing instructions that, when executed by a processor of the server, allow the server to perform its intended functions,” C12 L55-65); and
a processor coupled to the memory (controller 202 of Fig. 2), the processor configured to execute the machine executable code to cause the computing device to:
in response to determining that indirect blocks specify disk locations of data targeted by incoming write operations received by a node, log the indirect blocks into log records of a journal (indirect blocks corresponding to logical blocks, and a write request specifying a logical/indirect block is received at step 706 of Fig. 7, and is written to a log record/journal at step 710).
Further, Wang et al (US 2020/0104257) teaches to:
generate file system messages from the log records within the journal to update a file system of the node (the file system messages corresponding to the commands to flush each entry to the file system at step 650 of Fig. 6); and
execute the file system messages to utilize the indirect blocks to update the file system (the file system is updated by executing the messages at step 650 of Fig. 6).
However, the cited prior art does not teach to:
“generate context information for the log records to include file identification information for files that include the data targeted by the incoming write operations;” or
“verify that the indirect blocks are not corrupt by determining whether the indirect blocks point to data identified by the context information.”
Therefore, claim 9 contains allowable subject matter. Claim 16 contains allowable subject matter for similar reasons.
The dependent claims contain allowable subject matter as they depend from a base claim with allowable subject matter.
The examiner notes a double patenting rejection is outstanding for claims 1-20 as noted above.
RELEVANT ART CITED BY THE EXAMINER
The following prior art made of record and not relied upon is cited to establish the level of skill in the applicant's art and those arts considered reasonably pertinent to applicant's disclosure. See MPEP 707.05(c).
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. These references include:
Dreyer et al (US 10,635,341) teaches Multi-stream Journaled Replay.
CLOSING COMMENTS
Conclusion
STATUS OF CLAIMS IN THE APPLICATION
The following is a summary of the treatment and status of all claims in the application as recommended by M.P.E.P. ' 707.07(i):
CLAIMS REJECTED IN THE APPLICATION
Per the instant office action, claims 1-20 have been rejected.
DIRECTION OF FUTURE CORRESPONDENCES
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Mark Giardino whose telephone number is (571) 270-3565 and can normally be reached on M-F 9:00-5:30pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Mr. Jared Rutz can be reached at 571-272-5535. The fax phone number for the organization where this application or proceeding is assigned is (571) 273-8300.
/MARK A GIARDINO JR/Primary Examiner, Art Unit 2135