Archive for April, 2012

Identifying Bottlenecks

April 23, 2012

Recently, I have been asked to review performance of an ETL workflow of Informatica provided by Oracle as part of OBIEE upgrade. The OLAP schema upgrade which has several transformations to upgrade Siebel Analytics 7.7 to OBIA

The problem:
An innocent looking “Insert” load is reading a source table, applying a set of look up transformations, then generating a sequence number as a unique key and inserting to a target table in bulk mode is only able to give a throughput of about 65 records per second on a 4 core, 8GB RAM server. The source table is having over 20 million records.

There are other work flows which are running at a throughput of >2000 records per second. So, I have started investigating into this “Performance Problem”

1. Looked at the AWR reports from the source and target databases as well as the Informatica repository database. There is no indication any bottleneck on the database end.

2. Looked at the Session Log of Informatica PowerCenter. The session log shows the Writer thread 99% busy.

3. Taken a subset of 100K records using the source qualifier started running multiple scenarios to identify the bottleneck.

  • First step is to remove the target database; converted the target to a local flat file; so the workflow is now just reading the source; applying all the transformations & look-ups and writing to the local flat file. The throughput did not improve. 
  • Next step is to remove the large table look-ups. One of the look-up was on a table of more than 20 million records. Removed all the look-ups in the workflow mapping. Still the throughput is only 65 records per second. 
  • As the third step, removed the Sequence Number generation; Now the workflow is just reading from the source table and writing to a flat file after applying few compute transformations. The throughput reached 2400 records per second. 
  • By now we have identified the probable bottleneck with the “Sequence Generator”; to confirm that re-ran the work flow with all the look-up transformations and only disabling the sequence generator. The throughput was 2400 records per second. 

4. Looking at the sequence generator is reusable and set to cache only one value. This is causing a round trip from Informatica powercenter server to Informatica repository for the each sequence number to be generated. This could only do a maximum 65 round trips in a second which is causing the bottleneck in this workflow.

Setting appropriate caching on the sequence generator, we finally achieved a throughput of 2400 records per second and completed the load in less than 2.5 hours; It is an improvement of throughput by around 37 times!  

Spending few hours in identifying the bottleneck and removing it worth its effort…… 


April 22, 2012
What is meant by “Jagadguru?” 
It is a word that denotes the “responsibility” of guiding anyone who sincerely seeks guidance in the path of spirituality.
There are two most prominent personalities who are called as Jagadguru. 
1. Lord kRshNa and 2. Adi SaMkara bhagavatpaada AcArya.

— శ్రీ సచ్చిదానంద శివాభినవ నృసింహ భారతీ మహాస్వామి

–ఇలాంటి బాధ్యతను నిర్వర్తించటం కొరకు అవతరించిన భగవత్పాదుల జయంతి సందర్భంగా…
–శంకర జయంతి (వైశాఖ శుక్ల పంచమి గురువారం; 26-April-2012)

అపార కరుణాసిన్ధుం అజ్ఞాన ధ్వాన్త భాస్కరమ్
నౌమి శ్రీ శంకరాచార్యం సర్వలోకైక సద్గురుమ్ 

శ్రీ జగద్గురవే నమః 

Link to my last year post:

భగవత్ చింతన కు తరుణం ఎప్పుడు?

April 16, 2012

దంతంబుల్ పడనప్పుడే తనువునందారూఢియున్నప్పుడే
కాంతాసంఘము రోయనప్పుడె జరాక్రాంతంబు కానప్పుడే
వింతల్ మేన చరించనప్పుడె కురుల్ వెల్వెల్లఁ గానప్పుడే
చింతింపన్ వలె నీ పదాంబుజములన్ శ్రీకాళహస్తీశ్వరా !

— ధూర్జటి; శ్రీ నందననామ సంవత్సర చైత్ర బహుళ ఏకాదశి సందర్భంగా

తరుణం లో చింతన చేయక పోతే వయస్సు మళ్ళిన తరువాత మిగిలేది చింతే!  

There is a misconception in general public that the philosophical thinking and spirituality are for old-age people… But the great devotee and poet dhUrjaTi states in contrary: 

Before the tooth falls, while the body (+mind +intellect) is fully fit, when the women (or the opposite sex) are still attracted; when body was not conquered by the old-age, when variously named diseases have not freely roaming around in the body, when the hair is not turned gray and white i.e, only then… (during the young age itself) one should take up the chintana on lotus feet of LORD!

The right time to do saadhana i.e, spiritual practice is when the body, mind & intellect are still fit… When they become old, they can’t be used for the highest goal of human life…

— SrI nandana nAma samvatsara chaitra bahula EkAdaSi sandarbhamgaa…

Data Replication

April 12, 2012

The need for data replication is evergreen. The use-case may vary from “High Availability” to “Operational Reporting (BI)” to “Real-time Analytics”; whatever may be the case, the need for replicating the data exists in the information systems and solutions.

