System and method for managing message queues for multinode applications in a transactional middleware machine environment
US-9558048-B2 · Jan 31, 2017 · US
US9996403B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9996403-B2 |
| Application number | US-201213572491-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 10, 2012 |
| Priority date | Sep 30, 2011 |
| Publication date | Jun 12, 2018 |
| Grant date | Jun 12, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A middleware machine environment can provide message queues for multinode applications. The transactional middleware machine environment includes a message control data structure on a message receiver and a heap data structure in a shared memory that is associated with the message receiver. The message sender operates to write a message directly into the heap data structure, and to maintain metadata associated with the message in the message control data structure. Furthermore, the message control data structure can be a ring structure with a head pointer and a tail pointer. Additionally, the message receiver resides on a server that is connected with a plurality of clients, with each of said clients keeping a private copy of the message control data structure. Also, the message receiver can support concurrent access to the message control data structure associated with the message receiver.
Opening claim text (preview).
What is claimed is: 1. A system for providing message queues in a middleware machine environment, comprising: a middleware machine environment including one or more microprocessors; a first node and a second node operating in the middleware machine environment; a message receiver on the first node; a message sender on the second node; a shared memory created on the first node and associated with the message receiver, wherein the shared memory includes a heap data structure for storing messages, a first message queue including a first ring structure for storing metadata identifying addresses of messages within the heap data structure, and wherein the first node communicates the first ring structure to the second node and the second node is configured to create, in response to the communicated first ring structure, a second message queue including a second ring structure that shadows the first message queue and is associated with the message sender; wherein the message sender on the second node operates to allocate a portion of the heap data structure for writing a message directly into the heap data structure and maintain metadata in the first message queue identifying an address of the message within the heap data structure; and wherein the message sender is configured to use remote direct memory access (RDMA) for the writing of the message and for locking the first message queue during the writing of the message to prevent any other node from writing to the shared memory. 2. The system according to claim 1 , wherein each of the first ring structure and the second ring structure has a head pointer and a tail pointer. 3. The system according to claim 2 , wherein, when the writer operates to write a message to the heap data structure in the shared memory, the writer updates the head pointers for both the first ring structure and the second ring structure, and when the reader operates to read a message to the heap data structure in the shared memory, the reader updates the tail pointers for both the first ring structure and the second ring structure. 4. The system according to claim 1 , wherein the first node is on a server that is connected with a plurality of clients, each said client keeps a private copy of the first message queue that is maintained in the shared memory. 5. The system according to claim 4 , wherein a lock is activated on the first message queue when an entry in the first message queue is currently being updated by a client. 6. The system according to claim 5 , wherein every other client is capable of noticing that the first message queue is locked and being prevented from accessing a corresponding portion of the shared memory that is associated with the entry in the first message queue. 7. The system according to claim 6 , wherein another client is allowed to access another portion of the shared memory that is associated with the entry in the message queue. 8. A method for providing message queues in a middleware machine environment, comprising: providing a shared memory associated with a message receiver on a first node in a middleware machine environment, wherein the shared memory includes a heap data structure for storing messages, and a first message queue including a first ring structure for storing metadata identifying addresses of messages within the heap data structure; providing a message sender on a second node in a middleware machine environment; wherein the first node is configured to communicate the first ring structure to the second node and the second node is configured to create, in response to the communicated first ring structure, a second message queue including a second ring structure that shadows the first message queue and is associated with the message sender; allowing the message sender to allocate a portion of the heap data structure for writing a message directly into the heap data structure and maintain metadata associated with the message in the first message queue identifying an address of the message within the heap data structure; and wherein the message sender is configured to use remote direct memory access (RDMA) for the writing of the message and for locking the first message queue during the writing of the message to prevent any other node from writing to the shared memory. 9. The method according to claim 8 , further comprising allowing each of the first ring structure and the second ring structure to have a head pointer and a tail pointer. 10. The method according to claim 9 , further comprising: a allowing the message sender to update the head pointers for both the first ring structure and the second ring structure, when the message sender operates to write the message to the heap data structure in the shared memory; and allowing the message receiver to update the tail pointers for both the first ring structure and the second ring structure, when the message receiver operates to read the message to the heap data structure in the shared memory. 11. The method according to claim 8 , further comprising allowing the first node to be on a server that is connected with a plurality of clients, each said client keeps a private copy of the first message queue that is maintained in the shared memory. 12. The method according to claim 11 , further comprising activating a lock on the first message queue when an entry in the first message queue is currently being updated by a client. 13. The method according to claim 12 , further comprising allowing every other client to be capable of noticing that the first message queue is locked and being prevented from accessing a corresponding portion of the shared memory that is associated with the entry in the first message queue. 14. The method according to claim 13 , further comprising allowing another client to access another portion of the shared memory that is associated with the entry in the message queue. 15. A non-transitory computer-readable storage medium storing a set of instructions providing support for consistent embedded search across enterprise applications, said instructions, when executed by one or more processors, causing the one or more processors to perform steps comprising: providing a shared memory associated with a message receiver on a first node in a middleware machine environment, wherein the shared memory includes a heap data structure for storing messages, and a first message queue including a first ring structure for storing metadata identifying addresses of messages within the heap data structure; providing a message sender on a second node in a middleware machine environment; wherein the first node is configured to communicate the first ring structure to the second node and the second node is configured to create, in response to the communicated first ring structure, a second message queue including a second ring structure that shadows the first message queue and is associated with the message sender; allowing the message sender to allocate a portion of the heap data structure for writing a message directly into the heap data structure and maintain metadata associated with the message in the first message queue identifying an address of the message within the heap data structure; and wherein the message sender is configured to use remote direct memory access (RDMA) for the writing of the message and for locking the first message queue during the writing of the message to prevent any other node from writing to the shared memory. 16. The system of claim 1 , wherein heap metadata identifying allocation of the heap data structure is stored on the second
Message passing systems or structures, e.g. queues · CPC title
Buffers; Shared memory; Pipes · CPC title
Queue · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.