System and method for providing message queues for multinode applications in a middleware machine environment

US9996403B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9996403-B2
Application numberUS-201213572491-A
CountryUS
Kind codeB2
Filing dateAug 10, 2012
Priority dateSep 30, 2011
Publication dateJun 12, 2018
Grant dateJun 12, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Message passing systems or structures, e.g. queues · CPC title

  • G06F9/544Primary

    Buffers; Shared memory; Pipes · CPC title

  • Queue · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9996403B2 cover?
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 met…
Who is the assignee on this patent?
Frank Richard, Little Todd, Kaimalettu Arun, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/544. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 12 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).