Monday, 7 October 2013

Middleware and Applications Optimizations for Exalogic

At Oracle OpenWorld this year, I had a lot of customer discussions. One of the most recurrent questions was about the work we have done in our software stack to make Oracle Middleware Applications and ISV Applications run faster and with greater throughput. With this view, I wrote an easy to read non-exhaustive summary that highlights some of these:

Oracle WebLogic Optimizations on Exalogic
Applications using WebLogic benefit from a number of optimizations for thread efficiency, faster interprocess communication and higher message throughput.  An optimized work scheduler for Exalogic balances the number of threads per core available on Exalogic systems, providing better application processing efficiency.  WebLogic Server has changed to use shared byte buffers instead of array copies when passing data, improving application interprocess communication performance and a 66% reduction in number of objects created. This reduces heap usage and results in fewer expensive garbage collections for Applications. WebLogic also optimizes socket calls to reduce lock contention on Exalogic, allowing fewer threads to process a larger number of message requests.  

Oracle Coherence Optimizations on Exalogic
Applications using Coherence benefit from optimizations to increase scalability and lower the latency of data grid operations. Coherence takes advantage of a new low-level Java API, InfiniBand Message Bus, to provide a native InfiniBand Exabus implementation that uses Remote Direct Memory Access (RDMA) , zero-copy data transfer, and other optimizations for low latency communications. As a result, applications that store state and data in Coherence can see 4-6x improvements in performance of these operations.  The Elastic Data feature of Coherence uses Exalogic SSD storage or SSD-backed SAN to support larger data sets than would be possible with in-memory alone, allowing applications to access more cached data on fewer Exalogic compute nodes.   Through Exabus optimizations and Elastic Data, Oracle Coherence on Exalogic provides the next generation of massively scalable, low-latency data and state management for applications.

Oracle Tuxedo Optimizations on Exalogic
(only for PeopleSoft).
PeopleSoft applications using PeopleTools 8.53 and higher benefit from a new implementation of JOLT over SDP (Sockets Direct Protocol), which runs natively on the Infiniband/Exabus fabric eliminating I/O bottlenecks between PIA web tier and App Server.  These applications also benefit from self tuning of bulletin board locking mechanism, where Tuxedo dynamically manages number of times an application loops waiting for a user mode semaphore based on current workload, resulting in efficient CPU consumption and improved application performance.

Oracle JRockit Optimizations on Exalogic
On Exalogic, the JVM makes more efficient network I/O calls using collections of chunked data resulting in higher throughput for Java applications. The JVM optimizes object management with fewer copies resulting in reduced garbage collection and less heap size resulting in better Java application performance.

Exalogic Exabus
Applications running on Exalogic utilize Exabus, the underlying Infiniband fabric, which provides low latency and high throughput eliminating I/O bottlenecks in every application layer. Applications components are typically deployed in more than one server and Exabus provides low latency for I/O across nodes on same Exalogic rack. Access to ZFS storage device over Exabus greatly reduces latency for log file writes and other file access operations. For applications running on Exalogic and accessing database tier on Exadata, Exabus delivers faster I/O, reduces CPU usage on both the mid-tier and DB-tier and provides higher connection pooling efficiency.

Oracle Traffic Director
For applications deployed on Exalogic, Oracle Traffic Director (OTD) is a fast, scalable entry point for all HTTP and HTTPS traffic to application servers and Web server components. OTD acts as a high performance SSL/TLS termination point for HTTPS requests reducing processing overhead for back-end servers. OTD caches content reducing load and improving performance. OTD compresses HTTP data improving response time for clients with slow connections.

Oracle VM for Exalogic
Exalogic Oracle VM can be used to sub-divide a physical compute node into multiple virtual machines to increase application deployment efficiency while maintaining application performance. Oracle VM has been engineered for tight integration with Exalogic Exabus I/O backplane using a technique called Single Root I/O Virtualization (SR-IOV) ensuring Oracle VM significantly outperforms comparable hypervisors from other leading vendors. The benefit of this approach is unmatched application performance. In an Exalogic configuration, the impact of virtualization on application throughput and latency is negligible.

Oracle SOA Suite
Long running processes - whether they are complex orchestrations or BPM workflows require data persistence in order to preserve process state. Traditionally a database system is used to persist process state. With optimizations in SOA Suite process state is now managed in Oracle Coherence - which is an in-memory data grid. Coherence has been optimized to run on Exalogic through a native RDMA-based data replication protocol. The use of Coherence together with the optimizations of Coherence on Exalogic enable long running processes in SOA Suite to benefit from 17x throughput improvements.

In-Memory Modules for Oracle Applications
Many processes in packaged applications make extensive use of a backend database for both online as well as batch data processing. With In-Memory Modules, Oracle Applications deliver new functionality that natively leverages the capabilities of the engineered systems - Exalogic, Exadata and Exalytics in order to transform data processing on disk to parallel in-memory data processing enabled by a high throughput low latency network (Infiniband). Examples of In Memory Modules for Oracle Applications include In-Memory Performance-Driven Planning, Consumption-Driven Planning, In-Memory Sales Advisor and In-Memory Project Portfolio Management (the list keeps growing).