DETAILED ACTION
Claims 1-20 are pending. Claims 1, 8, and 15 have been amended. Claims 1-20 are rejected.
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 .
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1- 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Merker et al., Patent Application Publication No. 2020/0311044 (hereinafter Merker) in view of Freitas et al., Patent Application Publication No. 2002/0052959 (hereinafter Freitas) and Barsness et al., Patent Application Publication No. 2018/0121505 (hereinafter Barsness).
Regarding claim 1, Merker teaches:
A computer-implemented method comprising: receiving, via a query optimizer of a database execution engine and from a user equipment (Merker Paragraph [0055], The database execution engine 150 may include a query optimizer 110, Paragraph [0021], the execution engine may be configured to receive a query, generate a query plan (including for example query algebra), optimize the query plan), a structured query language (SQL) query targeting a column-store table and a row-store table (Merker Paragraph [0054], where the data can be queried or operated on using operations including SQL commands, Paragraph [0046], the query handler may acquire locks for the data stored in the located row and the column in the row), wherein the SQL query includes a rowlock request to lock at least one row in the column-store table and the row-store table (Merker Paragraph [0046], the query handler may acquire locks for the data stored in the located row and the column in the row);
generating, using the query optimizer (Merker Paragraph [0055], The database execution engine 150 may include a query optimizer 110), a query execution plan for execution of the SQL query (Merker Paragraph [0019], To implement the complex sequence, a query execution plan (or query plan for short) may be implemented, Paragraph [0054], where the data can be queried or operated on using operations including SQL commands), wherein generating the query execution plan comprises (Merker Paragraph [0019], To implement the complex sequence, a query execution plan (or query plan for short) may be implemented, Paragraph [0054], where the data can be queried or operated on using operations including SQL commands);
wherein each of the plurality of rowlock accessors, the rowlock operator (Merker Paragraph [0006], The locating may also include acquiring locks, by the query handler, for the plurality of rows of the first fragment while reading the plurality of rows of the first fragment (Merker teaches runtime execution while Freitas teaches the accessor)), and the rowlock relation is an operator executed at runtime of the SQL query (Merker Paragraph [0054], where the data can be queried or operated on using operations including SQL commands, Paragraph [0061], When the code for the query plan is ready for execution during runtime, the query execution engine 112 may step through the code performing some of the operations within the database execution engine 150).
executing, using a query execution engine of the database execution engine and based on executable code received from a query plan compiler (Merker Paragraph [0057], The query optimizer 110 may form an optimum query plan, which may represent a query algebra, as noted above. To compile a query plan, the query optimizer 110 may provide the query plan to the query plan compiler 116), the query execution plan to execute the SQL query by accessing a given rowlock accessor via the rowlock operator to lock the at least one row (Merker Paragraph [0054], where the data can be queried or operated on using operations including SQL commands (shows that the query can be an SQL query), Paragraph [0057], The query optimizer 110 may form an optimum query plan, which may represent a query algebra, as noted above. To compile a query plan, the query optimizer 110 may provide the query plan to the query plan compiler 116 (shows the query plan), Paragraph [0026], acquiring locks for all of the data tables may, during the sequence of operations, require the operator to read all of the data stored in all of the data tables that have been opened (shows the operator associated with the lock)),
Merker does not expressly disclose:
creating a plurality of rowlock accessors for a plurality of storage layers responsive to receiving the query with the rowlock request, wherein each rowlock accessor uses a set of coordinates stored in a corresponding column store rowlock accessor factory and row store rowlock accessor factory to access a storage layer of the plurality of storage layers,
However, Freitas teaches:
creating a plurality of rowlock accessors for a plurality of storage layers responsive to receiving the query with the rowlock request (Freitas Paragraph [0093], the lock table contains one row for each address range (subpart) represented in the table, with each row listing the lock state, current token, and pending queue for that address range (Merker teaches the query plan)), wherein each rowlock accessor uses a set of coordinates stored in a corresponding column store rowlock accessor factory and row store rowlock accessor factory to access a storage layer of the plurality of storage layers (Freitas Paragraph [0094], The "lock state" column expresses the address range's lock state for the adapter owing the lock table, Paragraph [0093], the lock table contains one row for each address range (subpart) represented in the table, with each row listing the lock state, current token, and pending queue for that address range),
The claimed invention and Freitas are from the analogous art of rowlock systems. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Merker in view of Freitas to have combined Merker in view of Freitas. Freitas teaches optimizing for a two processor environment, messages exchanged by the processors including lock requests (Paragraph 12).
Merker in view of Freitas does not expressly disclose:
inserting a rowlock relation into the query execution plan,
creating a rowlock operator for the query execution plan, and
setting the plurality of rowlock accessors to enable locking of a plurality of targeted rows; and
However, Barsness teaches:
inserting a rowlock relation into the query execution plan (Barsness Paragraph [0014], the Query Optimizer 174 or another component on Database System 160 considers the effect that a resource-efficient slower query plan will have on other jobs. For example, if the query will lock a large number of rows),
creating a rowlock operator for the query execution plan (Barsness Paragraph [0014], the Query Optimizer 174 or another component on Database System 160 considers the effect that a resource-efficient slower query plan will have on other jobs. For example, if the query will lock a large number of rows), and
setting the plurality of rowlock accessors to enable locking of a plurality of targeted rows (Barsness Paragraph [0014], the Query Optimizer 174 or another component on Database System 160 considers the effect that a resource-efficient slower query plan will have on other jobs. For example, if the query will lock a large number of rows); and
The claimed invention and Barsness are from the analogous art of query execution plans. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Merker in view of Freitas and Barsness to have combined Merker in view of Freitas and Barsness. Barsness teaches optimizing query plans to determine if a query is delayable and executing queries based off of the query plan according to a first schedule (Paragraphs 3 and 4).
Regarding claim 2, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 1, wherein the plurality of storage layers include a first persistence layer that corresponds to the column-store table and a second persistence layer that corresponds to the row-store table (Merker Paragraph [0063], while the database's persistence/storage layer 190A-N can perform simpler operations to reduce the processing burden at the database's persistence/storage layer 190A-N (shows multiple persistence layers), Paragraph [0021], there may be provided an execution engine that may decouple the higher-level, application layer from the database layer (e.g., the persistence or storage layer where data including database tables may be stored and/or queried using instructions).
Regarding claim 3, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 2, wherein the first and second persistence layers are configured to provide persistent storage of data for the column-store and row-store tables, respectively (Merker Paragraph [0063], while the database's persistence/storage layer 190A-N can perform simpler operations to reduce the processing burden at the database's persistence/storage layer 190A-N (shows multiple persistence layers), Paragraph [0021], there may be provided an execution engine that may decouple the higher-level, application layer from the database layer (e.g., the persistence or storage layer where data including database tables may be stored and/or queried using instructions).
Regarding claim 4, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 1, wherein the at least one row is identified by at least one row identifier (Merker Paragraph [0009], the row associated with the identifier includes a plurality of rows of the table).
Regarding claim 5, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 1, wherein the query execution engine comprises a plan generation layer and a plan execution layer, and the column store rowlock accessor factory and the row store rowlock accessor factory exist in the plan generation layer of the query execution engine (Freitas Paragraph [0094], The "lock state" column expresses the address range's lock state for the adapter owing the lock table, Paragraph [0093], the lock table contains one row for each address range (subpart) represented in the table, with each row listing the lock state, current token, and pending queue for that address range (Merker teaches the query plan)).
Regarding claim 6, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 1, wherein the plurality of rowlock accessors are created during a plan generation phase of the query execution plan (Freitas Paragraph [0094], The "lock state" column expresses the address range's lock state for the adapter owing the lock table, Paragraph [0093], the lock table contains one row for each address range (subpart) represented in the table, with each row listing the lock state, current token, and pending queue for that address range (Merker teaches the query plan)).
Regarding claim 7, Merker in view of Freitas and Barsness further teaches:
The computer-implemented method of claim 1, wherein the at least one row is locked via a corresponding persistence layer (Freitas Paragraph [0094], The "lock state" column expresses the address range's lock state for the adapter owing the lock table, Paragraph [0093], the lock table contains one row for each address range (subpart) represented in the table, with each row listing the lock state, current token, and pending queue for that address range).
Claims 8-20 are rejected in the same manner as claims 1-7 but are merely directed to a different statutory category while claiming the same invention (method, system, and computer readable medium). Merker teaches one or more processors and one or more memories (Paragraph 10).
Response to Arguments
Applicant’s arguments, see 7-11, filed 03/10/2026, with respect to the rejection(s) of claim(s) 1-20 under 35 U.S.C. 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the amendment and the newly cited references.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Farrar et al., Patent Application Publication No. 2008/0098033 (hereinafter Farrar). Farrar teaches a query plan and determining if a lock was table level or row level (Table 1 between paragraphs 21 and 22). Therefore, the claimed invention and Farrar are analogous art.
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 DUSTIN D EYERS whose telephone number is (408)918-7562. The examiner can normally be reached Monday-Thursday 9:00am-7:00pm ET.
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, Amy Ng can be reached at (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 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.
/DUSTIN D EYERS/ Examiner, Art Unit 2164
/AMY NG/ Supervisory Patent Examiner, Art Unit 2164