Event processing in a flash memory-based object store
First Claim
1. A method for processing an event in a database management system that is stored on one or more solid state devices, comprising:
- instantiating a plurality of threads that are each configured to retrieve items from a first queue of items, wherein each item in the first queue of items is associated with a particular event occurring within the database management system, wherein a first particular event is a message that indicates an activity requiring work has occurred within the database management system, and wherein the first particular event is related to a second event;
in response to a particular thread, of the plurality of threads, retrieving an item from the first queue of items, the particular thread processing the first particular event associated with the item retrieved by the particular thread; and
in response to an event dispatcher adding an item associated with the second event to the first queue of items, preventing any thread other than the particular thread from processing the item associated with the second event.
4 Assignments
0 Petitions
Accused Products
Abstract
Approaches for processing an event in an objects store, such as an MySQL database management system or a memcached caching system, that are maintained on one or more solid state devices. A plurality of threads may be instantiated. Each of the threads may be configured to retrieve items from a queue of items. Each item in the queue of items may be associated with a particular event occurring within the object store. Each event is a message that indicates an activity requiring work has occurred within the object store. When a particular thread retrieves an item from the queue of items, the particular thread processes the particular event associated with the item retrieved by the particular thread. In this way, event handling in object stores such as MySQL and memcached may be performed more efficiently on a solid state device.
-
Citations
18 Claims
-
1. A method for processing an event in a database management system that is stored on one or more solid state devices, comprising:
-
instantiating a plurality of threads that are each configured to retrieve items from a first queue of items, wherein each item in the first queue of items is associated with a particular event occurring within the database management system, wherein a first particular event is a message that indicates an activity requiring work has occurred within the database management system, and wherein the first particular event is related to a second event; in response to a particular thread, of the plurality of threads, retrieving an item from the first queue of items, the particular thread processing the first particular event associated with the item retrieved by the particular thread; and in response to an event dispatcher adding an item associated with the second event to the first queue of items, preventing any thread other than the particular thread from processing the item associated with the second event. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for processing a message in a distributed memory caching system implemented on one or more solid state devices, comprising:
-
on a solid state device, instantiating a plurality of threads that are each configured to retrieve messages from a first queue of messages, wherein each message in the first queue of messages is associated with a respective event occurring within the distributed memory caching system, and wherein each respective event indicates an activity requiring work which has occurred within the distributed memory caching system; in response to a particular thread, of the plurality of threads, retrieving a first message from the first queue of messages, the particular thread processing a first event associated with the first message retrieved by the particular thread, wherein the first event is related to a second event; and preventing any thread other than the particular thread from processing a message associated with the second event. - View Dependent Claims (7, 8)
-
-
9. A non-transitory machine readable storage medium storing one or more sequences of instructions for processing an event in a database management system that is stored on one or more solid state devices, wherein execution of the one or more sequences of instructions by one or more processors causes:
-
instantiating a plurality of threads that are each configured to retrieve items from a first queue of items, wherein items are added to the first queue of items by an event dispatcher, wherein each item in the first queue of items is associated with a particular event occurring within the database management system, wherein a first particular event is a message that indicates an activity requiring work has occurred within the database management system, and wherein the first particular event is related to a second event; in response to a particular thread, of the plurality of threads, retrieving an item from the first queue of items, the particular thread processing the first particular event associated with the item retrieved by the particular thread; and in response to the event dispatcher adding an item associated with the second event to the first queue of items, preventing any thread other than the particular thread from processing the item associated with the second event. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A machine readable storage medium storing one or more sequences of instructions for processing a message in a distributed memory caching system implemented on one or more solid state devices, wherein execution of the one or more sequences of instructions machine readable storage medium causes:
-
on a solid state device, instantiating a plurality of threads that are each configured to retrieve messages from a first queue of messages, wherein each message in the first queue of messages is associated with a respective event occurring within the distributed memory caching system, and wherein each respective event indicates an activity requiring work which has occurred within the distributed memory caching system; in response to a particular thread, of the plurality of threads, retrieving a first message from the first queue of messages, the particular thread processing a first event associated with the first message retrieved by the particular thread, wherein the first event is related to a second event; and preventing an thread other than the particular thread from processing a message associated with the second event. - View Dependent Claims (15, 16)
-
-
17. A method for servicing a request for performance of a database operation, comprising:
-
upon determining that a particular database client connection is requesting the performance of a database operation against a database, determining which worker thread, of a plurality of worker threads, should perform the database operation, wherein two or more worker threads in the plurality of worker threads are assigned to perform work requested by the particular database client connection; persistently maintaining a per-connection state for the particular database client connection while the particular database client connection exists, wherein the per-connection state includes any database per-transaction state; and upon the particular database client connection being serviced by a different worker thread than a current worker thread currently performing work for the particular database client connection, the different worker thread accessing the per-connection state prior to performing work for the particular database client connection.
-
-
18. A method for servicing a request for performance of a database operation, comprising:
-
upon determining that a particular database client connection is requesting the performance of a database operation against a database, determining which worker thread, of a plurality of worker threads, should perform the database operation, wherein two or more worker threads in the plurality of worker threads are assigned to perform work requested by the particular database client connection, and wherein the particular database client connection is currently being serviced by a current worker thread; determining whether certain work requested by the particular database client connection is a sequential request or a non-sequential request; upon determining that the certain work requested by the particular database client connection is a sequential request, dispatching the certain work to the current worker thread; and upon determining that the certain work requested by the particular database client connection is a non-sequential request, dispatching the certain work to a second worker thread.
-
Specification