# US 12,001,431 B2 · System and method for upgrading sparkline cluster with zero downtime

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,431 B2
- Document ID: US12001431B2
- Status: Granted
- Kind: B2
- Application number: 17/187,544
- Filed: 2021-02-26
- Published: 2022-09-01
- Granted: 2024-06-04
- Earliest claimed: 2021-02-26
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Puneet Jaiswal; Devaraj Das; Devarajulu Kavali; Venkata Nagarjun Guraja; Sandeep Akinapelli; Vivek Kumar Pathak
- Web page: https://patentgrep.com/patent/US12001431B2

## CPC

- G06F 16/24542: {Plan optimisation}
- G06F 8/656: while running
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present embodiments relate to updating a dataflow interactive cluster with zero downtime. A request to update a first dataflow cluster can be received, and a second dataflow cluster can be generated as a replacement cluster to execute received queries. Generating the second dataflow cluster can include identifying a second series of executor nodes that are configured to execute queries from the gateway node via a second driver node. A first update to a configuration of a host configuration node can be performed to register the second dataflow cluster as an active endpoint and identify the first dataflow cluster as an inactive endpoint. When no active queries exist, a second update to the configuration can be provided to remove the first dataflow cluster from the configuration to direct subsequent queries from the gateway node to the second dataflow cluster.

## Claims

### Claim 1

A method comprising:
obtaining a request to update a first dataflow cluster, the first dataflow cluster directing query data from a gateway node to a first series of executor nodes to execute queries via a first driver node;
responsive to obtaining the request to update the first dataflow cluster, generating a second dataflow cluster as a replacement to the first dataflow cluster, generating the second dataflow cluster comprising:
identifying a second series of executor nodes from a new node pool that corresponds to the second dataflow cluster, the second series of executor nodes configured to execute queries from the gateway node via a second driver node;
causing a first update to a configuration of a host configuration node to register the second dataflow cluster as an active endpoint for subsequent queries and identify the first dataflow cluster as an inactive endpoint; and
responsive to determining that no active queries exist, causing a second update to the configuration of the host configuration node to remove the first dataflow cluster from the configuration, causing direction of subsequent query data from the gateway node to the second dataflow cluster.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second series of executor nodes comprise cache data mapping file system data for segment caching, and the cache data mapping file system data for segment caching is included in both the first series of executor nodes and the second series of executor nodes.

### Claim 3 (depends on 1)

The method of claim 1, wherein the request to update the first dataflow cluster indicates a request to provide any of a security patch, a container engine version update, and a dataflow-interactive upgrade.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
responsive to forwarding a first query to the first dataflow cluster, determining that execution of the first query is unsuccessful;
responsive to determining that the execution of the first query is unsuccessful, logging data relating to the first query in a failed query history database; and
responsive to the causing of the second update to the configuration of the host configuration node, forwarding the first query to the second dataflow cluster for execution by the second series of executor nodes.

### Claim 5 (depends on 1)

The method of claim 1, wherein the gateway node maintains a listing of dataflow clusters independent to the configuration maintained by the host configuration node, and wherein the gateway node periodically updates the listing of dataflow clusters using the configuration received from the host configuration node.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
generating the first dataflow cluster, including:
creating the first dataflow cluster under a container engine with a dedicated namespace;
associating the gateway node with the first dataflow cluster, the gateway node exposing a database connectivity application programming interface (API) under the dedicated namespace, the gateway node exposed via the host configuration node; and
updating the configuration at the host configuration node to bind a load balancing node of the first dataflow cluster to the gateway node by binding a domain name system (DNS) identifier to the dedicated namespace to allow access to the first dataflow cluster.

### Claim 7 (depends on 1)

The method of claim 1, wherein the query data includes a database connectivity query and is served by the gateway node over Hypertext Transfer Protocol Secure (HTTPS), and wherein the method further comprises:
responsive to determining that the database connectivity query is associated with a previously-provided query, forwarding the database connectivity query to the first dataflow cluster when the configuration provides that the first dataflow cluster is active or inactive; and
responsive to determining that the database connectivity query is associated with a new query, forwarding the database connectivity query to the second dataflow cluster according to the configuration.

### Claim 8 (depends on 1)

The method of claim 1, wherein the request to update the first dataflow cluster is obtained by a workflow management node, and wherein the request to update the first dataflow cluster is received by the workflow management node via a dataflow interactive API.

### Claim 9

