PARALLEL EVENT PROCESSING IN A DATABASE SYSTEM
First Claim
1. A method comprising:
- receiving a first event that occurs in a database system;
for each queue of a plurality of queues, determining a number of events that are enqueued in said each queue;
determining a particular queue, of the plurality of queues, to which to enqueue the first event based, at least in part, on the number of events that are enqueued in each queue of the plurality of queues; and
enqueuing the first event to the particular queue.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for processing events in parallel are provided. Multiple publishers publish events in parallel to a plurality of channels. Each channel is a queue that maintains a list of events that are awaiting to be processed by one or more slave processes. In one approach, all events that need to be persistent are published to a persistent channel, whereas all events that do not need to be persistent are published to one or more in-memory channels. In another approach, for each event, a publisher determines which channel of the plurality of channel to publish the event. The determination is based, at least in part, on the number of events in each channel and, optionally, the type of each event in each channel. In either approach, each event from a single publisher is published to the same channel.
78 Citations
26 Claims
-
1. A method comprising:
-
receiving a first event that occurs in a database system; for each queue of a plurality of queues, determining a number of events that are enqueued in said each queue; determining a particular queue, of the plurality of queues, to which to enqueue the first event based, at least in part, on the number of events that are enqueued in each queue of the plurality of queues; and enqueuing the first event to the particular queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
11. A method comprising:
-
receiving a plurality of events that occur in a database system; enqueuing a first event, of the plurality of events, to a first queue that resides in volatile memory; enqueuing the second event, of the plurality of events, to a second queue that resides in non-volatile memory; a first slave process dequeuing the first event from the first queue, wherein the first slave process is dedicated to processing events only from the first queue; and a second slave process dequeuing the second event from the second queue, wherein the second slave process is dedicated to processing events only from the second queue. - View Dependent Claims (12, 24, 25)
-
-
13. A method comprising:
-
determining that an event has occurred in a database system; determining a type of the event; if the type is a first type, then (a) determining which first channel, of a plurality of channels, is least loaded among the plurality of channels, and (b) placing the event in the first channel; and if the type is a second type, then (a) determining which second channel, of the plurality of channels, is most loaded among the plurality of channels, and (b) placing the event in the second channel. - View Dependent Claims (26)
-
Specification