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 .
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 claims at issue 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 reference 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. 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 §§ 706.02(l)(1) - 706.02(l)(3) 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 USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/forms/. The 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 http://www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1, 10, 16 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1, 10, 16 of U.S. Patent No. 12,405,940.
Although the claims at issue are not identical, they are not patentably distinct from each other because the claims of the present application are anticipated by the claims of the parent patent, USPN 12,405,940. For example, claim 1 of the present application and corresponding claim 1 of the parent is compared below.
USPN 12,405,940 – Claim 1
Application No. 19/210,069 - Claim 16
A method, comprising:
changing, via a set of data update commands, pre-update data to post-update data, the set of data update commands executed to process a data modification request;
associating a rollback context that is based on the data modification request with the pre-update data and the post-update data in a transaction log that stores the pre-update data and the post-update data after a commit of the data modification request, wherein the rollback context comprises a tracking identifier having a format <FEATURE><RANDOM NUMBER>, where <FEATURE> identifies a particular request handler or application feature and <RANDOM NUMBER> is a random number that uniquely identifies the data modification request;
receiving a rollback request associated with the rollback context after the commit of the data modification request;
generating, based on the rollback request, a data rollback script that, when executed, changes at least some of the post-update data to corresponding pre-update data; and executing the data rollback script.
A method, comprising:
changing pre-update data to post-update data based on a data modification request;
associating a rollback context with the pre-update data and the post-update data in a log that stores the pre-update data and the post-update data after a commit of transactions associated with the data modification request, wherein the rollback context comprises a unique tracking identifier that identifies a request handler or application feature;
receiving, after the commit of the transactions associated with the data modification request, a rollback request associated with the rollback context; and generating, based on the rollback request, a data rollback script that, when executed, changes at least some of the post-update data to corresponding pre-update data.
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-3, 8-20 are rejected under 35 U.S.C. 102(a) (1) as being unpatentable by Vaitzblit (US 2002/000736 A1), published on January 17, 2002.
As to claim 1, Vaitzblit teaches “changing pre-update data to post-update data based on a data modification request” in par. 0029 (update row SQL statement to change a row value at offset 4 from 01 (pre-update data) to 02 (post-update data)).
Vaitzblit teaches “associating a rollback context with the pre-update data and the post-update data in a log that stores the pre-update data and the post-update data after a commit of transactions associated with the data modification request” in par. 0029, table 4 (transaction log (contained the “Modify Rows” log record) corresponds to associating a rollback context with the pre-update data and the post-update data in a log that stores the pre-update data and the post-update data. Noting that the “commit transaction” log record, in par. 0028 shown the transaction is committed. Row Change Analysis, in par. 0090, also disclosed of association of a rollback to a row data change after commit).
Vaitzblit teaches “wherein the rollback context comprises a unique tracking identifier that identifies a request handler or application feature” in table 4, par. 0028 (“Transaction Id” corresponds to a unique tracking identifier).
Vaitzblit teaches “receiving, after the commit of the transactions associated with the data modification request, a rollback request associated with the rollback context” in par. 0034 (selection criteria for undo transaction (rollback) including “Logical Row Locator”).
Vaitzblit teaches “and generating, based on the rollback request, a data rollback script that, when executed, changes at least some of the post-update data to corresponding pre-update data” in par. 0036 (“…The rollback script is a sequence of standard SQL commands that are applied to the database 50 in order to undo the erroneous transactions…”).
As to claim 10, it is rejected for similar reason as claim 1.
As to claim 16, it is rejected for similar reason as claim 1.
As to claim 2, Vaitzblit teaches “associating the rollback context with data of a row of a database, and wherein the post- update data comprises at least a subset of column data of the row” in par. 0029, table 4 (noting that the Object Name field identified the table that contains the row of data being modified, and thus comprised at least a subset of column data of the row).
As to claim 3, Vaitzblit teaches “wherein the transactions change a first subset of columns in one or more rows of a database table, and wherein generating the data rollback script comprises: generating the data rollback script to change post-update data of a second subset of the columns to corresponding pre-update data, the second subset including fewer columns than the first subset” in figure 2, paragraphs [0034-0035].
As to claim 8, Vaitzblit teaches “indexing the log using a search engine to create an indexing structure that includes the rollback context, pre-update data, and post-update data; and querying the indexing structure based on the rollback context to retrieve the pre-update data and post-update data for generating the data rollback script” in par. 0023 (log sequence number (LSN) correspond to indexing; log record structure includes rollback context, pre and post update data).
As to claim 9, Vaitzblit teaches “monitoring the log for changes using a change monitor to detect new transaction entries; and forwarding the new transaction entries, including the rollback context, to a search engine for indexing to facilitate retrieval during generation of the data rollback script” in paragraphs [0087-0092] (row change analysis process is used to monitor change in log transaction and facilitate log record retrieval during generation of the data rollback script).
As to claim 11, Vaitzblit teaches “wherein the data rollback script comprises a Structured Query Language (SQL) update statement configured to restore at least some of the post-update data to the corresponding pre-update data” in par. 0037 (“…The rollback script is a sequence of standard SQL commands that are applied to the database 50 in order to undo the erroneous transactions, or any transactions which a user wishes to undo…”).
As to claim 12, Vaitzblit teaches “wherein the data rollback script comprises a Structured Query Language (SQL) update statement configured to restore at least some of the post-update data to the corresponding pre-update data” in par. 0044 (“… The rollback function reverses Insert, Delete, and Modify operations. Intuitively, reversing an Insert operation involves deleting the inserted row, while reversing a Delete operation involves re-inserting the deleted row. Reversing a Modify operation involves rolling back the effected row by restoring all data columns to those values that existed before the update…”).
As to claim 13, Vaitzblit teaches “wherein the log is a transaction log indexed by a search engine, and wherein the rollback context is used to retrieve the pre-update data and post-update data from an indexing structure of the search engine for generating the data rollback script” in par. 0036, [0041-0042] (rollback script is created using log transaction and rollback context).
As to claim 14, Vaitzblit teaches “wherein the rollback context further comprises a user identifier associated with the data modification request, and wherein the user identifier is used to identify data changes associated with the user when generating the rollback script” in par. 0094 “…a named user transaction could be begin transaction "unique name. "…”.
As to claim 15, Vaitzblit teaches “wherein the rollback context is generated by a request handler that processes the data modification request, and wherein the rollback context includes a descriptor of an application feature associated with the request handler” in tables 3, 4, 5 (operation code of insert rows, commit transaction, modify rows as a descriptor of an application feature associated with the request handler).
As to claim 17, Vaitzblit teaches “wherein the unique tracking identifier comprises a feature identifier and a random number, and wherein the random number uniquely identifies the data modification request among other requests handled by a same request handler” in table 2 (“Field Name” and transaction Id).
As to claim 18, Vaitzblit teaches “wherein the log is a MySQL binary log configured to store pre-update and post-update data and SQL statements causing changes” in par. 0018 and par. 0019 (“…While the embodiments disclosed herein are described by using Microsoft SQL databases as exemplary…”).
As to claim 19, Vaitzblit teaches “wherein the rollback context further comprises a user identifier corresponding to a user that initiated the data modification request” in par. 0094 (“…Issue a standard SQL command that indicates the start of a named user transaction sequence 291. The name assigned to the transaction is chosen to be such that it is uniquely identifiable within the log file. One example of the start of a named user transaction could be begin transaction "unique name…”).
As to claim 20, Vaitzblit teaches “wherein the rollback context is indexed by a search engine, and wherein the rollback request is resolved through querying an index structure based on the rollback context” in par. 24, par. 25 (log record contains LSN as an index structure).
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 of this title, 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 4 is rejected under 35 U.S.C. 103 as being unpatentable over Vaitzblit (US 2002/000736 A1), published on January 17, 2002, in view of Grzech et al (“Grzech” US 10073844 B1), published on September 11, 2018.
As to claim 4, it appears Vaitzblit does not explicitly teach “receiving an approval to execute the data rollback script; and executing the data rollback script based on the approval by transmitting the data rollback script to a database”.
However, Grzech teaches “receiving an approval to execute the data rollback script; and executing the data rollback script based on the approval by transmitting the data rollback script to a database” in col. 11: 48-55 (“…on approval of the request from the approver 110a, the one or more previously generated, successfully executed (in rollback mode) and saved SQL statements, that were executed in step 740, may be processed…”).
Vaitzblit and Grzech are analogous art because they are in the same field of endeavor, database management application. It would have been obvious to one of ordinary skill in the art before the effective filling date of the claim invention to approve a script (disclosed by Vaitzblit) including “receiving an approval to execute the data rollback script; and executing the data rollback script based on the approval by transmitting the data rollback script to a database”, as to suggested by Grzech in order to execute a rollback function (see Grzech col. 11).
Claims 5 is rejected under 35 U.S.C. 103 as being unpatentable over Vaitzblit (US 2002/000736 A1), published on January 17, 2002, in view of Goldring (US 6438538 B1), published on August 20, 2002.
As to claim 5, it appears Vaitzblit does not explicitly teach “including the rollback context as a comment in a Structured Query Language (SQL) command written to the log, and wherein the comment is used to identify the pre-update data and post-update data for generating the data rollback script”.
However, Goldring teaches “including the rollback context as a comment in a Structured Query Language (SQL) command written to the log, and wherein the comment is used to identify the pre-update data and post-update data for generating the data rollback script” in col. 11: 50-65 (SQL command with comments starting by “- -“ to identify a table including pre and post update data).
Vaitzblit and Goldring are analogous art because they are in the same field of endeavor, database management application. It would have been obvious to one of ordinary skill in the art before the effective filling date of the claim invention to include comments in a script (disclosed by Vaitzblit) to include “including the rollback context as a comment in a Structured Query Language (SQL) command written to the log, and wherein the comment is used to identify the pre-update data and post-update data for generating the data rollback script” in order to provide logic explanation to the user (see Goldring col. 11).
Claims 6-7 are rejected under 35 U.S.C. 103 as being unpatentable over Vaitzblit (US 2002/000736 A1), published on January 17, 2002, in view of Espiritusanto et al (“Espiritusanto” US 11,914,504 B1), published on February 27, 2024.
As to claim 6, it appears Vaitzblit does not explicitly teach “displaying, in a user interface, data changes associated with the rollback context to enable user review”.
However, Espiritusanto teaches “displaying, in a user interface, data changes associated with the rollback context to enable user review” in col. 10: 52-62 (a graphical user interface for users to select setting, review in order to generate a script).
Vaitzblit and Espiritusanto are analogous art because they are in the same field of endeavor, database management application. It would have been obvious to one of ordinary skill in the art before the effective filling date of the claim invention to display an user interface to create/review scripts (disclosed by Vaitzblit) including “displaying, in a user interface, data changes associated with the rollback context to enable user review” in order to provide a script setting/review for users (see Espiritusanto col. 10).
As to claim 7, Espiritusanto teaches “receiving a user selection of the rollback context via the user interface for generating the data rollback script” in col. 10: 52-62 (the user can review and input the setting using the interface).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicants’ disclosure:
. Oyarzabal et al (US 20140136487 A1)
. Okada (US 2011/0078657 A1)
. Chaitanya et al (US 2008/0249988 A1)
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Loc Tran whose telephone number is 571-272-8485. The examiner can normally be reached on Mon-Fri. 7:30am-5pm; First Fri Off.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Amy Ng can be reached on (571)-270-1698. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/LOC TRAN/
Primary Examiner, Art Unit 2164