A non-transitory computer-readable medium including stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process, the process comprising:
obtaining a request to update a first dataflow cluster, the first dataflow cluster directing query data from a gateway node to a first series of executor nodes to execute queries via a first driver node;
generating a second dataflow cluster, generating the second dataflow cluster comprising:
establishing a second series of executor nodes from a new node pool, the second series of executor nodes comprise cache data mapping file system data for segment caching; and
establishing a second driver node configured to forward queries from the gateway node to the second series of executor nodes;
causing a first update to a configuration of a host configuration node to register the second dataflow cluster as an active endpoint for subsequent queries and identify the first dataflow cluster as an inactive endpoint; and
responsive to determining that no active queries exist, causing a second update to the configuration of the host configuration node to remove the first dataflow cluster from the configuration, causing direction of subsequent query data from the gateway node to the second dataflow cluster.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the cache data mapping file system data for segment caching is common to both the first series of executor nodes and the second series of executor nodes.

### Claim 11 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the process further comprises:
responsive to forwarding a first query to any of the first dataflow cluster or the second dataflow cluster, determining that execution of the first query is unsuccessful;
responsive to determining that the execution of the first query is unsuccessful, logging data relating to the first query in a failed query history database; and
forwarding the first query to either the first dataflow cluster or the second dataflow cluster for execution by the second series of executor nodes.

### Claim 12 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the process further comprises:
transmitting the configuration maintained by the host configuration node to the gateway node, the gateway node maintaining a listing of dataflow clusters independent to the configuration maintained by the host configuration node.

### Claim 13 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the process further comprises:
generating the first dataflow cluster, including:
creating the first dataflow cluster under a container engine with a dedicated namespace;
associating the gateway node with the first dataflow cluster, the gateway node exposing a database connectivity application programming interface (API) under the dedicated namespace, the gateway node exposed via the host controller node; and
updating the configuration at the host configuration node to bind a load balancing node of the first dataflow cluster to the gateway node by binding a domain name system (DNS) identifier to the dedicated namespace to allow access to the first dataflow cluster.

### Claim 14 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the query data includes a database connectivity query and is served by the gateway node over Hypertext Transfer Protocol Secure (HTTPS), and wherein the process further comprises:
responsive to determining that the database connectivity query is associated with a previously-provided query, forwarding the database connectivity query to the first dataflow cluster when the configuration provides that the first dataflow cluster is active or inactive; and
responsive to determining that the database connectivity query is associated with a new query, forwarding the database connectivity query to the second dataflow cluster according to the configuration.

### Claim 15

A system comprising:
a processor; and
a memory including a sequence of instructions that, when executed by the processor causes the processor to execute a process, the process comprising:
obtaining a request to update a first dataflow cluster configured to execute queries provided by a gateway node;
generating a second dataflow cluster as a replacement to the first dataflow cluster, the second dataflow cluster comprising a second series of executor nodes, the second series of executor nodes configured to execute subsequent queries provided from the gateway node;
causing a first update to a configuration to register the second dataflow cluster as an active endpoint for subsequent queries and identify the first dataflow cluster as an inactive endpoint; and
responsive to determining that no active queries exist, causing a second update to the configuration to remove the first dataflow cluster from the configuration, causing direction of subsequent queries from the gateway node to the second dataflow cluster.

### Claim 16 (depends on 15)

The system of claim 15, wherein the second series of executor nodes comprise cache data mapping file system data for segment caching, and the cache data mapping file system data for segment caching is included in both a first series of executor nodes included in the first dataflow cluster and the second series of executor nodes.

### Claim 17 (depends on 15)

The system of claim 15, wherein the request to update the first dataflow cluster is obtained by a workflow management node, and wherein the request to update the first dataflow cluster indicates a request to provide any of a security patch, a container engine version update, and a dataflow-interactive upgrade.

### Claim 18 (depends on 15)

The system of claim 15, wherein the gateway node maintains a listing of dataflow clusters independent to the configuration maintained by a host configuration node, and wherein the gateway node periodically updates the listing of dataflow clusters using the configuration received from the host configuration node.

### Claim 19 (depends on 15)

The system of claim 15, wherein the process further comprises:
generating the first dataflow cluster, including:
creating the first dataflow cluster under a container engine with a dedicated namespace;
associating the gateway node with the first dataflow cluster, the gateway node exposing a database connectivity application programming interface (API) under the dedicated namespace, the gateway node exposed via the host controller node; and
updating the configuration at the host configuration node to bind a load balancing node of the first dataflow cluster to the gateway node by binding a domain name system (DNS) identifier to the dedicated namespace to allow access to the first dataflow cluster.

### Claim 20 (depends on 15)

The system of claim 15, wherein the process further comprises:
receiving query data that includes a database connectivity query and is served by the gateway node over Hypertext Transfer Protocol Secure (HTTPS);
responsive to determining that the database connectivity query is associated with a previously-provided query, forwarding the database connectivity query to the first dataflow cluster when the configuration provides that the first dataflow cluster is active or inactive; and
responsive to determining that the database connectivity query is associated with a new query, forwarding the database connectivity query to the second dataflow cluster according to the configuration.
