IP Library › Granted Patent US 7,984,040
Granted Patent B2
US 7,984,040 · App. 12/133,899 · Granted Jul 19, 2011

Methods and systems for querying event streams using multiple event processors

Assignee: Oracle International Corporation
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 7,984,040
App. No.
12/133,899
Granted
Jul 19, 2011
Kind
B2
Abstract

In one embodiment, a system for distributed event processing includes a first event processor and a second event processor. The first event processor receives event data associated with an event stream. The second event processor receives a query associated with the event stream. A request to the first event processor is generated by the second event processor based on the query for a first portion of event data associated with the event stream. The second event processor receives the first portion of event data from the first event processor. The second event processor then generates an event based on the first portion of event data.

Claims (48)

1. A method for distributed event processing, the method comprising:

receiving, at one or more computer systems, a query associated with an event stream;

identifying, with one or more processors associated with the one or more computer systems, a first set of properties associated with the event stream;

identifying, with the one or more processor associated with the one or more computer systems, a second set of properties that satisfy one or more heuristics from the first set of properties;

optimizing, with the one or more processor associated with the one or more computer systems, the query in response to the second set of properties that satisfy the one or more heuristics;

generating, with one or more processors associated with the one or more computer systems, a request addressed to a first event processor hosted by the one or more computer systems for a first portion of event data associated with the event stream;

receiving, at the one or more computer systems, information indicating that the first portion of event data was received at a second event processor hosted by the one or more computer systems;

generating, with the one or more processors associated with the one or more computer systems, an event based on the first portion of event data; and

storing the event in response to the query in a database associated with the one or more computer systems.

2. The method of claim 1 wherein generating, with the one or more processors associated with the one or more computer systems, the request addressed to the first event processor comprises generating an instruction to the first event processor indicating to locally query the event stream to generate the first portion of event data.

3. The method of claim 1 wherein generating, with the one or more processors associated with the one or more computer systems, the request addressed to the first event processor comprises generating an instruction to the first event processor indicating to collocate a subset of the event stream at the second event processor.

4. The method of claim 1 wherein the event stream comprises a virtual event stream having at least one event stream locally accessible to the first event processor and at least one event stream locally accessible to the second event processor.

5. The method of claim 1 wherein optimizing, with the one or more processor associated with the one or more computer systems, the query in response to the second set of properties that satisfy the one or more heuristics comprises rewriting the query to use remote mapping.

6. The method of claim 1 wherein optimizing, with the one or more processor associated with the one or more computer systems, the query in response to the second set of properties that satisfy the one or more heuristics comprises rewriting the query to use remote row sourcing.

7. The method of claim 1 further comprising:

generating, with the one or more processor associated with the one or more computer systems, a request addressed to the second event processor for a second portion of event data associated with the event stream; and

wherein generating, with the one or more processors associated with the one or more computer systems, the event based on the first portion of event data further comprises generating the event based on the second portion of event data.

8. A system for distributed event processing, the system comprising:

a first event processor hosted by a first set of one or more computer systems and configured to receive event data associated with an event stream; and

a second event processor hosted by a second set of one or more computer systems and configured to:

receive a query associated with the event stream,

identify a first set of properties associated with the event stream;

identify a second set of properties that satisfy one or more heuristics from the first set of properties;

optimize the query in response to the second set of properties that satisfy the one or more heuristics;

generate a request addressed to the first event processor for a first portion of event data associated with the event stream,

receive the first portion of event data, and

generate an event based on the first portion of event data.

9. The system of claim 8 wherein the second event processor is further configured to receive a second portion of event data associated with the event stream and to generate the event based the first portion of event data and the second portion of event data.

10. The system of claim 8 wherein the second event processor is configured to generate the request addressed to the first event processor to include an instruction indicating to the first event processor to locally query the event stream to generate the first portion of event data.

11. The system of claim 8 wherein the second event processor is configured to generate the request addressed to the first event processor to include an instruction indicating to the first event processor to collocate a subset of the event stream at the second event processor.

12. The system of claim 8 wherein the event stream comprises a virtual event stream having at least one event stream locally accessible to the first event processor and at least one event stream locally accessible to the second event processor.

13. The system of claim 8 wherein the second event processor is further configured to rewrite the query to use remote mapping in response to the second set of properties that satisfy the one or more heuristics.

14. The system of claim 8 wherein the second event processor is further configured to rewrite the query to use remote row sourcing in response to the second set of properties that satisfy the one or more heuristics.

15. A computer program product stored on a non-transitory computer-readable medium and executable by one or more processors of one or more computer systems for distributed event processing, the computer program product comprising:

code for receiving a query associated with an event stream;

code for identifying a first set of properties associated with the event stream;

code for identifying a second set of properties that satisfy one or more heuristics from the first set of properties;

code for optimizing the query in response to the second set of properties that satisfy the one or more heuristics;

code for generating, based on the query, a request addressed to a first event processor for a first portion of event data associated with the event stream;

code for receiving information indicating that the first portion of event data was received at a second event processor; and

code for generating an event based on the first portion of event data.

16. The computer program product of claim 15 wherein the code for generating the request addressed to the first event processor comprises code for generating an instruction to the first event processor indicating to locally query the event stream.

17. The computer program product of claim 15 wherein the code for generating the request addressed to the first event processor comprises code for generating an instruction to the first event processor indicating to collocate a subset of the event stream at the second event processor.

18. The computer program product of claim 15 wherein the code for optimizing the query in response to the second set of properties that satisfy the one or more heuristics comprises code for rewriting the query to use remote mapping.

19. The computer program product of claim 15 wherein the code for optimizing the query in response to the second set of properties that satisfy the one or more heuristics comprises code for rewriting the query to use remote row sourcing.

20. The computer program product of claim 15 further comprising code for generating a request addressed to the second event processor for a second portion of event data associated with the event stream; and

wherein the code for generating the event based on the first portion of event data further comprises code for generating the event based on the second portion of event data.

21. The computer program product of claim 15 wherein the event stream comprises a virtual event stream having at least one event stream locally accessible to the first event processor and at least one event stream locally accessible to the second event processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2008
From: MISHRA, SHAILENDRA; SRINIVASAN, ANAND; JAIN, NAMIT
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 021694/0214 →
Continuity (2)
Provisional Application 60942131 · Jun 5, 2007
Related Publication 20090037370A1 · Feb 5, 2009