IP Library › Granted Patent US 12,282,511
Granted Patent B2
US 12,282,511 · App. 18/080,419 · Granted Apr 22, 2025

Database container orchestrator

Inventors: Boris Dali (Denver, CO); Hao Hu (Sunnyvale, CA)
Assignee: Google LLC
G06F16/90335G06F9/44
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,282,511
App. No.
18/080,419
Granted
Apr 22, 2025
Kind
B2
Abstract

Aspects of the disclosure provide for a database container orchestrator system for deploying and managing containerized databases running on a computing platform. A system can include a database daemon for translating first commands, such as remote procedure calls, into second commands, such as queries built from SQL statements, which cause the database to retrieve data or perform other functions otherwise unavailable to an application incompatible with the database. The first commands received by the database daemon can be defined by an interface of a computing platform running containers for both the database and the database daemon. The interface can be an Application Programming Interface (API), which can include definitions of commands for starting, configuring, and running a containerized database, regardless of the different codebases represented by the containerized database and other applications.

Claims (54)

1. A system comprising:

one or more servers configured to:

receive, by the one or more servers, a custom resource definition (CRD) specifying a configuration of a database deployment;

generate, by the one or more servers, an instance of the database deployment comprising a first container running a database daemon, a second container running the database deployment and a database daemon proxy, and a third container running a first application generated from a first codebase, wherein in generating the instance, the one or more servers are configured to install the database daemon based on the configuration specified in the CRD;

receive a first command by the database daemon running on a first container the first application;

generate, by the database daemon, one or more query commands translating the first command, wherein the one or more query commands, when executed by the database deployment generated from a second codebase different from the first codebase, cause the database deployment to perform operations that are unavailable to the first application; and

send, by the database daemon, the one or more query commands to the database deployment, wherein the database daemon proxy is configured to receive the one or more query commands that were translated from the first command and sent by the database daemon.

2. The system of claim 1 , wherein the first command is a remote procedure call.

3. The system of claim 1 ,

wherein the database deployment is a second database generated from the second codebase; and

wherein the one or more servers are further configured to:

receive remote procedure calls and generate one or more query commands by the database daemon for a third database generated from a third codebase different from the second codebase.

4. The system of claim 1 , wherein the one or more servers are further configured to:

receive, in response to sending the one or more query commands, data responsive to a query defined by the one or more query commands.

5. The system of claim 1 , wherein the database daemon proxy is configured to start the database deployment.

6. The system of claim 5 , wherein the one or more servers are configured to:

receive an image of the database deployment;

store the image of the database deployment in data storage accessible by a cluster formed from the one or more servers; and

generate the database deployment as a containerized database using the image of the database deployment.

7. The system of claim 6 , wherein in generating the instance, the one or more servers are further configured to install the database daemon proxy in the second container.

8. The system of claim 7 , wherein the one or more servers are configured to start the database daemon and database daemon proxy using a database daemon init container.

9. The system of claim 1 , wherein:

the one or more servers comprise a pod of computing nodes operating in a state specified by the CRD, wherein the first, second, and third containers are separate containers and are deployed in the pod.

10. A method performed by one or more servers implementing a database daemon, the method comprising:

receiving, by the one or more servers, a custom resource definition (CRD) specifying a configuration of a database deployment;

generating, by the one or more servers, an instance of the database deployment comprising a first container running a database daemon, a second container running the database deployment and a database daemon proxy, and a third container running a first application generated from a first codebase, wherein in generating the instance, the one or more servers are configured to install the database daemon based on the configuration specified in the CRD;

receiving a first command by the database daemon running on a first container the first application;

generating, by the database daemon, one or more query commands translating the first command, wherein the one or more query commands, when executed by the database deployment generated from a second codebase different from the first codebase, cause the database deployment to perform operations that are unavailable to the first application; and

sending, by the database daemon, the one or more query commands to the database deployment, wherein the database daemon proxy is configured to receive the one or more query commands that were translated from the first command and sent by the database daemon.

11. The method of claim 10 , wherein the first command is a remote procedure call.

12. The method of claim 11 ,

wherein the database deployment is a second database generated from the second codebase; and

wherein the method further comprises:

receiving remote procedure calls and generating one or more query commands by the database daemon for a third database generated from a third codebase different from the second codebase.

13. The method of claim 10 , wherein the method further comprises:

receiving, by the database daemon and in response to sending the one or more query commands, data responsive to a query defined by the one or more query commands.

14. The method of claim 10 ,

wherein the database daemon comprises a database daemon proxy in the second container; and

wherein the method further comprises starting the database deployment using the database daemon proxy.

15. The method of claim 14 , wherein the method further comprises:

receiving an image of the database deployment;

storing the image of the database deployment in data storage accessible by a cluster formed from the one or more servers; and

generating the database deployment as a containerized database using the image of the database deployment.

16. The method of claim 15 , wherein generating the instance comprises installing the database daemon proxy in the second container.

17. The method of claim 15 , further comprising starting the database daemon and database daemon proxy using a database daemon init container.

18. The method of claim 17 , wherein starting the database daemon and the database daemon proxy using the database daemon init container comprises providing an image of the database deployment in memory shared between the first and the second container.

19. The method of claim 10 , wherein:

the one or more servers comprise a pod of computing nodes operating in a state specified by the CRD, wherein the first, second, and third containers are separate containers and are deployed in the pod.

20. One or more non-transitory computer-readable media storing instructions that when executed by one or more nodes causes the one or more nodes to implement a database daemon and perform operations comprising:

receiving, by the one or more nodes, a custom resource definition (CRD) specifying a configuration of a database deployment;

generating, by the one or more nodes, an instance of the database deployment comprising a first container running the database daemon, a second container running the database deployment and a database daemon proxy, and a third container running a first application generated from a first codebase, wherein in generating the instance, the one or more servers are configured to install the database daemon based on the configuration specified in the CRD;

receiving a first command by the database daemon running on a first container, the first application;

generating, by the database daemon, one or more query commands translating the first command, wherein the one or more query commands, when executed by the database deployment generated from a second codebase different from the first codebase, cause the database deployment to perform operations that are unavailable to the first application; and

sending, by the database daemon, the one or more query commands to the database, wherein the database daemon proxy is configured to receive the one or more query commands that were translated from the first command and sent by the database daemon.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2023
From: DALI, BORIS; HU, HAO
To: GOOGLE LLC
Reel/Frame 062438/0866 →
Continuity (2)
Provisional Application 63288796 · Dec 13, 2021
Related Publication 20230185856A1 · Jun 15, 2023
References Cited (6)
US 10404474B1 · Caceres · 2019 [cited by examiner]
US 10545975B1 · Mahdy · 2020 [cited by examiner]
US 10922090B1 · Lieberman · 2021 [cited by examiner]
US 20070073703A1 · Quin · 2007 [cited by examiner]
US 20200073739A1 · Rungta · 2020 [cited by examiner]
EP 3365808B1 · 2021 [cited by examiner]