DETAILED ACTION
Claims 1-20 are pending. Claims 1, 5, 8, 12, 15, and 19 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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 07/23/2026 has been entered.
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 Li et al., Patent Application Publication No. 2023/0306012 (hereinafter Li), Barsness et al., Patent Application Publication No. 2018/0121505 (hereinafter Barsness), and VanBenschoten et al., Patent Application Publication No. 2023/0021150 (hereinafter VanBenschoten).
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);
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)),
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 Li 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),
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,
wherein the column store rowlock accessor factory and the row store rowlock accessor factory exist in the plan generation layer of the query execution engine.
However, Li teaches:
creating a plurality of rowlock accessors for a plurality of storage layers responsive to receiving the query with the rowlock request (Li Paragraph [0054], it introduces a type of lock basing on a primary key or key range combine with table columns to realize column level lock and range-column lock; (iii) user could request key-column level lock for row level access and request range-column lock for range data access), 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 (Li Paragraph [0054], it introduces a type of lock basing on a primary key or key range combine with table columns to realize column level lock and range-column lock; (iii) user could request key-column level lock for row level access and request range-column lock for range data access, Paragraph [0048], Each bit in the column bit array represents the presence (with a 1 value) or the absence (with a 0 value) of at least one instance of a range-column lock of that lock type in that column but does not indicate which key ranges are applied to any of the range-column locks),
wherein the column store rowlock accessor factory and the row store rowlock accessor factory exist in the plan generation layer of the query execution engine (Li Paragraph [0054], it introduces a type of lock basing on a primary key or key range combine with table columns to realize column level lock and range-column lock; (iii) user could request key-column level lock for row level access and request range-column lock for range data access).
The claimed invention and Li 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 Li to have combined Merker in view of Li. Li teaches improvement with respect to the current state of the art including a lower lock level, the highest concurrency but more lock resource is needed (Paragraph 52).
Merker in view of Li 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 Li and Barsness to have combined Merker in view of Li 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).
Merker in view of Li and Barsness does not expressly disclose:
wherein the query execution engine comprises a plan generation layer and a plan execution layer; and
However, VanBenschoten teaches:
wherein the query execution engine comprises a plan generation layer and a plan execution layer (VanBenschoten Paragraph [0043], Based on generating the physical plan, the SQL layer may send the physical plan to one or more nodes for execution, Paragraph [0046], the SQL layer may encode data for use by the lower layers of the database during query execution); and
The claimed invention and VanBenschoten are from the analogous art of plan generation 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 Li, Barsness, and VanBenschoten to have combined Merker in view of Li, Barsness, and VanBenschoten. VanBenschoten teaches improved techniques for a database to serve consistent and low latency reads while minimizing the disruption from contending transactions (Paragraph 24).
Regarding claim 2, Merker in view of Li, Barsness, and VanBenschoten 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 Li, Barsness, and VanBenschoten 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 Li, Barsness, and VanBenschoten 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 Li, Barsness, and VanBenschoten further teaches:
The computer-implemented method of claim 1, wherein the plan generation layer is transient and dissolves following the generating of the query execution plan (VanBenschoten Paragraph [0042], the SQL layer may perform semantic analysis. In some cases, as a part of semantic analysis, the SQL layer may determine whether the query of the SQL request is valid, resolve names within the query, remove intermediate computations that are determined to be unnecessary, and/or determine data types for intermediate results of the query), while the plan execution layer survives the generating of the query execution plan and is used during the executing of the query execution plan (VanBenschoten Paragraph [0042], the SQL layer may optimize the logical query plan using a search algorithm, wherein the search algorithm evaluates one or more methods of executing the query and selects the method having the lowest cost).
Regarding claim 6, Merker in view of Li, Barsness, and VanBenschoten 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 (Li Paragraph [0054], it introduces a type of lock basing on a primary key or key range combine with table columns to realize column level lock and range-column lock; (iii) user could request key-column level lock for row level access and request range-column lock for range data access (Merker teaches the plan)).
Regarding claim 7, Merker in view of Li, Barsness, and VanBenschoten further teaches:
The computer-implemented method of claim 1, wherein the at least one row is locked via a corresponding persistence layer (Li Paragraph [0054], it introduces a type of lock basing on a primary key or key range combine with table columns to realize column level lock and range-column lock; (iii) user could request key-column level lock for row level access and request range-column lock for range data access (VanBenschoten teaches the layers)).
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 pages 8-12, filed 07/23/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. Arakawa et al., Patent Application Publication No. 2013/0346363 (hereinafter Arakawa). Arakawa teaches updating a target row and a single column in a lock range (Paragraph 135). This shows that Arakawa and the claimed invention are analogous art as both are directed to locking rows and columns.
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