Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
2. Claims 1-2, 4-9, 11-16, and 18-23 remain pending in the application. Claim 4 has been amended.
3. This office action is in response to the RCE filed 04/01/2026.
4. Claims 1, 8 and 15 are independent claims.
5. The office action is made Non-Final.
Information Disclosure Statement
6. The information disclosure statement (IDSs) submitted on 02/06/2026 and 07/07/2026 were considered by the examiner.
Examiner Note
8. The Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the Applicant(s). Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the Applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Claim Rejections - 35 USC § 103
9. 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 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.
10. 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) A patent may not be obtained through the invention is not identically disclosed or described as set forth in section 102 of this title, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negatived by the manner in which the invention was made.
11. Claims 1, 2, 5, 8-9, 12, 15, 16 and 19 are rejected under 35 U.S.C.103 as being unpatentable over Willehadson et al (US 20050091653 A1) hereinafter as Willehadson in view of Ford et al (US 20170041296 A1) hereinafter as Ford.
12. Regarding claim 1, Willehadson teaches A method for selecting database servers to process input/output (I/O) requests (Abstract: A method and apparatus for distributing load between a plurality of servers, for handling incoming service requests (input/output (I/O) requests) in a server system.), the method comprising,
by a routing server ([0050], “Upon receiving the request, the front-end server (a routing server) parses the xml and extracts the information needed to execute the request”, [0009], “Server allocation is typically performed by using a load manager node or the like (rooting server)”):
receiving, from a client device, a request to perform an input/output operation to a database file ([0016], “user ID (user account)”, [0031-0032], “the service provider will request for needed user data, such as terminal capabilities and client profile, e.g., including predefined preferences and interests (user account).” [0034], “a service request may require the retrieval of certain data which is used as input for executing a specific processing task or service application (input/output operation).”, [0046], Fig 4, step 400, [0052], “The service request is received in a first step 400”);
Willehadson implicitly teaches wherein the database file is encrypted with an encryption key that corresponds to a user account ([0015-0017], “deriving a hash number from a user ID and calculating a server ID number from the derived hash number, server ID = hash (user ID) modulo n (1), where n is the number of possible secondary servers, and the modulo operator providing an integer between 0 and n-1.”, [0044-0045]).
referencing a configuration file to identify a group of database servers through which the database file is accessible ([0034], [0042-0043]. [0050], “Upon receiving the request, the front-end server (routing server) parses the xml (a configuration file) and extracts the information needed to execute the request. The front-end server then verifies that the client has a valid session by sending a request to one of several session servers, i.e. a secondary server. Which session server to use is determined by applying a hashing algorithm, i.e. a second scheduling algorithm, to the user ID of the client… a request is sent to an instant messaging server. The above-mentioned hashing algorithm may be used again to select the correct one.”);
In line with Applicant Pre-Grant Pub [0048], “the hash function receiving the inputs “user@domain.com” and “10”, and outputting an index, name, etc. that corresponds to one of the ten database servers 114. For example, the output of the hash function can be “5”, which corresponds to a fifth one of the ten database servers 114 (e.g., a database server 114-5).”, [0066], “At step 406, the routing server 108 provides, to a hash function, (i) the user account, and (ii) a count of the group of database servers, to produce a hash value that corresponds to a particular database server within the group of database servers.”
producing a hash value of the user account and a count of the group of database servers, wherein the hash value identifies a particular database server within the group of database servers ([0016-0017], “server ID=hash (user ID) modulo n (1), where n is the number of possible secondary servers, and the modulo operator providing an integer between 0 and n-1.”, [0044-0045]) and
in response to determining that the particular database server is accessible: providing the request to the particular database server (Fig 4, [0052], “The service request is received in a first step 400, wherein a primary server is assigned in a step 402. The request is then processed in the assigned primary server in a step 404”, [0007], "load balancer", [0009], “The allocation scheme used for selecting a server is normally based on the current load on a predetermined set of servers, such that the server having the lowest current load, with respect to memory resources and/or CPU (Central Processing Unit) capability, etc, is selected for the client. Server allocation is typically performed by using a load manager node or the like (rooting server).” [0044-0045], Fig 4, [0052], “The service request is received in a first step 400, wherein a primary server is assigned in a step 402. The request is then processed in the assigned primary server in a step 404”, [0055], “The computing work for selecting which server to be assigned for handling a particular request can be performed instantly, more or less, resulting in only a small limited overhead”) and
in response to determining that the particular database server is inaccessible: accessing a database server information file within the configuration file to determine availability of a different database server; selecting, by the routing server, the different database server; and routing the request to the different database server ([0007], "load balancer", [0009], “The allocation scheme used for selecting a server is normally based on the current load on a predetermined set of servers, such that the server having the lowest current load, with respect to memory resources and/or CPU (Central Processing Unit) capability, etc, is selected for the client. Server allocation is typically performed by using a load manager node or the like (rooting server).” [0044-0045], Fig 4, [0052], “The service request is received in a first step 400, wherein a primary server is assigned in a step 402. The request is then processed in the assigned primary server in a step 404. Thereafter, it is checked, in a step 406, whether the request requires that a storing task is performed. If not, the request handling process ends in a step 408. Otherwise, a secondary server is assigned in a step 410 and the storing task Is performed accordingly in that server (determine availability of a different database server),”, [0055], “The computing work for selecting which server to be assigned for handling a particular request can be performed instantly, more or less, resulting in only a small limited overhead.”).
However, Ford teaches wherein the database file is encrypted with an encryption key that corresponds to a user account ([0257], “storing a data file as an encrypted data file along with a plurality of encryption keys in the secure database, each of the plurality of encryption keys providing access to the encrypted data file… The secure identifier may be a password. Authenticating may be performed by utilizing the user secure identifier to check the user's permission profile for permission to access the data file offline.”).
It would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to incorporate the concept of teachings suggested in Ford’s system into Willehadson’s and by incorporating Ford into Willehadson because both systems are related to networked secure content would secure data exchange (Ford, [0003-0004]).
13. Regarding claim 2, Willehadson and Ford teach the invention as claimed in claim 1 above and further Willehadson teaches wherein performing the input/output operation includes performing at least one read operation and a write operation to the database file ([0020], “The storing task may involve any of: storing new data, updating already stored data, and retrieving stored data”, [0034], [0048]), also Kaplan teaches the limitation at ([0035], “data read requests”).
14. Regarding claim 5, Willehadson and Ford teach the invention as claimed in claim 1 above and further Willehadson teaches wherein the configuration file is shared among a group of routing servers of which the routing server is a member ([0007], [0010], [0055], load sharing), also Kaplan teaches the limitation at ([0064], “The resulted cryptographic secrets can be shared between the load balancers and application enclaves and can be used to encrypt and authenticate any future requests from the load balancer module 410 and application enclave machine layers of the application.”, [0085], “determining, by the load balancer and for each application enclave, cryptographic information comprising at least one of: a shared cryptographic key, a cryptographic credential, or a hash authentication of an application configured to be executed by the plurality of application enclaves.”, [0087]).
15. Regarding claims 8-9 and 12, those claims recite a non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a routing server, cause the routing server to performs the method of claims 1, 2 and 5 respectively and are rejected under the same rationale.
16. Regarding claims 15, 16 and 19, those claims recite a system performs the method of claims 1, 2 and 5 respectively and are rejected under the same rationale.
18. Claims 4, 11 and 18 are rejected under 35 U.S.C.103 as being unpatentable over Willehadson et al (US 20050091653 A1) in view of Ford et al (US 20170041296 A1) and further in view of Angius et al (US 11514080, hereinafter as Angius).
19. Regarding claim 4, Willehadson and Ford teach the invention as claimed in claim 1,
Willehadson further teaches receiving, from the particular database server, an indication that the request could not be processed, wherein the indication identifies a different database server ([0007], "load balancer", [0009], “The allocation scheme used for selecting a server is normally based on the current load on a predetermined set of servers, such that the server having the lowest current load, with respect to memory resources and/or CPU (Central Processing Unit) capability, etc, is selected for the client. Server allocation is typically performed by using a load manager node or the like (rooting server).” [0044-0045], Fig 4, [0052], “The service request is received in a first step 400, wherein a primary server is assigned in a step 402. The request is then processed in the assigned primary server in a step 404. Thereafter, it is checked, in a step 406, whether the request requires that a storing task is performed. If not, the request handling process ends in a step 408. Otherwise, a secondary server is assigned in a step 410 and the storing task Is performed accordingly in that server (determine availability of a different database server),”, [0055], “The computing work for selecting which server to be assigned for handling a particular request can be performed instantly, more or less, resulting in only a small limited overhead.”).
Willehadson and Ford do not specifically teach wherein the indication identifies a different database server in possession of an exclusive lock for accessing to the database file; and providing the request to the different database server.
However, Angius teaches receiving, from the particular database server, an indication that the request could not be processed, wherein the indication identifies a different database server in possession of an exclusive lock for accessing to the database file; and providing the request to the different database server (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).
It would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to incorporate the concept of teachings suggested in Angius’s system into Willehadson and Ford combined system and by incorporating Angius into Willehadson and Ford combined system because all systems are related to database management systems would 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.
20. Regarding claim 11, this claim recites a non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a routing server, cause the routing server to performs the method of claim 4 and is rejected under the same rationale.
21. Regarding claim 18, this claim recites a system performs the method of claim 4 and is rejected under the same rationale.
22. Claims 6, 7, 13, 14 and 20 are rejected under 35 U.S.C.103 as being unpatentable over Willehadson et al (US 20050091653 A1) in view of Ford et al (US 20170041296 A1) and further in view of Vrtiska et al (US 20240403316 A1) hereinafter as Vrtiska.
23. Regarding claim 6, Willehadson and Ford teach the invention as claimed in claim 1, Willehadson and Ford do not specifically teach detecting, through interactions with at least one database server within the group of database servers, and/or at least one other routing server, at least one change to the group of database servers; and modifying the configuration file to reflect the at least one change.
However, Vrtiska teaches detecting, through interactions with (i) at least one database server within the group of database servers, and/or (ii) at least one other routing server, at least one change to the group of database servers; and modifying the configuration file to reflect the at least one change ([0279], “in response to an event on a given cluster. An event on a cluster may include one or more of: a change in status of a resource on the cluster, a change in resource capacity, a change in resource utilization, a configuration change, among other types of changes to the resources of a cluster.”).
It would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to incorporate the concept of teachings suggested in Vrtiska’s system into Willehadson and Ford combined system and by incorporating Vrtiska into Willehadson and Ford combined system because all systems are related to databases and database management systems would Provide multi-cluster database deployment.
24. Regarding claim 7, Willehadson, Ford and Vrtiska teach the invention as claimed in claim 6 above, and further Vrtiska teaches wherein the at least one change comprises at least one of: an addition of a new database server to the group of database servers, a removal of an existing database server from the group of database servers, or at least one change to at least one property of at least one database server within the group of database servers ([0005]) ([0279], “in response to an event on a given cluster. An event on a cluster may include one or more of: a change in status of a resource on the cluster, a change in resource capacity, a change in resource utilization, a configuration change, among other types of changes to the resources of a cluster.”).
25. Regarding claims 13 and 14, those claims recite a non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a routing server, cause the routing server to performs the method of claims 6 and 7 respectively and are rejected under the same rationale.
26. Regarding claim 20, this claim recites a system performs the method of claim 6 and is rejected under the same rationale.
27. Claims 21 and 22 are rejected under 35 U.S.C.103 as being unpatentable over Willehadson et al (US 20050091653 A1) in view of Ford et al (US 20170041296 A1) and further in view of Parulka et al (US 10530858 B1) hereinafter as Parulka.
28. Regarding claim 21, Willehadson, Ford teach the invention as claimed in claim 1, Willehadson, Ford do not specifically teach selecting the different server on a random basis.
However, Parulka teaches selecting the different server on a random basis (col 11, lines 24-37, “the hash function may be represented by the jump consistent hash function which inputs a key (i.e., the digital content item identifier) and a number of network nodes, and returns the identifier of one of the network nodes. The jump consistent hash function produces relatively even content distribution across the network nodes”, col 14, lines 8-19, “a requestor node was randomly selected from the node list. The requestor node implements the content look-up function to identify the network node storing a copy of the requested digital content item.”).
Examiner Note: the jump consistent hash function produces a random number.
It would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to incorporate the concept of teachings suggested in Parulka’s system into Willehadson and Ford combined system and by incorporating Parulka into Willehadson and Ford combined system because all systems are related to databases and database management systems would Replication of Content Using Distributed Edge Cache in Wireless Mesh Networks.
29. Regarding claim 22, Willehadson and Ford teach the invention as claimed in claim 1, Willehadson and Ford do not specifically teach wherein producing the hash value comprises using a jump hash function.
However, Parulka teaches wherein producing the hash value comprises using a jump hash function (col 11, lines 24-37, “the hash function may be represented by the jump consistent hash function which inputs a key (i.e., the digital content item identifier) and a number of network nodes, and returns the identifier of one of the network nodes. The jump consistent hash function produces relatively even content distribution across the network nodes”, col 14, lines 8-19, “a requestor node was randomly selected from the node list. The requestor node implements the content look-up function to identify the network node storing a copy of the requested digital content item.”).
It would have been obvious to one of ordinary skill in the art before the effective filling date of the claimed invention to incorporate the concept of teachings suggested in Parulka’s system into Willehadson and Ford combined system and by incorporating Parulka into Willehadson and Ford combined system because all systems are related to databases and database management systems would Replication of Content Using Distributed Edge Cache in Wireless Mesh Networks.
Respond to Amendments and Arguments
30. In the REM received 04/01/2026. Applicant has amended claim 4 to recite new features and argued that Willehadson and Ford fail to teach one or more features of amended claims. For a number of reasons, including but not limited to, the following:
The cited references fail to teach or suggest all of the elements of the independent claims. Independent claim 1 recites, in pertinent part:
A method for selecting database servers to process input/output (I/O) requests, the method comprising, by a routing server: receiving, from a client device, a request to perform an input/output operation to a database file... referencing a configuration file to identify a group of database servers through which the database file is accessible ...
in response to determining that the particular database server is inaccessible: accessing a database server information file within the configuration file to determine availability of a different database server; selecting, by the routing server, the different database
server; and routing the request to the different database server. (Emphasis added).
Examiner presents the following responses to Applicant’s arguments:
Applicant’s 35 U.S.C. § 103 arguments on claims 1-2, 4-9, 11-16, and 18-23 has been fully considered but they are not persuasive. Referring to the previous Office action, Examiner has cited relevant portions of the references as a means to illustrate the systems as taught by the prior art. As a means of providing further clarification as to what is taught by the references used in the first Office action, Examiner has expanded the teachings for comprehensibility while maintaining the same grounds of rejection of the claims, except as noted above in the section labeled “Status of Claims.” This information is intended to assist in illuminating the teachings of the references while providing evidence that establishes further support for the rejections of the claims.
The cited references do teach or suggest all of the elements of the independent claims.
Also, for the amnede claim 4, Angius teaches receiving, from the particular database server, an indication that the request could not be processed, wherein the indication identifies a different database server in possession of an exclusive lock for accessing to the database file; and providing the request to the different database server (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).
CONCLUSION
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HICHAM SKHOUN whose telephone number is (571)272-9466. The examiner can normally be reached Normal schedule: Mon-Fri 10am-6:30pm.
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 5712701698. 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.
/HICHAM SKHOUN/Primary Examiner, Art Unit 2164