DETAILED ACTION
This Office Action is in response to the original application filed on 07/22/2024. Claims 1-20 are pending, of which, claims 1, 10, 12, 13, and 17 are presented in independent form.
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 .
Priority
Acknowledgment is made of applicant's claim for foreign priority based on Chinese Application No. 202311016455.8 filed on 08/11/2023. Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statements (IDS) submitted on 07/25/2024 and 03/28/2025 were filed in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner.
Drawings
The drawings submitted on 07/22/2024 are accepted.
Specification
The specification submitted on 07/22/2024 is accepted.
The title of the invention is not descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed.
The following title is suggested: Checkpoint Management for Data Recovery in a Distributed Graph Computing System.
Applicant is reminded of the proper language and format for an abstract of the disclosure.
The abstract should be in narrative form and generally limited to a single paragraph on a separate sheet within the range of 50 to 150 words in length. The abstract should describe the disclosure sufficiently to assist readers in deciding whether there is a need for consulting the full patent text for details.
The language should be clear and concise and should not repeat information given in the title. It should avoid using phrases which can be implied, such as, “The disclosure concerns,” “The disclosure defined by this invention,” “The disclosure describes,” etc. In addition, the form and legal phraseology often used in patent claims, such as “means” and “said,” should be avoided.
The abstract of the disclosure is objected to because the use the phrase "The present disclosure…" should be avoided.
A corrected abstract of the disclosure is required and must be presented on a separate sheet, apart from any other text. See MPEP § 608.01(b).
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-2, 10-14, and 17-18 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Fleury et al. (U.S. Pub. No. 2015/0006606, cited in IDS), hereinafter Fleury.
Regarding independent claim 1, Fleury teaches a data recovery method, comprising: receiving a notification message sent by a computing node in a distributed graph computing system, wherein the notification message represents that the corresponding computing node successfully stores current checkpoint data in a persistent memory; (Fleury, Fig.1 and Abstract, discloses the sending of asynchronous messages include receiving, at a node in a distributed graph, a message with a first value and determining, at the node, that the first value replaces a current value for the node.)
generating a checkpoint identifier corresponding to a current checkpoint when determining that all computing nodes in the distributed graph computing system successfully store the current checkpoint data in respective persistent memories; (Fleury, [0033], discloses checkpointing a state, using messages with identifiers and other values, may cause the system to store the states for the nodes in persistent memory so that if the leaf fails or needs to restart for any reason, the node can determine the most recent state, and begin from that point.) and
sending the checkpoint identifier to each computing node, so that the each computing node associates the checkpoint identifier with the current checkpoint data stored in the persistent memory, and associated current checkpoint data is used for data recovery during recovery execution before the corresponding computing node obtains a checkpoint identifier corresponding to a next checkpoint. (Fleury, Abstract, discloses that in response to determining that the first value replaces the current value, setting a status of the node to active and sending messages including the first value to neighboring nodes. Also, Fleury, Fig.3 and [0033], discloses the node may then request from its neighbors any messages sent since the time of the checkpoint.)
Independent claims 13 and 17 recite substantially the same limitations as independent claim 1, and are rejected for substantially the same reasons. Independent claims 13 and 17 further recite a non-transitory computer-readable medium, storing a computer program, wherein when the program is executed by a processing apparatus and an electronic device, comprising: a storage apparatus, storing a computer program; and a processing apparatus, configured to execute the computer program in the storage apparatus which is also taught by Fleury, [0005], which discloses “…system that includes distributed computing devices represented by leaf servers and memory storing a graph of nodes and edges... A leaf server can include… at least one processor, and memory storing instructions that, when executed by the at least one processor”.
Regarding claim 2, Fleury teaches the method according to claim 1, wherein the method further comprises: updating, by using the checkpoint identifier, a checkpoint identifier stored in the persistent memory; (Fleury, [0033], discloses comparing the identifier in a node's state with the identifier of a received message by the node and based on the comparison change the identifier in its state to the identifier in the message.)
sending, to a target computing node that performs data recovery, a recovery message for indicating data recovery when determining that the current checkpoint data is to be recovered, so that the target computing node obtains, from the respective persistent memories according to the checkpoint identifier comprised in the recovery message, the associated current checkpoint data, and performs data recovery based on the current checkpoint data. (Fleury, [0033]-[0034], discloses checkpointing a state, using messages with identifiers and other values, to store the states for the nodes in persistent memory so that if the leaf fails or needs to restart for any reason, the node can determine the most recent state, and begin from that point. After a fault a node may initialize its state to the last checkpointed state for the node stored in persistent memory and then then request from its neighbors any messages sent since the time of the checkpoint and the neighbors send the necessary messages in response.)
Claims 14 and 18 recite substantially the same limitations as claim 2, and are rejected for substantially the same reasons.
Regarding independent claim 10, Fleury teaches a data recovery method, comprising: when current checkpoint data is successfully stored in a persistent memory, sending a notification message representing that a corresponding computing node successfully stores the current checkpoint data in the persistent memory; (Fleury, Fig.1 and Abstract, discloses the sending of asynchronous messages include receiving, at a node in a distributed graph, a message with a first value and determining, at the node, that the first value replaces a current value for the node and then sending messages including the first value to neighboring nodes.)
receiving a checkpoint identifier corresponding to a current checkpoint, wherein the checkpoint identifier is generated when determining that all computing nodes in a distributed graph computing system successfully store the current checkpoint data in respective persistent memories; (Fleury, [0033], discloses checkpointing a state, using messages with identifiers and other values, may cause the system to store the states for the nodes in persistent memory so that if the leaf fails or needs to restart for any reason, the node can determine the most recent state, and begin from that point.) and
associating the checkpoint identifier with the current checkpoint data stored in the persistent memory, wherein associated current checkpoint data is used for data recovery during recovery execution before a checkpoint identifier corresponding to a next checkpoint is obtained. (Fleury, Abstract, discloses that in response to determining that the first value replaces the current value, setting a status of the node to active and sending messages including the first value to neighboring nodes. Also, Fleury, Fig.3 and [0033], discloses the node may then request from its neighbors any messages sent since the time of the checkpoint.)
Regarding claim 11, Fleury teaches the method according to claim 10, wherein the method further comprises: receiving a recovery message for indicating data recovery, wherein the recovery message comprises the checkpoint identifier; obtaining the associated current checkpoint data from the persistent memory according to the checkpoint identifier; and performing data recovery based on the current checkpoint data. (Fleury, [0033]-[0034], discloses checkpointing a state, using messages with identifiers and other values, to store the states for the nodes in persistent memory so that if the leaf fails or needs to restart for any reason, the node can determine the most recent state, and begin from that point. After a fault a node may initialize its state to the last checkpointed state for the node stored in persistent memory and then then request from its neighbors any messages sent since the time of the checkpoint and the neighbors send the necessary messages in response.)
Regarding independent claim 12, Fleury teaches a data recovery method, comprising: when successfully storing current checkpoint data in a persistent memory, sending, by a slave computing node to a master computing node, a notification message representing that a corresponding computing node successfully stores the current checkpoint data in the persistent memory; (Fleury, Fig.1 and Abstract, discloses the sending of asynchronous messages include receiving, at a node in a distributed graph, a message with a first value and determining, at the node, that the first value replaces a current value for the node and then sending messages including the first value to neighboring nodes. In combination, Fleury, [0035], discloses that a root node [i.e. master node] may track the status of each leaf [i.e. slave computing node] in the distributed system. Examiner interprets the root node tracking each leaf to be each leaf sending notification messages with status to the root node.)
when determining that all computing nodes in a distributed graph computing system successfully store the current checkpoint data in respective persistent memories, generating, by the master computing node, a checkpoint identifier corresponding to a current checkpoint; (Fleury, [0033], discloses checkpointing a state, using messages with identifiers and other values, may cause the system to store the states for the nodes in persistent memory so that if the leaf fails or needs to restart for any reason, the node can determine the most recent state, and begin from that point.)
sending, by the master computing node, the checkpoint identifier to the slave computing node; (Fleury, Fig.1 and Abstract, discloses the sending of asynchronous messages include receiving, at a node in a distributed graph, a message with a first value and determining, at the node, that the first value replaces a current value for the node and then sending messages including the first value to neighboring nodes.) and
associating, by the slave computing node, the checkpoint identifier with the current checkpoint data stored in the persistent memory, wherein associated current checkpoint data is used for data recovery during recovery execution before a corresponding slave computing node obtains a checkpoint identifier corresponding to a next checkpoint. (Fleury, Abstract, discloses that in response to determining that the first value replaces the current value, setting a status of the node to active and sending messages including the first value to neighboring nodes. Also, Fleury, Fig.3 and [0033], discloses the node may then request from its neighbors any messages sent since the time of the checkpoint.)
Allowable Subject Matter
Claims 3-9, 15-16, and 19-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
KOROTKOV (U.S. Pub. No. 2018/0373743) – “DURABLE MULTIVERSION B+-TREE” teaches incremental checkpoints.
Matena et al. (U.S. Pub. No. 2004/0158549) – “Method And Apparatus For Online Transaction Processing” teaches checkpoint messages to a backup execution module in a commit sequence number order.
Iterum et al. (U.S. Pat. No. 6,957,254) – “Method And Apparatus For Reaching Agreement Between Nodes In A Distributed System” teaches recovery in a distributed computing system using periodic checkpoints.
Hirayama et al. (U.S. Pat. No. 5,922,078) – “Method And Apparatus For Recovering From Faults In Distributed Memory Type Multiprocessor Computing Systems” teaches recovery in a distributed multinode computing system using synchronous checkpoints where if a fault occurs in a node, all of nodes rolls back to a previously acquired checkpoint and restarts the data processing.
Point of Contact
Any inquiry concerning this communication or earlier communications from the examiner should be directed to EDDY CHEUNG whose telephone number is (571)272-9785. The examiner can normally be reached MON-TH 8:00AM-4:00PM EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aleksandr Kerzhner can be reached at (571)270-1760. 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.
/Eddy Cheung/Primary Examiner, Art Unit 2165