Prosecution Insights
Last updated: April 19, 2026
Application No. 18/636,121

TECHNIQUES FOR DETERMINISTICALLY ROUTING DATABASE REQUESTS TO DATABASE SERVERS

Non-Final OA §103
Filed
Apr 15, 2024
Examiner
NGUYEN, CINDY
Art Unit
2156
Tech Center
2100 — Computer Architecture & Software
Assignee
Apple Inc.
OA Round
3 (Non-Final)
78%
Grant Probability
Favorable
3-4
OA Rounds
3y 4m
To Grant
87%
With Interview

Examiner Intelligence

Grants 78% — above average
78%
Career Allow Rate
542 granted / 692 resolved
+23.3% vs TC avg
Moderate +9% lift
Without
With
+9.1%
Interview Lift
resolved cases with interview
Typical timeline
3y 4m
Avg Prosecution
13 currently pending
Career history
705
Total Applications
across all art units

Statute-Specific Performance

§101
17.3%
-22.7% vs TC avg
§103
45.0%
+5.0% vs TC avg
§102
21.8%
-18.2% vs TC avg
§112
5.9%
-34.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 692 resolved cases

Office Action

§103
DETAILED ACTION 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 on12/03/2025 has been entered. Status of the claims Claims 1, 2, 4-9, 11-16 and 18-23 were pending, claims 1, 8 and 15 have been canceled, claims 21-23 have been added. Therefore, claims 1, 2, 4-9, 11-16 and 18-23 are currently pending for examination. Information Disclosure Statement The information disclosure statement (IDS) submitted on 10/14/2025 is being considered by the examiner. 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, 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 1, 2, 4-9, 11-16 and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Thomsen (20230195747) in view of “Django 1.4 documentation”, Oct 11, 2017 (hereafter Django) and further in view of Angius et al. (US 11514080, hereafter Angius). Regarding claim 1, Thomsen discloses: A method for managing a plurality of database engines, the method comprising, by a database server: concurrently executing the plurality of database engines (Thomsen [0029] discloses: the transaction manager 244 can inform the involved engines about this event so they can execute necessary actions. Transaction manager 244 can provide various types of concurrency control and transaction manager 244 can cooperate with a persistence layer 246 to persist atomic and durable transactions) ; and in response to receiving a request, from a routing server, to perform an input/output operation to a database file of a plurality of database files (Thomsen [0052] discloses: requests 355, 365 requires writing to one or more data tables, or modifying or deleting a data table): Thomsen didn’t disclose, Django discloses: selecting, among the plurality of database engines, a database engine that is available to perform the input/output operation ( (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object), performing at least one operation to make the database file accessible to the database engine (Django [section “Defining your databases] discloses: selecting databases for user if user attempt to access a database ] discloses: performs client write operations); causing the database engine to perform the input/output operation to the database file (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object); providing, to the routing server, a response in accordance with the input/output operation (Django [section “Automatic database routing”] discloses: suggest the database that should be used for read/write operations for object of type model). Thomsen and Django are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Django, in order to automatic database routing. The suggestion to combine is to allocate database usage and selecting a database to control all database operations. Thomsen as modified didn’t disclose, Angius discloses: obtaining an exclusive lock on the database file, wherein obtaining the exclusive lock comprises updating metadata associated with the database file (Angius [Col. 23, lines 20-39] discloses: micro-partition tables require an exclusive lock on the table so that FTVs can be created in a serialized manner, hence at point 9 a lock is acquired (e.g., by updating the metadata database 112) by the compute service manager 108 for every micro-partition table modified by the transaction and held until the commit is finalized); Thomsen and Angius are analogous art because they are in the same field of endeavor, processing concurrent transactions. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Angius, in order for managing and executing concurrent transactions . The suggestion to combine is to processing concurrent transactions to enable transactional processing across different domains in a safe and performant manner (e.g., avoiding deadlock and starvation) within the database system. Regarding claim 2, Thomsen as modified discloses: The method of claim 1, wherein the database file is encrypted by an encryption key that is associated with the database file and a corresponding user account; and the at least one operation comprises: decrypting the database file using the encryption key (Thomsen [0014] discloses: each tenant is associated with its own encryption group. In some alternative embodiments, tenants share encryption groups. A data container is a logical unit of persistence which may be encrypted at a group-level. In some embodiments, each data container is assigned to a particular encryption group. Data within one encryption group is encrypted and decrypted with the same group-level encryption key). Regarding claim 4, Thomsen as modified discloses: The method of claim 1, further comprising: increasing or decreasing a number of the plurality of database engines executing on the database server in correlation to a rate at which input/output operations are received by the database server (Django [section “Defining your databases” ] discloses: an example setting defining two databases as a default PostgreSQL database and a MySQL database; [section “Database routers”] discloses: the methods for suggest the database that should be used for read/write). Regarding claim 5, Thomsen as modified discloses: The method of claim 1, wherein the database file corresponds to a respective user account such that data associated with the respective user account is isolated from data of other user accounts stored in other database files of the plurality of database files (Thomsen [0014] discloses: multi-tenant applications need to provide data privacy on a tenant-by tenant basis, and in some cases a particular tenant has the requirement to be responsible for the tenant's own encryption keys so that even an operator of a cloud-based application; [0022] discloses: name server 115 may manage the information regarding existing tenant databases, which tenant databases are isolated from one another ). . Regarding claim 6, Thomsen as modified discloses: The method of claim 1, wherein a journal is managed for the database file, and the method further comprises: updating the respective journal for the database file based on the input/output operation (Thomsen [0043] discloses: a recovery log comprises a log of all changes to database system 105 since the last system save point, such that when a database server is restarted, its latest state is restored by replaying the changes from the recovery log on top of the last system save point. Typically, in a relational database system, the previous recovery log is cleared whenever a system save point occurs, which then starts a new, empty recovery log that will be effective until the next system save point. While the recovery log is processed, a new cleanup log is generated which needs to be processed as soon as the commit is replayed to avoid a growing data area because of deleted but not garbage collected data). Regarding claim 7, Thomsen as modified discloses: The method of claim 1, wherein the input/output operation involves at least one read operation and/or at least one write operation to the database file (Thomsen [0020;0047; 0052]) . Regarding claim 8, Thomsen as modified discloses: A non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a database server, cause the database server to manage a plurality of database engines, by carrying out steps that include: concurrently executing the plurality of database engines(Thomsen [0029] discloses: the transaction manager 244 can inform the involved engines about this event so they can execute necessary actions. Transaction manager 244 can provide various types of concurrency control and transaction manager 244 can cooperate with a persistence layer 246 to persist atomic and durable transactions) ; and in response to receiving a request , from a routing server, to perform an input/output operation to a database file of a plurality of database files(Thomsen [0052] discloses: requests 355, 365 requires writing to one or more data tables, or modifying a data table): Thomsen didn’t disclose, Django discloses: selecting, among the plurality of database engines, a database engine that is available to perform the input/output operation (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object), performing at least one operation to make the database file accessible to the database engine (Django [section “Defining your databases] discloses: selecting databases for user if user attempt to access a database ] discloses: performs client write operations); causing the database engine to perform the input/output operation to the database file (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object); providing, to the routing server, a response in accordance with the input/output operation (Django [section “Automatic database routing”] discloses: suggest the database that should be used for read/write operations for object of type model). Thomsen and Django are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Django, in order to automatic database routing. The suggestion to combine is to allocate database usage and selecting a database to control all database operations. Thomsen as modified didn’t disclose, Angius discloses: obtaining an exclusive lock on the database file, wherein obtaining the exclusive lock comprises updating metadata associated with the database file (Angius [Col. 23, lines 20-39] discloses: micro-partition tables require an exclusive lock on the table so that FTVs can be created in a serialized manner, hence at point 9 a lock is acquired (e.g., by updating the metadata database 112) by the compute service manager 108 for every micro-partition table modified by the transaction and held until the commit is finalized); Thomsen and Angius are analogous art because they are in the same field of endeavor, processing concurrent transactions. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Angius, in order for managing and executing concurrent transactions . The suggestion to combine is to processing concurrent transactions to enable transactional processing across different domains in a safe and performant manner (e.g., avoiding deadlock and starvation) within the database system. Regarding claim 9, Thomsen as modified discloses: The non-transitory computer readable storage medium of claim 8, wherein the database file is encrypted by an encryption key that is associated with the database file and a corresponding user account, and the at least one operation comprises: decrypting the database file using the encryption key (Thomsen [0014] discloses: each tenant is associated with its own encryption group. In some alternative embodiments, tenants share encryption groups. A data container is a logical unit of persistence which may be encrypted at a group-level. In some embodiments, each data container is assigned to a particular encryption group. Data within one encryption group is encrypted and decrypted with the same group-level encryption key). Regarding claim 11, Thomsen as modified discloses: The non-transitory computer readable storage medium of claim 8, wherein the steps further include: increasing or decreasing a number of the plurality of database engines executing on the database server in correlation to a rate at which input/output operations are received by the database server (Django [section “Defining your databases” ] discloses: an example setting defining two databases as a default PostgreSQL database and a MySQL database; [section “Database routers”] discloses: the methods for suggest the database that should be used for read/write). Regarding claim 12, Thomsen as modified discloses: The non-transitory computer readable storage medium of claim 8, wherein the database file corresponds to a respective user account such that data associated with the respective user account is isolated from data of other user accounts stored in other database files of the plurality of database files (Thomsen [0014] discloses: multi-tenant applications need to provide data privacy on a tenant-by tenant basis, and in some cases a particular tenant has the requirement to be responsible for the tenant's own encryption keys so that even an operator of a cloud-based application; [0022] discloses: name server 115 may manage the information regarding existing tenant databases, which tenant databases are isolated from one another ). Regarding claim 13, Thomsen as modified discloses: The non-transitory computer readable storage medium of claim 8, wherein a journal is managed for each database file, and the steps further include: updating the respective journal for the database file based on the input/output operation (Thomsen [0043] discloses: a recovery log comprises a log of all changes to database system 105 since the last system save point, such that when a database server is restarted, its latest state is restored by replaying the changes from the recovery log on top of the last system save point. Typically, in a relational database system, the previous recovery log is cleared whenever a system save point occurs, which then starts a new, empty recovery log that will be effective until the next system save point. While the recovery log is processed, a new cleanup log is generated which needs to be processed as soon as the commit is replayed to avoid a growing data area because of deleted but not garbage collected data). Regarding claim 14, Thomsen as modified discloses: The non-transitory computer readable storage medium of claim 8, wherein the input/output operation involves at least one read operation or at least one write operation to the database file (Thomsen [0020;0047; 0052]) . Regarding claim 15, Thomsen as modified discloses: A database server configured to manage a plurality of database engines, the database server comprising at least one processor configured to cause the database server to carry out steps that include (Thomsen [0004]): concurrently executing the plurality of database engines(Thomsen [0029] discloses: the transaction manager 244 can inform the involved engines about this event so they can execute necessary actions. Transaction manager 244 can provide various types of concurrency control and transaction manager 244 can cooperate with a persistence layer 246 to persist atomic and durable transactions) ; and in response to receiving a request, from a routing server, to perform an input/output operation to a database file of a plurality of database files(Thomsen [0052] discloses: requests 355, 365 requires writing to one or more data tables, or modifying a data table): Thomsen didn’t disclose, Django discloses: selecting, among the plurality of database engines, a database engine that is available to perform the input/output operation (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object), performing at least one operation to make the database file accessible to the database engine (Django [section “Defining your databases] discloses: selecting databases for user if user attempt to access a database ] discloses: performs client write operations); causing the database engine to perform the input/output operation to the database file (Django [section “manually selecting a database] discloses: selecting a database for save, for moving an object); providing, to the routing server, a response in accordance with the input/output operation (Django [section “Automatic database routing”] discloses: suggest the database that should be used for read/write operations for object of type model). Thomsen and Django are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Django, in order to automatic database routing. The suggestion to combine is to allocate database usage and selecting a database to control all database operations. Thomsen as modified didn’t disclose, Angius discloses: obtaining an exclusive lock on the database file, wherein obtaining the exclusive lock comprises updating metadata associated with the database file (Angius [Col. 23, lines 20-39] discloses: micro-partition tables require an exclusive lock on the table so that FTVs can be created in a serialized manner, hence at point 9 a lock is acquired (e.g., by updating the metadata database 112) by the compute service manager 108 for every micro-partition table modified by the transaction and held until the commit is finalized); Thomsen and Angius are analogous art because they are in the same field of endeavor, processing concurrent transactions. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Angius, in order for managing and executing concurrent transactions . The suggestion to combine is to processing concurrent transactions to enable transactional processing across different domains in a safe and performant manner (e.g., avoiding deadlock and starvation) within the database system. Regarding claim 16, Thomsen as modified discloses: The database server of claim 15, wherein the database file is encrypted by an encryption key that is associated with the database file and a corresponding user account; and the at least one operation comprises: decrypting the database file using the encryption key(Thomsen [0014] discloses: each tenant is associated with its own encryption group. In some alternative embodiments, tenants share encryption groups. A data container is a logical unit of persistence which may be encrypted at a group-level. In some embodiments, each data container is assigned to a particular encryption group. Data within one encryption group is encrypted and decrypted with the same group-level encryption key). Regarding claim 18, Thomsen as modified discloses: The database server of claim 15, wherein the steps further include: increasing or decreasing a number of the plurality of database engines executing on the database server in correlation to a rate at which input/output operations are received by the database server (Django [section “Defining your databases” ] discloses: an example setting defining two databases as a default PostgreSQL database and a MySQL database; [section “Database routers”] discloses: the methods for suggest the database that should be used for read/write). Regarding claim 19, Thomsen as modified discloses: The database server of claim 15, wherein the database file corresponds to a respective user account such that data associated with the respective user account is isolated from data of other user accounts stored in other database files of the plurality of database files(Thomsen [0014] discloses: multi-tenant applications need to provide data privacy on a tenant-by tenant basis, and in some cases a particular tenant has the requirement to be responsible for the tenant's own encryption keys so that even an operator of a cloud-based application; [0022] discloses: name server 115 may manage the information regarding existing tenant databases, which tenant databases are isolated from one another ). Regarding claim 20, Thomsen as modified discloses: The database server of claim 15, wherein a journal is managed for each database file of the plurality of database files, and the steps further include: updating the respective journal for the database file based on the input/output operation (Thomsen [0043] discloses: a recovery log comprises a log of all changes to database system 105 since the last system save point, such that when a database server is restarted, its latest state is restored by replaying the changes from the recovery log on top of the last system save point. Typically, in a relational database system, the previous recovery log is cleared whenever a system save point occurs, which then starts a new, empty recovery log that will be effective until the next system save point. While the recovery log is processed, a new cleanup log is generated which needs to be processed as soon as the commit is replayed to avoid a growing data area because of deleted but not garbage collected data). Claims 21-23 are rejected under 35 U.S.C. 103 as being unpatentable over Thomsen (20230195747) in view of “Django 1.4 documentation”, Oct 11, 2017 (hereafter Django) in view of (Black et al. (US 20200100106, hereafter Black). Regarding claim 21, Thomsen as modified didn’t disclose, but Black discloses: The method of claim 2, wherein the encryption key is received in conjunction with the request (Black [0107; 0143] discloses: received the encryption key). Thomsen as modified and Black are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Black, in order to secure and protect a secure network or database. The suggestion to combine is to provide security to the secure database. Regarding claim 22, Thomsen as modified discloses: The method of claim 2, further including responsive to receiving an indication that access to the database file is no longer required, performing at least one additional operation to re-encrypt the database file (Black [0144; 0159] discloses: If the data is stored encrypted by the routing system 1906, then this data is decrypted, and then re-encrypted by the symbolic https key that had been shared earlier between the routing system 1906 and the client browser of the user 1902 at 1944. This encrypted data is returned to the client browser of the user 1902 at 1946, where it is decrypted and used as required). Thomsen as modified and Black are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Black, in order to secure and protect a secure network or database. The suggestion to combine is to provide security to the secure database. Regarding claim 23, Thomsen as modified discloses: The database server of claim 16, wherein the steps further include, responsive to receiving an indication that access to the database file is no longer required, performing at least one additional operation to re-encrypt the database file (Black [0144; 0159] discloses: If the data is stored encrypted by the routing system 1906, then this data is decrypted, and then re-encrypted by the symbolic https key that had been shared earlier between the routing system 1906 and the client browser of the user 1902 at 1944. This encrypted data is returned to the client browser of the user 1902 at 1946, where it is decrypted and used as required). Thomsen as modified and Black are analogous art because they are in the same field of endeavor, database management information. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Thomsen, to include the teaching of Black, in order to secure and protect a secure network or database. The suggestion to combine is to provide security to the secure database. Response to Arguments Applicant’s arguments have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to CINDY NGUYEN whose telephone number is (571)272-4025. The examiner can normally be reached M-F 8:00-4:30. 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, Apu Mofiz can be reached at 571-272-4080. 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. /CINDY NGUYEN/Examiner, Art Unit 2161
Read full office action

Prosecution Timeline

Apr 15, 2024
Application Filed
Apr 04, 2025
Non-Final Rejection — §103
Jun 23, 2025
Applicant Interview (Telephonic)
Jun 24, 2025
Examiner Interview Summary
Jun 25, 2025
Response Filed
Sep 02, 2025
Final Rejection — §103
Dec 03, 2025
Request for Continued Examination
Dec 12, 2025
Response after Non-Final Action
Jan 16, 2026
Non-Final Rejection — §103
Mar 20, 2026
Interview Requested
Apr 07, 2026
Applicant Interview (Telephonic)
Apr 14, 2026
Examiner Interview Summary

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596762
METHOD FOR PROVIDING INFORMATION, METHOD FOR GENERATING DATABASE, AND PROGRAM
2y 5m to grant Granted Apr 07, 2026
Patent 12572537
LEARNED RESOURCE CONSUMPTION MODEL FOR OPTIMIZING BIG DATA QUERIES
2y 5m to grant Granted Mar 10, 2026
Patent 12566795
Method and system for synchronized search and retrieval of visual work instructions using artificial intelligence
2y 5m to grant Granted Mar 03, 2026
Patent 12554598
DATA RECOVERY METHOD, SYSTEM AND APPARATUS, AND COMPUTER-READABLE STORAGE MEDIUM AND PROGRAM PRODUCT
2y 5m to grant Granted Feb 17, 2026
Patent 12541542
HYBRID AI ARCHITECTURE FOR NATURAL LANGUAGE QUERY
2y 5m to grant Granted Feb 03, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
78%
Grant Probability
87%
With Interview (+9.1%)
3y 4m
Median Time to Grant
High
PTA Risk
Based on 692 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month