Sunday, 10 June 2012

Oracle Exalytics Architecture

Exalytics is an engineered solution that includes a memory-centric hardware platform, in-memory Times Ten technology and the breadth of Oracle Business Intelligence Foundation Suite functionality. 

This blog is an attempt to explain Oracle Exalytics Architecture along with key technologies details behind Exalytics.

Key Technologies behind Exalytics
  • Hardware designed for in-memory processing and further optimized for Exadata
  • The in-memory analytics consists of the TimesTen In-memory technology
  • In-memory enhancements for Essbase (MOLAP) and In-memory optimizations for BI and EPM applications
  • Advanced visualizations: Oracle BI Presentation Services now provides highly interactive visualizations, data exploration and high-density visualizations
  • Adaptive In-memory cache: The Adaptive In-Memory Cache consists of software that adaptively tunes the in-memory cache based on usage

Hardware Configuration
Single hardware configuration – four-socket multi-processor server with each processor provides 10 compute cores with 2 hyperthreads each – providing a total of 40 cores and 80 hyperthreads.
The Exalytics comes with 1TB of DRAM. It provides 3.6TB of raw storage configured into 3TB of usable high-speed direct attached storage. In addition, Exalytics supports NFS for customer supplied storage. A cluster configuration requires external NFS for storing the common metadata.
Network Interfaces
  • 2 port InfiniBand specifically for Exadata connectivity.
  • 2 port 10G Ethernet (SFP+)
  • 4 port 1G Ethernet
Local Storage
Operating system, Oracle software binaries
Oracle software configuration information for BI Foundation Suite and Times Ten for Exalytics
Logs and checkpoints for the Times Ten for Exalytics instances – this is to provide a persistent
backup for the in-memory data
Essbase data files including BSO / ASO files

In-memory Analytics
Exalytics incorporates several in-memory technologies.

TimesTen is an in-memory relational database. All data is stored in a memory-optimized format. TimesTen supports Oracle compatible SQL. In-memory storage and processing provides significantly faster query processing. TimesTen powers the Adaptive In-Memory Cache in Exalytics.

In-memory Optimized Essbase  

Essbase on Exalytics makes use of machine-specific optimizations that enable Essbase to utilize all the compute and memory available on the machine. Orders of magnitude of scalability and response time improvements have been seen especially for the read-write MOLAP use cases.

In-memory Optimized BI Foundation   

Apart from in-memory analytics, OBIEE on Exalytics includes machine-specific optimizations that enable OBIEE to utilize all the compute and memory available on the machine. The in-memory optimization provides high scalability for OBIEEE on high load compared to OBIEE running on the same hardware without optimization.

Optimization for Exadata   

The Exalytics solution contains an Exadata BI connector that includes an optimized, high-speed InfiniBand connection that enables faster cache loads, faster queries. The Adaptive In-Memory Cache within Exalytics will optimally distribute cache-able data between Exadata and TimesTen for maximum performance.
Advanced Virtualization
Dramatically faster response time enabled by Exalytics allows for:
·     Highly interactive analysis: Dimension browsing, go-less prompts, auto complete, search, partial refreshes etc. that make dashboards inviting and usable. 
·     Free-form data exploration: Contextual operations, master-detail linking, display suggestions
    allow a BI user to explore and discover data that could not be easily done before.
·      High density visualizations: High density visualizations like micro charts, trellis, etc. allow quick and intuitive navigation of large amount of data.
Adaptive In-memory Cache
The Adaptive In-Memory Cache is powered by the TimesTen In-Memory Database technology. Oracle Exalytics Result Cache is a completely reusable in-memory cache that is populated with results of previous logical queries generated by the server. In addition to providing data for repeated queries, any result set in the result cache is treated as a logical table and is able to satisfy any other queries that require a sub-set of the cached data.
A summary advisor will utilize the usage statistics that are captured within OBIEE and make recommendations on what information should be aggregated. It will look at all of the performance characteristics of the query, including how much time was spent in the database vs. the BI server and the level of granularity that should be placed in-memory. Scripts will be created and executed that loads the aggregated content into memory.
Administrators will be able to override the recommendations generated by the summary advisor. The pre-seeding ensures instant responsiveness for queries at run time.

Note - The Adaptive In-Memory Cache is specifically designed and optimized for the hardware-software components in Exalytics and is not supported on any other platform.

BI Cache Vs In-memory Cache

OBI Caching at BI Server and BI Presentation Sever level can only speeds up what has been seen before. While an In-memory data structure generated by the summary advisor is optimized to provide maximum value by accounting for the expected usage and drilldowns.
The summary advisor utilizes the OBIEE usage tracking logs, any logical query independent of the source (e.g. relational, Essbase) that can benefit from a performance boost, will be considered as an aggregate candidate for TimesTen. It is possible to adapt the in-memory data to seasonality by running the summary advisor on specific workloads.
As the in-memory data is created in an analytic database providing maximum performance for the large amount of memory available.

In short performance improvements due to Exalytics are attributed to

·         Larger hardware resources and memory for processes
·         Larger in-memory result cache
·         In-memory query processing
·         In-memory columnar compression
·         Aggregations 

I am looking forward to explore Exalytics further to understand the configuration and best parctices for in-memory cache usage.

No comments:

Post a Comment