Managing message queues
AssigneeAb Initio Technology LLC
InventorsSpiro Michaylov, Sanjeev Banerji, Craig W. Stanfill
Life of this patent
Estimating the term…
Abstract
A method, and corresponding system and software, is described for writing data to a plurality of queues, each portion of the data being written to a corresponding one of the queues. The method includes, without requiring concurrent locking of more than one queue, determining if a space is available in each queue for writing a corresponding portion of the data, and if available, reserving the spaces in the queues. The method includes writing each portion of the data to a corresponding one of the queues.
Claims24
A method including:
- assigning a first transaction to a first data structure that stores messages for a queue and is used exclusively for messages in the first transaction;
- assigning a second transaction to a second data structure that stores messages for a queue, is separate from the first data structure, and is shared by a plurality of transactions;
- storing a plurality of messages in the first transaction in the first data structure;
- storing at least some messages in the second transaction in the second data structure;
- committing the first and second transactions after the messages in the first transaction have been stored in the first data structure and the messages in the second transaction have been stored in the second data structure;
- adding a message to the second data structure in response to the first transaction being committed, the message locating the messages stored in the first data structure;
- reading messages in the second transaction from the second data structure after the second transaction has been committed;
- and
- reading a plurality of the messages in the first transaction from contiguous memory locations after the first transaction has been committed.
Software stored on a computer-readable storage medium including instructions for causing a computer system to:
- assign a first transaction to a first data structure that stores messages for a queue and is used exclusively for messages in the first transaction;
- assign a second transaction to a second data structure that stores messages for a queue, is separate from the first data structure, and is shared by a plurality of transactions;
- store a plurality of messages associated with the first transaction in the first data structure;
- store at least some messages in the second transaction in the second data structure;
- commit the first and second transactions after the messages in the first transaction have been stored in the first data structure and the messages in the second transaction have been stored in the second data structure;
- add a message to the second data structure in response to the first transaction being committed, the message locating the messages stored in the first data structure;
- read messages in the second transaction from the second data structure after the second transaction has been committed;
- and
- read a plurality of the messages in the first transaction from contiguous memory locations after the first transaction has been committed.
A system including:
- means for assigning a first transaction to a first data structure that stores messages for a queue and is used exclusively for messages in the first transaction;
- means for assigning a second transaction to a second data structure that stores messages for a queue, is separate from the first data structure, and is shared by a plurality of transactions;
- means for storing a plurality of messages in the first transaction in the first data structure;
- means for storing at least some messages in the second transaction in the second data structure;
- means for committing the first and second transactions after the messages in the first transaction have been stored in the first data structure and the messages in the second transaction have been stored in the second data structure;
- means for adding a message to the second data structure in response to the first transaction being committed, the message locating the messages stored in the first data structure;
- means for reading messages in the second transaction from the second data structure after the second transaction has been committed;
- and
- means for reading a plurality of the messages in the first transaction from contiguous memory locations after the first transaction has been committed.
Dependencies are inferred from the claim text.