IP Library Granted Patent US 11,977,549
Granted Patent B2
US 11,977,549 · App. 15/700,914 · Granted May 7, 2024

Clustering event processing engines

Inventors: Hoyong Park (San Jose, CA); Sandeep Bishnoi (Mill Valley, CA); Prabhu Thukkaram (San Ramon, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/24568G06F8/35G06F9/542G06F16/21G06F16/24532G06F16/248G06F16/278G06F16/9024G06F16/90335G06F16/2433
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 11,977,549
App. No.
15/700,914
Granted
May 7, 2024
Kind
B2
Abstract

An event processing system for processing events in an event stream is disclosed. The system can launch a first CQL engine in a cluster of CQL engines using a CQL engine tracking engine. The system can schedule, using the CQL engine tracking engine, the first CQL engine to process a batch of a continuous stream of input events related to an application. The system can track, using the CQL engine tracking engine, the first CQL engine to be scheduled for execution. The system can then execute, using the CQL engine tracking engine, the first CQL engine to process the batch of the continuous stream of input events to generate a set of output events related to the application.

Claims (40)

1. A method for managing Continuous Query Language (CQL) engines, comprising:

determining, using a CQL engine tracking engine, a total number of CQL engines to launch in a cluster;

receiving, using the CQL engine tracking engine, a list of executors for executing the cluster;

scheduling, using a first scheduler associated with the CQL engine tracking engine, each CQL engine with one of the list of executors, the scheduling comprising assigning, by the first scheduler, an executor from the list of executors to execute a first CQL engine in the cluster based at least in part on executor information comprising an executor host and an executor identifier associated with the executor;

launching, using a second scheduler associated with the CQL engine tracking engine, the first CQL engine as a long running task for execution by the executor, the long running task comprising a task that returns only upon a crash or fault of executing the first CQL engine in the cluster;

scheduling, using the first scheduler of the CQL engine tracking engine, the first CQL engine to process a partition of a CQL Resilient Distributed Dataset (RDD) associated with a batch of a continuous stream of input events related to an application;

determining, by the first scheduler of the CQL engine tracking engine, location information associated with the CQL Resilient Distributed Dataset (RDD) the location information comprising a partition identifier and a query identifier associated with the partition of the CQL RDD;

mapping, by the first scheduler of the CQL engine tracking engine, the location information to the executor assigned to execute the first CQL engine;

tracking, using the CQL engine tracking engine, the first CQL engine to be scheduled for execution; and

executing, using the CQL engine tracking engine, the first CQL engine to process the partition of the CQL RDD associated with the batch of the continuous stream of input events to generate a set of output events related to the application.

2. The method of claim 1 , wherein a state of the first CQL engine comprises at least one of an inactive state, a scheduled state, or an active state.

3. The method of claim 1 , wherein the first CQL engine is one of the CQL engines in the cluster.

4. The method of claim 1 , wherein the CQL engine tracking engine is implemented by a driver and the first CQL engine is implemented by an executor in the list of executors.

5. A system, comprising:

a memory configured to store computer-executable instructions; and

a processor configured to access the memory and execute the computer-executable instructions to:

determine, using a Continuous Query Language (CQL) engine tracking engine, a total number of CQL engines to launch in a cluster;

receive, using the CQL engine tracking engine, a list of executors for executing the cluster;

schedule, using a first scheduler associated with the CQL engine tracking engine, each CQL engine with one of the list of executors, the instructions to schedule comprising instructions to assign, by the first scheduler, an executor from the list of executors to execute a first CQL engine in the cluster based at least in part on executor information comprising an executor host and an executor identifier associated with the executor;

launch, using a second scheduler associated with the CQL engine tracking engine, the first CQL engine as a long running task for execution by the executor, the long running task comprising a task that returns only upon a crash or fault of executing the first CQL engine in the cluster;

schedule, using the first scheduler of the CQL engine tracking engine, the first CQL engine to process a partition of a CQL Resilient Distributed Dataset (RDD associated with a batch of a continuous stream of input events related to an application;

determine, by the first scheduler of the CQL engine tracking engine, location information associated with the CQL Resilient Distributed Dataset (RDD), the location information comprising a partition identifier and a query identifier associated with the partition of the CQL RDD;

map, by the first scheduler of the CQL engine tracking engine, the location information to the executor assigned to execute the first CQL engine;

track, using the CQL engine tracking engine, the first CQL engine to be scheduled for execution; and

execute, using the CQL engine tracking engine, the first CQL engine to process the partition of the CQL RDD associated with the batch of the continuous stream of input events to generate a set of output events related to the application.

6. The system of claim 5 , wherein a state of the first CQL engine comprises at least one of an inactive state, a scheduled state, or an active state.

7. The system of claim 5 , wherein the first CQL engine is one of the CQL engines in the cluster.

8. The system of claim 5 , wherein the CQL engine tracking engine is implemented by a driver and the first CQL engine is implemented by an executor in the list of executors.

9. A non-transitory computer-readable medium storing computer-executable code that, when executed by a processor, cause the processor to perform operations comprising:

determining, using a Continuous Query Language (CQL) engine tracking engine, a total number of CQL engines to launch in a cluster;

receiving, using the CQL engine tracking engine, a list of executors for executing the cluster;

scheduling, using a first scheduler associated with the CQL engine tracking engine, each CQL engine with one of the list of executors, the scheduling comprising assigning, by the first scheduler, an executor from the list of executors to execute a first CQL engine in the cluster based at least in part on executor information comprising an executor host and an executor identifier associated with the executor;

launching, using a second scheduler associated with the CQL engine tracking engine, the first CQL engine as a long running task for execution by the executor, the long running task comprising a task that returns only upon a crash or fault of executing the first CQL engine in the cluster;

scheduling, using the first scheduler of the CQL engine tracking engine, the first CQL engine to process a partition of a CQL Resilient Distributed Dataset (RDD associated with a batch of a continuous stream of input events related to an application;

determining, by the first scheduler of the CQL engine tracking engine, location information associated with the CQL Resilient Distributed Dataset (RDD) the location information comprising a partition identifier and a query identifier associated with the partition of the CQL RDD;

mapping, by the first scheduler of the CQL engine tracking engine, the location information to the executor assigned to execute the first CQL engine;

tracking, using the CQL engine tracking engine, the first CQL engine to be scheduled for execution; and

executing, using the CQL engine tracking engine, the first CQL engine to process the partition of the CQL RDD associated with the batch of the continuous stream of input events to generate a set of output events related to the application.

10. The non-transitory computer-readable medium of claim 9 , wherein a state of the first CQL engine comprises at least one of an inactive state, a scheduled state, or an active state.

11. The non-transitory computer-readable medium of claim 9 , wherein the CQL engine tracking engine is implemented by a driver and the first CQL engine is implemented by an executor in the list of executors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2017
From: PARK, HOYONG; BISHNOI, SANDEEP; THUKKARAM, PRABHU
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 043612/0178 →
Continuity (2)
Provisional Application 62395216 · Sep 15, 2016
Related Publication 20180075163A1 · Mar 15, 2018