System and method for providing message queues for multinode applications in a middleware machine environment
First Claim
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 includesa 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, andwherein 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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
-
Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14, 17)
-
-
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. - View Dependent Claims (18)
-
Specification