Real-time event processing system with subscription model
First Claim
1. An apparatus for processing a plurality of events generated by at least one system application, the apparatus comprising:
- a processor for executing code to implement at least a portion of at least one real-time analysis engine, wherein the real-time analysis engine processes events in accordance with subscription information stored in a main-memory database system and indicating subscription of customers to one or more services supported by the real-time analysis engine, and wherein the subscription information is stored in the form of a compact subscription table generated by applying at least one of a translation operation and an update propagation operation to at least one more complex subscription table generated by the system application.
5 Assignments
0 Petitions
Accused Products
Abstract
A real-time event processing system (EPS) for processing a sequence of events generated by one or more applications. In an illustrative embodiment, the EPS includes a set of real-time analysis engines (RAEs) operating in parallel, e.g., a set of clusters each including one or more RAEs, and one or more mappers for mapping a given input event to a particular one of the clusters. A main-memory database system is coupled to the RAEs, and the RAEs process events associated with input streams from one or more data sources and deliver output streams to one or more data sinks. The data source and data sinks may be, e.g., network elements, clients, databases, etc. The events are processed in accordance with services implemented in the RAEs, and utilize data stored in a memory portion of the main-memory database system accessible to the RAEs. The data may include, e.g., a subscription table storing subscription information indicating the service or services that should be executed for a given event. The services are generated in a service authoring environment (SAE) in the EPS, using a declarative language. The SAE generates the services in the form of object code components, e.g., dynamically linked libraries, which may be dynamically linked into the RAEs without interrupting event processing. Recovery information regarding a recovery point for a given RAE or set of RAEs in the EPS may be stored in a memory portion of the main-memory database system, and utilized to implement a roll-back of the RAE to the recovery point.
-
Citations
26 Claims
-
1. An apparatus for processing a plurality of events generated by at least one system application, the apparatus comprising:
a processor for executing code to implement at least a portion of at least one real-time analysis engine, wherein the real-time analysis engine processes events in accordance with subscription information stored in a main-memory database system and indicating subscription of customers to one or more services supported by the real-time analysis engine, and wherein the subscription information is stored in the form of a compact subscription table generated by applying at least one of a translation operation and an update propagation operation to at least one more complex subscription table generated by the system application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A method of processing events generated by at least one system application, the method comprising the steps of:
-
processing the events in at least one real-time analysis engine, in accordance with subscription information stored in a memory portion of a main-memory database system and indicating subscription of customers to one or more services supported by the real-time analysis engine, and wherein the subscription information is stored in the form of a compact subscription table generated by applying at least one of a translation operation and an update propagation operation to at least one more complex subscription table generated by the system application. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
receiving the events in the real-time analysis engine in the form of one or more input streams from at least one data source; - and
delivering information representative of processed events in one or more output streams to at least one data sink.
-
-
17. The method of claim 15 wherein the stored subscription information indicates at least one service that should be executed for at least one of a given event and a given subscriber.
-
18. The method of claim 15 wherein the compact subscription table is stored in the memory portion of the main-memory database system.
-
19. The method of claim 18 wherein the compact subscription table includes at least one of a subscriber identifier, a start timestamp, an end timestamp, and a subscription term.
-
20. The method of claim 19 wherein the compact subscription table at any particular point in time includes at most one relevant entry for each subscriber.
-
21. The method of claim 19 further including the step of specifying the subscription term using a run-time interpretable subscription language.
-
22. The method of claim 19 further including the step of generating the subscription term for a given event by concatenating a pre-processing subscription term, an explicit subscription term, and a post-processing subscription term.
-
23. The method of claim 22 further including the step of caching the pre- and post-processing terms between events such that the pre- and post-processing terms do not require a run-time look-up operation.
-
24. The method of claim 18 further including the steps of determining if a given event is a non-subscribed event or a subscribed event, directly invoking a corresponding event handler if the event is a non-subscribed event, and accessing the stored subscription information to determine at least one event handler if the event is a subscribed event.
-
25. The method of claim 24 further including the step of accessing the stored subscription information to determine a plurality of event handlers and an order in which to call the event handlers if the given event is a subscribed event.
-
26. An article of manufacture comprising a machine-readable medium for storing one or more programs for processing events generated by at least one system application, wherein the programs when executed by a processor implement the step of processing the events in at least one real-time analysis engine, in accordance with subscription information stored in the form of a compact subscription table in a main-memory database system and indicating subscription of customers to one or more services supported by the real-time analysis engine wherein the compact subscription table is generated by applying at least one of a translation operation and an update propagation operation to at least one more complex subscription table generated by the system application.
Specification