High-performance memory queue
First Claim
Patent Images
1. A method of managing queues, said method comprising:
- issuing a transaction to access a queue resident in memory; and
selectively locking the queue during processing of said transaction, wherein the queue remains unlocked for one or more aspects of the transaction processing.
1 Assignment
0 Petitions
Accused Products
Abstract
A highly available, high-performance memory queue. Locking of the queue is minimized in order to provide a highly available queue and to improve performance of the queue. Multiple updates of the queue can occur under a single lock. Further, messages of the queue are persistent. A time-initiated checkpointing process, as well as the storing of message information on a recovery log, ensures the persistence of the queue messages.
-
Citations
90 Claims
-
1. A method of managing queues, said method comprising:
-
issuing a transaction to access a queue resident in memory; and
selectively locking the queue during processing of said transaction, wherein the queue remains unlocked for one or more aspects of the transaction processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of managing queues, said method comprising:
-
requesting a plurality of updates to a queue in memory; and
committing the plurality of updates to the queue under a single lock of the queue. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of managing queues, said method comprising:
-
issuing a first transaction to access a queue in memory, wherein one or more messages of said queue are persistent messages;
issuing a second transaction to access the queue, wherein at least a part of processing of the second transaction is concurrent with at least a part of processing of the first transaction; and
obtaining a lock of the queue, during an aspect of processing of said first transaction, to commit a plurality of updates to the queue under the lock, wherein the queue remains unlocked for one or more other aspects of processing of the first transaction, and wherein said second transaction is capable of locking the queue to perform one or more updates of the queue when the queue is unlocked.
-
-
30. A system of managing queues, said system comprising:
-
means for issuing a transaction to access a queue resident in memory; and
means for selectively locking the queue during processing of said transaction, wherein the queue remains unlocked for one or more aspects of the transaction processing. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57)
-
-
49. A system of managing queues, said system comprising:
-
means for requesting a plurality of updates to a queue in memory; and
means for committing the plurality of updates to the queue under a single lock of the queue.
-
-
58. A system of managing queues, said system comprising:
-
means for issuing a first transaction to access a queue in memory, wherein one or more messages of said queue are persistent messages;
means for issuing a second transaction to access the queue, wherein at least a part of processing of the second transaction is concurrent with at least a part of processing of the first transaction; and
means for obtaining a lock of the queue, during an aspect of processing of said first transaction, to commit a plurality of updates to the queue under the lock, wherein the queue remains unlocked for one or more other aspects of processing of the first transaction, and wherein said second transaction is capable of locking the queue to perform one or more updates of the queue when the queue is unlocked.
-
-
59. A system of managing queues, said system comprising:
-
a transaction to access a queue resident in memory; and
at least one manager used to selectively lock the queue during processing of said transaction, wherein the queue remains unlocked for one or more aspects of the transaction processing.
-
-
60. A system of managing queues, said system comprising:
-
a plurality of updates to be made in a queue in memory; and
a manager used to commit the plurality of updates to the queue under a single lock of the queue.
-
-
61. A system of managing queues, said system comprising:
-
a first transaction to access a queue in memory, wherein one or more messages of said queue are persistent messages;
a second transaction to access the queue, wherein at least a part of processing of the second transaction is concurrent with at least a part of processing of the first transaction; and
a manager used to obtain a lock of the queue, during an aspect of processing of said first transaction, to commit a plurality of updates to the queue under the lock, wherein the queue remains unlocked for one or more other aspects of processing of the first transaction, and wherein said second transaction is capable of locking the queue to perform one or more updates of the queue when the queue is unlocked.
-
-
62. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of managing queues, said method comprising:
-
issuing a transaction to access a queue resident in memory; and
selectively locking the queue during processing of said transaction, wherein the queue remains unlocked for one or more aspects of the transaction processing. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80)
-
-
81. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of managing queues, said method comprising:
-
requesting a plurality of updates to a queue in memory; and
committing the plurality of updates to the queue under a single lock of the queue. - View Dependent Claims (82, 83, 84, 85, 86, 87, 88, 89)
-
-
90. An article of manufacture, comprising:
at least one computer usable medium having computer readable program code means embodied therein for causing the managing of queues, the computer readable program code means in said article of manufacture comprising;
computer readable program code means for causing a computer to issue a first transaction to access a queue in memory, wherein one or more messages of said queue are persistent messages;
computer readable program code means for causing a computer to issue a second transaction to access the queue, wherein at least a part of processing of the second transaction is concurrent with at least a part of processing of the first transaction; and
computer readable program code means for causing a computer to obtain a lock of the queue, during an aspect of processing of said first transaction, to commit a plurality of updates to the queue under the lock, wherein the queue remains unlocked for one or more other aspects of processing of the first transaction, and wherein said second transaction is capable of locking the queue to perform one or more updates of the queue when the queue is unlocked.
Specification