System and method for zero buffer copying in a middleware environment
First Claim
1. A system for zero buffer copying, comprising:
- one or more high performance computing systems, each including one or more processors and a high performance memory;
a user space on each of the one or more high performance computing systems, wherein the user space includes a Java virtual machine (JVM) and one or more application server instances, wherein each of said application server instances includes a muxer and a plurality of layers to process a request;
a plurality of byte buffers accessible to the JVM and said application server instances;
wherein when the request is received by a said application server instancedata from the request is stored on a heap space, and pushed from the heap space to a byte buffer,wherein the byte buffer is pinned to native memory by the JVM, such that the byte buffer is prevented from being copied from a processing layer to a processing layer, and instead a same copy of the byte buffer is passed through each of the plurality of processing layers,wherein each processing layer operates on the data in the byte buffer to participate in generating a response to the original request that supplies the data in the byte buffer,and the response is sent out by the muxer.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for zero buffer copying, where such a system includes one or more high performance computing systems, each including one or more processors and a high performance memory. The system further includes a user space that includes a Java virtual machine (JVM) and one or more application server instances; and a plurality of byte buffers accesible to the JVM and the one or more application server instances. When a request is received by a first application server instance data associated with the request is stored in a heap space associated with the JVM, and the JVM pins the portion of the heap space where the data is stored. The data is pushed to a first byte buffer where it is accessed by the first application server instance. A response is generated by the first application server using the data, and sent by the first application server.
69 Citations
18 Claims
-
1. A system for zero buffer copying, comprising:
-
one or more high performance computing systems, each including one or more processors and a high performance memory; a user space on each of the one or more high performance computing systems, wherein the user space includes a Java virtual machine (JVM) and one or more application server instances, wherein each of said application server instances includes a muxer and a plurality of layers to process a request; a plurality of byte buffers accessible to the JVM and said application server instances; wherein when the request is received by a said application server instance data from the request is stored on a heap space, and pushed from the heap space to a byte buffer, wherein the byte buffer is pinned to native memory by the JVM, such that the byte buffer is prevented from being copied from a processing layer to a processing layer, and instead a same copy of the byte buffer is passed through each of the plurality of processing layers, wherein each processing layer operates on the data in the byte buffer to participate in generating a response to the original request that supplies the data in the byte buffer, and the response is sent out by the muxer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for zero buffer copying, comprising:
-
providing one or more high performance computing systems, each including one or more processors and a high performance memory; providing a user space on each of the one or more high performance computer systems, wherein the user space includes a Java virtual machine (JVM) and one or more application server instances, wherein each of said application server instances includes a muxer and a plurality of layers to process a request; providing a plurality of byte buffers accessible to the JVM and the one or more application server instances; receiving the request by a said application server instance; storing data from the request on a heap space; writing the data from the heap space to a byte buffer, wherein the byte buffer is pinned to native memory by the JVM, such that the byte buffer is prevented from being copied from a processing layer to a processing layer, and instead a same copy of the byte buffer is passed through each of the plurality of processing layers, wherein each processing laye operates on the data in the byte buffer to participate in generating a response to the original request that supplies the data in the byte buffer; and sending the response by the muxer in said application server instance. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable storage medium storing one or more sequences of instructions for zero buffer copying, wherein said instructions, when executed by one or more processors, cause the one or more processors to execute the steps comprising:
-
providing a user space on each of the one or more high performance computer systems, wherein the user space includes a Java virtual machine (JVM) and one or more application server instances, wherein each of said application server instances includes a muxer and a plurality of layers to process a request; providing a plurality of byte buffers accessible to the JVM and the one or more application server instances; receiving the request by a said application server instance; storing data from the request on a heap space; writing the data from the heap space to a byte buffer, wherein the byte buffer is pinned to native memory by the JVM, such that the byte buffer is prevented from being copied from a processing layer to a processing layer, and instead a same copy of the byte buffer is passed through each of the plurality of processing layers, wherein each processing laye operates on the data in the byte buffer to participate in generating a response to the original request that supplies the data in the byte buffer; and sending the response by the muxer in said application server instance. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification