Monday, April 28, 2014

Elastic Cloud vs. Not-So-Elastic Cloud: CPU Over-subscription


This is Part III in my series of articles about implementing Exalytics as a private cloud. The first two that laid the groundwork for this concept are:
Part I – Exalytics: The Promise of BI on Private Cloud
Part II - Classify the Exalytics Application Requirements and Cloud Offerings
The idea is to create a system which can host various OBIEE/EPM implementations and can adjust according to the current load and the VM’s priority/quota. Each VM is assigned a range of resources from the available pool. Instead of saying that a VM can have 2 cores/CPU, we can virtualize the resources by creating a virtual unit?the vCPU?and allocate available threads.  This vCPU is the key ingredient in an elastic cloud.
vCPU to Physical Threads Ratio
vCPU Configuration - EMOC vDC Management

 We allocate to each VM the resources it needs to run optimally. However, instead of assigning an absolute number of resources, it is done virtually in terms of CPU threads rather than cores. This allows two important things: 
• dynamic reallocation of the resources at runtime without the need to recycle the server
• VMs compete for the CPU cycles/threads on the basis of priority allocated to them at design time.

 If we have a VM hosting the EPM Suite, another VM hosting BI for the North America, and another VM hosting BI for the Asian operations, we can schedule the priority of the North America VM and the Asian server to be high priority based on time of operations. The EPM server can have overall priority so that users on the EPM server will get a better throughput whenever they are on.
Account  Resource Limit
Account Resource Limit


 One caveat is that the vCPU memory and storage quotas (Account Resource Limit) are set at the account level rather than at the VM level. This enables a cloud user to create multiple VMs within the quota allocated to them.

 The vCPU priority and cap are defined when creating VM profiles.


VM Profile - vCPU priority and Cap
VM Proile - CPU Priority/Cap

 This profile will be used to define a VM hosting a service which can run in the background and yield to a higher priority task when needed. A deployment plan is created with this profile and applied while creating a virtual machine.

When creating a new VM Server, the following can be applied to benefit from a real elastic cloud implementation:

1. Change the CPU/vCPU ratio
2. Configure an Account Resource Limit for individual accounts
3. Create VM profiles with vCPU priority

Further explanation of this concept can be found in Donald Forbes’s article on  Exalogic and CPU Oversubscription.

Sachin
Architect - Oracle Engineered Systems
Exalytics/Exalogic/Exadata
BuzzClan LLC

BuzzClan is a business consulting company collaborating to provide Oracle software advisory services & implementation services. BuzzClan LLC is committed to providing substantive business value on each and every client engagement. We do this through a combination of industry-specific business expertise, technical skills, proven project management methods and our “onsite - off site - offshore” delivery model. We strive to work in partnership with our customers to build high-performance teams and create business solutions that will last.



Wednesday, April 16, 2014

Exalytics In Memory - Software Features

The Exalytics In-Memory Software is the pre-requisite software required for Exalytics (except for Endeca on Exalytics) because it enables Exalytics-specific enhancements for BI Publisher, OBIEE and Essbase Plus (note restricted use Essbase is included in Planning Plus and HPCM) .  All customers who run BIFS, OBIEE, Essbase, Planning Plus and/or HPCM on Exalytics are required to license the Exalytics In-Memory Software.

The following software features are provided with Oracle Exalytics In-Memory Software.
Feature
Description
Product/Component
Summary Advisor for Oracle Business Intelligence Server
Summary Advisor monitors Business Intelligence usage patterns, analyzes them and recommends the optimal data mart for best overall performance improvement.
Oracle Business Intelligence Administrator
Aggregate Persistence (CREATE AGGREGATES, and DELETE AGGREGATES commands) when run against the TimesTen In-Memory Database for Exalytics
The Aggregate Persistence feature enables automated creation of data marts by using Business Intelligence server commands.
Oracle Business Intelligence Server
Exalytics-specific optimizations enabled by "Oracle Hardware acceleration" flags for Oracle Business Intelligence Server
Optimizations to match system architecture resulting in higher query throughput, lower latencies in query processing. Enhanced memory usage for cache.
Oracle Business Intelligence Server
Enhanced Bursting within Oracle Business Intelligence Publisher
Enables piped document generation. Enabled by setting OPTIMIZE_BURST flag in xmlp-server-config.xml file
Oracle Business Intelligence Publisher
Exalytics-specific optimizations enabled by "Oracle Hardware acceleration" flags for Oracle Business Intelligence Presentation Server
Optimized default configuration to use large footprint memory to speed up page rendering and caching.
Oracle Business Intelligence Server
Exalytics-specific optimizations enabled by "Oracle Hardware acceleration" flags for Oracle Essbase Plus
Memory usage optimizations for loading entire data into memory, concurrency improvements to match Exalytics architecture enabling efficient distribution of processing.
Oracle Essbase Plus
Pasted from <Oracle® Exalytics In-Memory Software Licensing Information> 

Sachin
Architect - Oracle Engineered Systems
Exalytics/Exalogic/Exadata
BuzzClan LLC

BuzzClan is a business consulting company collaborating to provide Oracle software advisory services & implementation services. BuzzClan LLC is committed to providing substantive business value on each and every client engagement. We do this through a combination of industry-specific business expertise, technical skills, proven project management methods and our “onsite - off site - offshore” delivery model. We strive to work in partnership with our customers to build high-performance teams and create business solutions that will last.

Tuesday, April 15, 2014

Classify the Exalytics Application Requirements and Cloud Offerings

This is Part II in a series of articles discussing private cloud options on Exalytics:


 If you are involved in the architecture team of a big organization taking care of BI arena, you know that BI implementations are very fragmented. Everyone needs to be able to make sense of the data that they are collecting and the different ways they can get around to doing that.

 Implementation varies by the business group: accounting, planning, or finance. Some rely on Excel while others gravitate towards a combination of Excel and Access. Some even have custom applications that are painstakingly built using .NET/ASP.NET, JSP, Oracle XE and others, depending on the level of IT resources available to the business and their core skills.

 Once you start designing an enterprise solution and start collecting feedback from these groups, they tend to gravitate towards these 3 bins:
• Enterprise BI applications
• Custom, high-value BI applications requiring independent control
• Smaller datamarts

The classification is easier said than done. The first bin is pretty simple and normally revolves around the enterprise ERP solutions. One builds a data warehouse connected to the ERP and provides a set of analytics on that.

The distinction between the second and the third bins can lead to a fierce battle. Everyone wants their application to be autonomous. 

Ideally, the private cloud should be able to do metering and chargeback, with an internal cross-charge to “cost centers” based on how the system resources were being used. Once this is in place and a cost is associated with the different modes of operating the Analytics Solution, one can negotiate the applications category by adjusting the "cost" associated with each model.

There are several ways to host applications on a central Exalytics system. We can present a  few options  for the agencies to choose from: 

1. Exalytics running bare metal implementation
• Single BI instance
• Multiple BI Instances
2. Virtualized Exalytics (OVM) 
• Single-Instance VMs, one for each application
• Multiple BI Instances on one shared VM
• Single-Instance VMs, shared for multiple applications

I will discuss the pros and cons of these in the next blog.

Sachin
BuzzClan LLC
Architect - Oracle Engineered Systems
Exalytics/Exalogic/Exadata

BuzzClan is a business consulting company collaborating to provide Oracle software advisory services & implementation services. BuzzClan LLC is committed to providing substantive business value on each and every client engagement. We do this through a combination of industry-specific business expertise, technical skills, proven project management methods and our “onsite - off site - offshore” delivery model. We strive to work in partnership with our customers to build high-performance teams and create business solutions that will last.


Monday, April 14, 2014

Exalytics - The Promise of BI on Private Cloud

Oracle came out with a neat infomercial touting the features and benefits of Exalytics - Extreme Analytics with No Limits.

The ability to have more than 50,000 users and cut analysis time from monthly to daily are impressive.  This type of an appliance should be a great tool for exposing Enterprise Analytics in a private cloud setting, enabling users to keep up with the demands of  implementing the OBIEE and EPM suite of products.

Originally, Exalytics didn't support virtualization. Patchset 1 introduced the base image concept that enabled virtualized Exalytics implementation, but it had one deal-breaking limitation: InfiniBand connectivity was not supported if the boxes were virtualized.
“Exalytics virtualization does not support Exadata access via InfiniBand connection. This feature is planned for Exalytics Release 1 Patchset 4 (v1.0.0.4). However, Exadata can be accessed via the 1G or 10G interfaces.”
I have yet to see a customer who bought the Exalytics machines without Exadata as the database server, so taking away the InfiniBand connection meant that nobody had the incentive to virtualize.

 Oracle came out with Patchset 4 in early 2014. Exalytics boxes can now be virtualized while keeping the InfiniBand connectivity into Exadata and/or Exalogic (as traffic cop). There is a lot of excitement about being able to run the BI system as a private cloud offering. 

In a state department where I am currently consulting in, one of their goals is to 
“gain efficiencies through creation of a Private Cloud and encourage adoption of public cloud platforms, when appropriate.”
So when the PSU4 came out, the stakeholders were very excited to present the recent Exalytics acquisition and rewire them as private cloud offering for various agencies looking to use it to serve their BI content.

Oracle's recommendation has been to limit the VMs on an Exalytics box to a maximum of 4 on X2/X3 machines and 12 on X5 (@10 core/VM). The configurations are as follows:

• 1 VM for BI
• 1 VM for Essbase (planning)
• 1 VM for Endeca
• Each VM instance to run a minimum of 10 cores

It is still unclear if this is a licensing limitation or a result of an internal benchmark. If an organization is using an Exalytics box to run OBIEE, BI apps, and the EPM suite, there go the 4 VMs. They would need to allot one for each of these: BI apps (one central implementation), EPM (one central implementation), OVM, and custom OBIEE machines.

In the succeeding weeks, I will share our experience with this state department client and how we meet one of their goals by eliminating duplication and lowering costs. Stay tuned for these upcoming posts:

Part II - Classify the Application Requirements and Cloud Offerings - Exalytics
Part III - Elastic Cloud vs. Not-So-Elastic Cloud - CPU Over Subscription

Tech Term of the Day

Exalytics base image: an image that consists of the operating system, virtualization software, and device drivers pre-configured for the respective appliance.


Sachin
BuzzClan LLC
Architect - Oracle Engineered Systems
Exalytics/Exalogic/Exadata

BuzzClan is a business consulting company collaborating to provide Oracle software advisory services & implementation services. BuzzClan LLC is committed to providing substantive business value on each and every client engagement. We do this through a combination of industry-specific business expertise, technical skills, proven project management methods and our “onsite - off site - offshore” delivery model. We strive to work in partnership with our customers to build high-performance teams and create business solutions that will last.



Wednesday, October 30, 2013

Oracle Database Version Suffix

Ever wonder what the letter suffix means in the Oracle Database version numbers?

Starting Oracle 8, release 1 Oracle starting adding a single letter suffix to its DB versions
 Oracle 8i 
Oracle 9i 
Oracle 10g 
Oracle 11g
Oracle 12c

 The i stood for internet, or Internet ready this version debuted in the late 90's and matured in the early 2000's
g stood for Grid architecture,
The current version has c - indicating the move towards a cloud ready database and platform. PDU's is a major functionality enforcing this move.

More on PDU's later!!

Sachin

BuzzClan LLC

Friday, December 21, 2012

Log to Weblogic logs files from your code. | Weblogic - Java programming: Tips



This is an attempt to gather some of the things I have struggled with initially so I decided to blog some tips and tricks so I can come back to them and others can benefit too:

  • Easy Log from your component: 
There are various ways to implement logging, but the simplest way is to log using "System.out.println" and "System.err.println". These are not good long term and production ready way to achieve this, but this blog is for getting your feet wet in this area, and this should suffice, allowing one to concentrate on the main task at hand. Please come back and re-factor to fix this later.
So to ensure that your logs are recognized by weblogic and saved in the appropriate files, you will have to turn on this feature. Go to Console (url:port/console, login, (left panel)/Environment/(right panel)Servers > AdminServer > Logging -> General (open advanced)
Home >Summary of Environment >Summary of Servers >AdminServer > Logging … advanced
And check “Redirect stdout logging enabled” & “Redirect stderr logging enabled”.
Bow you can simply write commands like
System.out.println(“Message”);
AND
System.err.println(“error”)
I would suggest that you create a new class called
customMessageHandler, and expose two static functions
logMessage(String msg) and logErr(String err) and call these in these functions. This way when you come back to re-factor, you can make your changes in one location.



Sachin
BuzzClan LLC

Thursday, October 4, 2012

Custom links on header

My current client wants to implement custom help for their users. We implemented this by removing the default help link on the header and replacing it with one of our own.

The steps to remove the default help link is as follows:

Log in as admin (weblogic) and go to the Administration section


Search for the text 'Help Menu'


and change the permission to 'Denied'



Log out and log back in - the header should not have the 'Help' Menu link anymore.


Now setting up the custom help. I am assuming that you have a link setup for that. Let's say Yahoo has decided to host our help on their home page. What we need to do next is to setup a menu which points to yahoo's home page.

Custom menu needs to be configured using the file -

<BIInstance>\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\customlinks.xml

http://docs.oracle.com/cd/E25178_01/bi.1111/e10541/answersconfigset.htm#BABHAEIF

The documentation related to this feature mentions that this location is the default location for the file, and if we make changes to this the file at this location, the menus will start working. But we found out that this is not the case, and we have to make changes to the configuration file to ensure that the system knows to bring this file in play.

A bug was opened with Oracle Support to figure this out - (14669527 - CUSTOM LINKS NOT WORKING AND CRASHING THE SERVER)

Support came back with this correction:

There appears to be 2 issues with the doc:
.
1) The "default location" is not picked up unless the tags are added to
instanceconfig.xml:
<ServerInstance>
<CustomLinks>
<filePath>c:/mydir/mysubdir/customlinks.xml</filePath>
</CustomLinks>
</ServerInstance>
This is the reason the changes make no effect.

2) The example XML in the doc is actually invalid. There are 3 lines which
need correcting
(i)
<link id="l1" name="OTN" description="OTN open in new window"
src="http://www.oracle.com" target="blank" >
<locations>
<location name="header"> /
</locations>
</link>
.
should be
.
<link id="l1" name="OTN" description="OTN open in new window"
src="http://www.oracle.com" target="blank" >
<locations>
<location name="header"/>
</locations>
</link>
.
.
(ii)
<link id="l3" name="Yahoo" description="Yahoo" src="http://www.yahoo.com"
target="yahoo" iconLarge="common/helptopics_lg_qualifier.png">
<locations>
<location name="getstarted"> /
</locations>
</link>
.
should be
.
<link id="l3" name="Yahoo" description="Yahoo" src="http://www.yahoo.com"
target="yahoo" iconLarge="common/helptopics_lg_qualifier.png">
<locations>
<location name="getstarted"/>
</locations>
</link>
.
.
(iii)
<link id="l5" name="Gmail" description="gmail" src="http://www.gmail.com"
target="blank" iconLarge="common/gmail.png" >
<locations>
<location name="getstarted"> /
<location name="header" insertBefore="catalog" />
</locations>
</link>
.
should be
.
<link id="l5" name="Gmail" description="gmail" src="http://www.gmail.com"
target="blank" iconLarge="common/gmail.png" >
<locations>
<location name="getstarted"/>
<location name="header" insertBefore="catalog" />
</locations>
</link>
.
.
(essentially the terminating slash of the "location" tag has been placed
outside the tag when it should be the last character before the ">".)
.
when I made these changes it worked fine for me.
.
ACTION PLAN FOR SUPPORT
-----------------------
Please ask your customer to correct this on their system and retest.


Once we fixed this the menus started working - see the screen shot above, we added the OTN link

Epilogue: If we change the menu link for Help, we loose the 'context sensitiveness' of the help. In a later article I will describe how we restored that feature in our custom help solution.

Sachin
JainSys

What is Zero Trust Architecture?