I try to summarize the evolution of data replication technology from a Oracle Database standpoint in this post.

  1. Looking back at the Oracle based data replication technologies the first one is “Database Link“. One can create a database link and pull or push the data directly into a remote database starting Oracle 5 or 6. This is the very first method of replication where the application need to push or pull the data from a remote database and apply necessary logic to identify what data has changed and what to do with those changes…..
  2. The next improvement in the replication is around Oracle 8 – one can setup a trigger based replication. That means whenever a transaction changes the data in a table one can trigger a function that can handle the replication without changing the application. So, database started giving a method to replicate data using triggers….
  3. Then the next improvement has come around 9.2 with streams and log-based replication. The capability is to mine the redo logs and move the committed transactions to the target systems. (DBMS_CDC_PUBLISH and DBMS_CDC_SUBSCRIBE packages were introduced)
  4. Oracle Advanced Queuing enhanced the streams to have robust publish and subscribe model replication that has enqueue and dequeue based communication. I was involved in a very large project that set up a custom Changed Data Capture to migrate data from a legacy system into SAP ERP involving large tables having 100Milion records…. 
  5. Later the log-mining technology was used for physical and logical standby dataabses and evolved to a Active Data Guard technology……
  6. With GoldenGate, the heterogeneous log-based data replication solution is complete from Oracle that has capabilities to extract, replicate, synchronize data in bi-directional movement.  

Depending on the need one should choose the right technology to achieve the needed data replication….

అప్పడపు పాట

April 7, 2012

అప్పడమొత్తి చూడు అదితినినప్పుడె నీ యాశ వీడు (పల్లవి)

ఇప్పుడమి యందున యేమరి తిరుగక
సద్భోధానందుడౌ సద్గురు నాధుడు
చెప్పక చెప్పెడు తత్త్వమగు సమము
గొప్పది లేనట్టి యొకమాట చొప్పున (అను పల్లవి)

చరణం 1.
తానుగాని పంచ కోశ క్షేత్రమునందు
తానుగా పెరుగభిమాన మినుములను
నేనెవ్వడనెడు విచార తిఱుగలిలో
నేనుగానని పగలగొట్టి పిండియుచేసి (అ)

చరణం 2.
సత్సంగమనియెడు నల్లేరు రసముతో
శమదమములను జీలకఱ్ఱ మిరియములతో
ఉపరతి యనునట్టి యుప్పును కలిపి
సద్వాసన యనియెడి యింగువను చేర్చి (అ)

చరణం 3.
రాతి చిత్తము నేను-నేనని భ్రమయక
లోదృష్టి రోకటి తోను మానక దంచి
శాంతమౌ కొడుపుతో సమమగు పీటపై
సంతత మలయక సంతసంబు తోడ (అ)

చరణం 4.
మౌనముద్ర యనెడి ముగియని పాత్రమున
జ్ఞానాగ్ని చే కాగు సద్బ్రహ్మ ఘృతమున
నేనది యగునని నిత్యమును పేల్చి
తనుదానె భుజియింప తన్మయ మగునట్టి (అ)

— భగవాన్ శ్రీ రమణ మహర్షి (శ్రీ ప్రణవానందుల అనువాదం)

మనసు, బుద్ధి, అహంకారము, చిత్తము అనే నాలుగింటినీ ఇలా అప్పడాలుగా కాల్చుకుని భుజించేశారు కాబట్టే భగవాన్ రమణులను చూచిన కావ్యకంఠ గణపతి ముని “శుక్లాంబర ధరం విష్ణుం శశివర్ణం చతుర్భుజం ప్రసన్న వదనం ధ్యాయేత్ సర్వ విఘ్నోపశాంతయే” అన్న శ్లొకాన్ని భగవాన్ రమణులకు అన్వయిస్తూ “చతుర్భుజం” అన్న పదానికి ఈ అర్థాన్ని చెప్పారు!

నైతికం అర్థం ఆర్జయ

April 5, 2012

మాతా నిందతి న అభినందతి పితా భ్రాతా న సంభాషతే
భృత్యః కుప్యతి న అనుగచ్చతి సుతాః కాంత అపి న ఆలింగ్యతే
అర్థ ప్రార్థన శంకయా న కురుతే సల్లాపమాత్రం సుహృత్
తస్మాత్ నైతికం అర్థం ఆర్జయ సఖేః అర్థేన సర్వే వశాః

O sakhE: Dear friends, if you have no money,  mAtAnindati; mother blames; nAbhinandati pitA – father will not praise; bhrAtA na sambhAshatE – brothers will not talk; bhRtyaH kupyati – servants will be unhappy; nAnugacchati sutAH – sons will not follow the instructions; kAntApinAlingyatE – wife will not embrace; arthaprArthana SankayA na kurutE sallapamAtram suhRt – with a doubt that you may ask for a small loan the friends will stop greeting even;

tasmAt naitikamarthamArjaya = that’s why earn money in a judicious way (that do not conflict with swadharma)  

arthena sarve vasAH = by money (earned in judicious way!) all (the laukila relations / transactions) can be brought into / kept under control. 

That is why one should engage in earning money (within the limitations imposed by DHARMA and NIITI)!

— నూతన ఆర్థిక సంవత్సరం సందర్భంగా