System and method for providing zero buffer copying in a middleware machine environment
First Claim
1. A system for providing a middleware machine, comprising:
- one or more high performance computing hardware systems, each including one or a plurality of processors, a high performance memory, and a networking component; and
a middleware environment operating thereon that includes one or a plurality of application server instances, and one or more Java virtual machines (JVMs), wherein each of said application server instances includes at least one muxer;
wherein when a request is received by a said application server instance that includes a plurality of layers to process the requestdata associated with the request is stored in one or more byte arrays on a heap space of a said JVM, wherein each said layer applies one or more changes to the data via one of a plurality of byte buffers, wherein each said byte buffer is accessible to the JVM and the said application server instance and includes a pointer to the data,a response is generated by the said application server using the data, and gathered from the one or more byte arrays using scatter/gather input/output (I/O), andthe response is received from a plurality of threads by a sender queue and transferred therefrom using a said muxer to a different said application server instance over a plurality of parallel channels associated with the said muxer.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for providing a middleware machine or similar platform. In accordance with an embodiment the system (referred to herein in some implementations as “Exalogic”) comprises a combination of high performance hardware, together with an application server or middleware environment, to provide a complete Java EE application server complex which includes a massively parallel in-memory grid, can be provisioned quickly, and can scale on demand. In accordance with an embodiment, the system can be deployed as a full, half, or quarter rack, or other configuration, that provides an application server grid, storage area network, and InfiniBand network, which support the execution of an application server, middleware or other functionality such as, for example, WebLogic Server, JRockit or Hotspot JVM, Oracle Linux or Solaris, and Oracle VM. Additional features of the system can include, e.g. Zero Buffer Copies, Scatter/Gather I/O, T3 Connections, and Lazy Deserialization.
-
Citations
17 Claims
-
1. A system for providing a middleware machine, comprising:
-
one or more high performance computing hardware systems, each including one or a plurality of processors, a high performance memory, and a networking component; and a middleware environment operating thereon that includes one or a plurality of application server instances, and one or more Java virtual machines (JVMs), wherein each of said application server instances includes at least one muxer; wherein when a request is received by a said application server instance that includes a plurality of layers to process the request data associated with the request is stored in one or more byte arrays on a heap space of a said JVM, wherein each said layer applies one or more changes to the data via one of a plurality of byte buffers, wherein each said byte buffer is accessible to the JVM and the said application server instance and includes a pointer to the data, a response is generated by the said application server using the data, and gathered from the one or more byte arrays using scatter/gather input/output (I/O), and the response is received from a plurality of threads by a sender queue and transferred therefrom using a said muxer to a different said application server instance over a plurality of parallel channels associated with the said muxer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of providing a middleware machine, comprising the steps comprising:
-
providing one or more high performance computing hardware systems, each including one or a plurality of processors, a high performance memory, and a networking component; and providing thereon a middleware environment that includes one or a plurality of application server instances, and one or more Java virtual machines (JVMs), wherein each of said application server instances includes at least one muxer; wherein when a request is received by a said application server instance that includes a plurality of layers to process the request data associated with the request is stored in one or more byte arrays on a heap space of a said JVM, wherein each said layer applies one or more changes to the data via one of a plurality of byte buffers, wherein each said byte buffer is accessible to the JVM and the said application server instance and includes a pointer to the data, a response is generated by the said application server using the data, and gathered from the one or more byte arrays using scatter/gather input/output (I/O), and the response is received from a plurality of threads by a sender queue and transferred therefrom using a said muxer to a different said application server instance over a plurality of parallel channels associated with the said muxer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium including instructions stored thereon which, when executed by a computer, cause the computer to perform the steps comprising:
-
providing one or more high performance computing hardware systems, each including one or a plurality of processors, a high performance memory, and a networking component; and providing thereon a middleware environment that includes one or a plurality of application server instances, and one or more Java virtual machines (JVMs), wherein each of said application server instances includes at least one muxer; wherein when a request is received by a said application server instance that includes a plurality of layers to process the request data associated with the request is stored in one or more byte arrays on a heap space of a said JVM, wherein each said layer applies one or more changes to the data via one of a plurality of byte buffers, wherein each said byte buffer is accessible to the JVM and the said application server instance and includes a pointer to the data, a response is generated by the said application server using the data, and gathered from the one or more byte arrays using scatter/gather input/output (I/O), and the response is received from a plurality of threads by a sender queue and transferred therefrom using a said muxer to a different said application server instance over a plurality of parallel channels associated with the said muxer.
-
Specification