SlideShare a Scribd company logo
Verlichte Java Applicaties Oracle Technology Daya – Enterprise Java Performance
Overview What is performance? Where is performance established? Advanced tuning methods ISYITF Method for Performance Improvement: Do not do it … Architecting Enterprise Java applications for improved performance
Performance Degradation 65 %
Performance Degradation Response time + 65 %
Performance Who determines in what way the performance Expectations Measure objectively Business Owner Business Objectives Process Duration Wait time SLAs What is start and what is end of action Availability ≈ Performance Disappearance Hourglass Response time Meaningful response
The Theater manager
Typical Layout of Enterprise Java applicatiONS Performance ≈ Wait for Response Web Browser JEE Application Server RDBMS
Performance contributors in Enterprise Java applicatiONS Performance ≈ Wait for Response Web Browser Response = Wait + Processing Wait = Network 1 + Response AppServer 1 JEE Application Server Response = Wait + Processing Wait = Network 2 + Response Database 2 RDBMS Response = Processing Processing = internal wait (I/O) + CPU
Advanced Tuning Methods Use StringBuffer rather than plain String concatenation Use SAX for XML parsing instead of DOM Carefully select the collection class to use optimize hashcode() in custom Map implementations Use profiling tools to identify hotspots in the Java code Remove Assertions from production code Find optimal JVM switches through trial-and-error Focus on GC, Heap size, thread pools Pool resources and reuse objects rather than recreate Leverage concurrency features in Java to speed up time-to-completion through parallel execution prevent underuse of CPU during I/O operations Optimize algorithms for sorting, pattern matching, iteration, serialization, …
ISYITF Method for Performance improvement The fastest way to perform a task: DO NOT do it
Prevent unneeded processing   if ( expensiveEvaluation & someFlag) {  ...}    if (someFlag && expensiveEvaluation) {  ...}
Prevent unneeded processing log.debug ( “Outcome step 2: ” + resultOfExpensiveProcessing );   if (log.doDebug) log.debug ( “Outcome step 2: ” + resultOfExpensiveProcessing );
The shopping algorithm
The Shopping algorithm shopForItem Item ( String itemName) {driveToShop;  Item item = buyItemAtShop ( itemName);driveHomeFromShop;  return item;}
Get this week’s groceries  getGroceries Item[] ( String[] shoppingList) {   Item[] items = new Item[ shoppingList.length];     for (inti=0; i < shoppingList.length; i++) {      items[i] = shopForItem (shoppingList[i]);   }     return items;}
ISYITF Method for Performance improvement At All At All More often than required DO NOT do it
Sweet memories
Stock management
Stock management
Do not do it…More often than required If it has been produced before… Reuse before re-produce! If it has been shipped before… Reuse instead of re-ship … provided it is still fresh Web Browser JEE Application Server RDBMS
Do not do it…More often than required Save on network trips, context switches and tiers to cross Save on ‘reproducing’ same results Web Browser ,[object Object]
Cookies
 HTML 5 dbEdge Cache JEE Application Server Cache Cluster Fail-Over (Session State) Result Store Write Behind Client Result Cache RDBMS Result Cache Materialized View
More performance requires parallel
More performance requires parallel
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own
Moore’s law revised: cores law
Do not do it…On your own Parallel means: multiple resources contributing to a task at the same time Leverage multi-core CPU Achieve scalability and performance with a Cluster Introduce parallellism into your application Java: Concurrency (ThreadPools), WorkManager Database: parallel query and DML , dbms_parallel_execute, dbms_job, parallel table functions Multi threading: on every tier and even across tiers Engage compute grid: multi node processing unit
Balance resources to Prevent Clogging
Pancake Party
Better performing Pancake Party
Pipelined Pancake Party: best performance
Pipelined Pancake Party Parallel Pipelined: multiple different resources working on different components of the task in [potentially] different tiers From batch processing to unit processing => pass the unit on for further processing as soon as part of the task is done – to leverage resources (across tiers) in parallel Instead of baking the entire stack first and only then eating it… … start eating as soon as the first one is done Even the last guest ends earlier than without pipelining provided he eats more than one pancake (he eats his first pancake when it is done, not when the stack is done) The first eater is done much sooner  first rows/all rows ≈ first pan cake/all pan cakes
Pipelining across the tiers Database:  Pipelined Table Functions Pipes and Queues Middle tier: Multiple threads Queues (JMS) Client tier: AJAX “channels” WebSockets Web Browser RDBMS
The pinnacle of un-performance
Fire and forget
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately
fire and forget in the real world
Do not do it…Immediately (or synchronously) Submit information, file a complaint or request, start a process, trigger interaction No immediate response is required! Asynchronous Start batch job (db) or worker-thread (java) Or fire event Write behind (from grid) (NO SQL) DML Error log
Do not do it…in BATCH (un-immediately) Batch jobs can put peak load on a system – choking on line applications Monthly reporting, quarterly prolongation, yearly calculation,  Batch jobs are increasingly unwanted in 24/7 When is the “nightly” batch window? Data not current (enough) by today’s standards: “batch has not run yet” Batch jobs used to be desirable or needed as a result of technical limitations – that may not apply anymore Continuous, near real-time operations – leveraging events, decoupling and integration architectures – are a serious alternative
Don’t call us … we’ll call you
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request
Do not do it…As per request Push has two key advantages over poll Most up to date information Reduction in network traffic and load on server Push is available in several flavors Middleware to Browser: comet, ADF Active Data Service, WebLogic Server HTTP Channels, long poll, WebSockets in HTML 5 Database to Middleware: JMS/AQ, Database Query Result Change Notification, Table Triggers, utl_http push to servlet “piggy backing” – adding subscribed-to information in regular requests Event driven architecture is based on push (of events) to mediating event handling infrastructure
Bite off more than you can Have to chew
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps
Do not do it…In too big steps Performance perception is often: time until page is displayed and accessible (hourglass disappears) Web pages frequently contain much more than is initially visible or even required Tree nodes, inactive tabs, invisible popups, unopened dropdown lists  Performance perception can be enhanced by not initially loading what is not required Use AJAX based post-loading to (lazy-)fetch content in subsequent, background round-trips /*+ First Rows */ vs. /*+ All Rows */
Do not do it…In too big or too small steps Every network round-trip  and context-switch adds overhead Compare dialing the operator for every digit in the telephone number you want to learn about Bundling up information to reduce the number of round trips can be advantageous for performance Bring all items from the shop in one round trip Leverage collections and types, XML or JSON to retrieve complex, structured object graphs from DB Zipping up multiple web resources in single archive Mashing up icons or images into a single big picture  Piggy-back information onto requests
The hard way
a convoluted way
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way
Do not do it…In a convoluted way Pragmatism can overcome theoretical purity (or old dogs’ tricks) With good reason and well documented Have client side Java Script directly access Google Maps – by-passing the application server Have client directly access Database services Use RESTful (JSON, CSV) rather than WS* and XML between browser client and application server Use POJOs (Entities) throughout the application, from JPA to Web Tier – rather than copying/transferring When that suffices, use simple substring i/o parsing big xml in DOM Pass plain CSV/JSON/XML from DB through Java middle tier to Client when that is appropriate
Bottleneck / Critical chain
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way In A suboptimal place
Bottleneck / Critical chain Make sure that the bottleneck resource in your enterprise application is not used (at peak times) for work that is not critical or that can be outsourced Use auxiliary resources – outside critical chain Engage specialized servers, optimized for specific tasks Manage resources in a strict manner Resource manager (DB) or Work manager (WLS)
Do not do it… LIVE Event processingIn a suboptimal place The league of real time events Continuous stream of a multitude of tiny events with hardly any payload, to analyze & aggregate Sent from physical sensors (temperature, pressure, RFID, security gates), process sensors, Twitter, manufacturing equipment, database triggers, web servers, ESBs, stock trade tickers, sport statistics, RSS, network switches, …
Do not do it… HTML RenderingIn a suboptimal place (X)HTML is not very compact Information density of HTML is very low DHTML, JavaScript &AJAX allow for Dynamic HTMLrendering in browser Dynamic, PartialPage Refresh Most HTML presentedby application is pre-defined Dynamic data contentfetched from RDBMSor other services issmall fraction Web Browser JEE Application Server RDBMS
Do not do it…In a suboptimal place Do not perform a task in a resource that is not ideally suited for that task If it directly contributes to overall performance
Do not do it…In a suboptimal place Leverage database for what it’s good at Data Integrity – Primary Key /Unique Key /Foreign Key Aggregation Sorting Data Rule enforcement Bulk DML and Copy data Analytical Functions, Model clause, Rollup Specialized engines for Imaging and Document Processing Match and Search Speech Recognition Cryptography 3D  ….
ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way In A suboptimal place
Architect For Performance Web Browser JEE Application Server RDBMS
Architect(ure) for performance Services ( Google Maps, Translation, Conversion, Data Feeds ,[object Object]
Cookies

More Related Content

Similar to Java Enterprise Performance - Unburdended Applications

Deferred Processing in Ruby - Philly rb - August 2011
Deferred Processing in Ruby - Philly rb - August 2011Deferred Processing in Ruby - Philly rb - August 2011
Deferred Processing in Ruby - Philly rb - August 2011rob_dimarco
 
The 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
David Chandler
 
Camunda BPM 7.2: Performance and Scalability (English)
Camunda BPM 7.2: Performance and Scalability (English)Camunda BPM 7.2: Performance and Scalability (English)
Camunda BPM 7.2: Performance and Scalability (English)
camunda services GmbH
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web Sites
Craig Dickson
 
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Thorsten Franz
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software Performance
Gibraltar Software
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
Philip Norton
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappearedLuc Bors
 
Effective Test Driven Database Development
Effective Test Driven Database DevelopmentEffective Test Driven Database Development
Effective Test Driven Database Developmentelliando dias
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
jimliddle
 
Black Friday and Cyber Monday- Best Practices for Your E-Commerce Database
Black Friday and Cyber Monday- Best Practices for Your E-Commerce DatabaseBlack Friday and Cyber Monday- Best Practices for Your E-Commerce Database
Black Friday and Cyber Monday- Best Practices for Your E-Commerce DatabaseTim Vaillancourt
 
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Yahoo Developer Network
 
Background Processing - PyCon MY 2015
Background Processing - PyCon MY 2015Background Processing - PyCon MY 2015
Background Processing - PyCon MY 2015
Kok Hoor Chew
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPMcamunda services GmbH
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
dwm042
 
Ajug april 2011
Ajug april 2011Ajug april 2011
Ajug april 2011
Christopher Curtin
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications
David Mitzenmacher
 

Similar to Java Enterprise Performance - Unburdended Applications (20)

Deferred Processing in Ruby - Philly rb - August 2011
Deferred Processing in Ruby - Philly rb - August 2011Deferred Processing in Ruby - Philly rb - August 2011
Deferred Processing in Ruby - Philly rb - August 2011
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Do you queue (updated)
Do you queue (updated)Do you queue (updated)
Do you queue (updated)
 
The 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
 
Camunda BPM 7.2: Performance and Scalability (English)
Camunda BPM 7.2: Performance and Scalability (English)Camunda BPM 7.2: Performance and Scalability (English)
Camunda BPM 7.2: Performance and Scalability (English)
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web Sites
 
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Natural Laws of Software Performance
Natural Laws of Software PerformanceNatural Laws of Software Performance
Natural Laws of Software Performance
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
 
...and thus your forms automagically disappeared
...and thus your forms automagically disappeared...and thus your forms automagically disappeared
...and thus your forms automagically disappeared
 
Effective Test Driven Database Development
Effective Test Driven Database DevelopmentEffective Test Driven Database Development
Effective Test Driven Database Development
 
Giga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching OverviewGiga Spaces Data Grid / Data Caching Overview
Giga Spaces Data Grid / Data Caching Overview
 
Black Friday and Cyber Monday- Best Practices for Your E-Commerce Database
Black Friday and Cyber Monday- Best Practices for Your E-Commerce DatabaseBlack Friday and Cyber Monday- Best Practices for Your E-Commerce Database
Black Friday and Cyber Monday- Best Practices for Your E-Commerce Database
 
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
Data Applications and Infrastructure at LinkedIn__HadoopSummit2010
 
Background Processing - PyCon MY 2015
Background Processing - PyCon MY 2015Background Processing - PyCon MY 2015
Background Processing - PyCon MY 2015
 
20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM20061122 JBoss-World Experiences with JBoss jBPM
20061122 JBoss-World Experiences with JBoss jBPM
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
Ajug april 2011
Ajug april 2011Ajug april 2011
Ajug april 2011
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 

Recently uploaded (20)

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 

Java Enterprise Performance - Unburdended Applications

  • 1. Verlichte Java Applicaties Oracle Technology Daya – Enterprise Java Performance
  • 2. Overview What is performance? Where is performance established? Advanced tuning methods ISYITF Method for Performance Improvement: Do not do it … Architecting Enterprise Java applications for improved performance
  • 5. Performance Who determines in what way the performance Expectations Measure objectively Business Owner Business Objectives Process Duration Wait time SLAs What is start and what is end of action Availability ≈ Performance Disappearance Hourglass Response time Meaningful response
  • 7. Typical Layout of Enterprise Java applicatiONS Performance ≈ Wait for Response Web Browser JEE Application Server RDBMS
  • 8. Performance contributors in Enterprise Java applicatiONS Performance ≈ Wait for Response Web Browser Response = Wait + Processing Wait = Network 1 + Response AppServer 1 JEE Application Server Response = Wait + Processing Wait = Network 2 + Response Database 2 RDBMS Response = Processing Processing = internal wait (I/O) + CPU
  • 9. Advanced Tuning Methods Use StringBuffer rather than plain String concatenation Use SAX for XML parsing instead of DOM Carefully select the collection class to use optimize hashcode() in custom Map implementations Use profiling tools to identify hotspots in the Java code Remove Assertions from production code Find optimal JVM switches through trial-and-error Focus on GC, Heap size, thread pools Pool resources and reuse objects rather than recreate Leverage concurrency features in Java to speed up time-to-completion through parallel execution prevent underuse of CPU during I/O operations Optimize algorithms for sorting, pattern matching, iteration, serialization, …
  • 10. ISYITF Method for Performance improvement The fastest way to perform a task: DO NOT do it
  • 11. Prevent unneeded processing if ( expensiveEvaluation & someFlag) { ...} if (someFlag && expensiveEvaluation) { ...}
  • 12. Prevent unneeded processing log.debug ( “Outcome step 2: ” + resultOfExpensiveProcessing ); if (log.doDebug) log.debug ( “Outcome step 2: ” + resultOfExpensiveProcessing );
  • 14. The Shopping algorithm shopForItem Item ( String itemName) {driveToShop; Item item = buyItemAtShop ( itemName);driveHomeFromShop; return item;}
  • 15. Get this week’s groceries getGroceries Item[] ( String[] shoppingList) { Item[] items = new Item[ shoppingList.length]; for (inti=0; i < shoppingList.length; i++) { items[i] = shopForItem (shoppingList[i]); } return items;}
  • 16. ISYITF Method for Performance improvement At All At All More often than required DO NOT do it
  • 20. Do not do it…More often than required If it has been produced before… Reuse before re-produce! If it has been shipped before… Reuse instead of re-ship … provided it is still fresh Web Browser JEE Application Server RDBMS
  • 21.
  • 23. HTML 5 dbEdge Cache JEE Application Server Cache Cluster Fail-Over (Session State) Result Store Write Behind Client Result Cache RDBMS Result Cache Materialized View
  • 26. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own
  • 28. Do not do it…On your own Parallel means: multiple resources contributing to a task at the same time Leverage multi-core CPU Achieve scalability and performance with a Cluster Introduce parallellism into your application Java: Concurrency (ThreadPools), WorkManager Database: parallel query and DML , dbms_parallel_execute, dbms_job, parallel table functions Multi threading: on every tier and even across tiers Engage compute grid: multi node processing unit
  • 29. Balance resources to Prevent Clogging
  • 32. Pipelined Pancake Party: best performance
  • 33. Pipelined Pancake Party Parallel Pipelined: multiple different resources working on different components of the task in [potentially] different tiers From batch processing to unit processing => pass the unit on for further processing as soon as part of the task is done – to leverage resources (across tiers) in parallel Instead of baking the entire stack first and only then eating it… … start eating as soon as the first one is done Even the last guest ends earlier than without pipelining provided he eats more than one pancake (he eats his first pancake when it is done, not when the stack is done) The first eater is done much sooner first rows/all rows ≈ first pan cake/all pan cakes
  • 34. Pipelining across the tiers Database: Pipelined Table Functions Pipes and Queues Middle tier: Multiple threads Queues (JMS) Client tier: AJAX “channels” WebSockets Web Browser RDBMS
  • 35. The pinnacle of un-performance
  • 37. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately
  • 38. fire and forget in the real world
  • 39. Do not do it…Immediately (or synchronously) Submit information, file a complaint or request, start a process, trigger interaction No immediate response is required! Asynchronous Start batch job (db) or worker-thread (java) Or fire event Write behind (from grid) (NO SQL) DML Error log
  • 40. Do not do it…in BATCH (un-immediately) Batch jobs can put peak load on a system – choking on line applications Monthly reporting, quarterly prolongation, yearly calculation, Batch jobs are increasingly unwanted in 24/7 When is the “nightly” batch window? Data not current (enough) by today’s standards: “batch has not run yet” Batch jobs used to be desirable or needed as a result of technical limitations – that may not apply anymore Continuous, near real-time operations – leveraging events, decoupling and integration architectures – are a serious alternative
  • 41. Don’t call us … we’ll call you
  • 42. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request
  • 43. Do not do it…As per request Push has two key advantages over poll Most up to date information Reduction in network traffic and load on server Push is available in several flavors Middleware to Browser: comet, ADF Active Data Service, WebLogic Server HTTP Channels, long poll, WebSockets in HTML 5 Database to Middleware: JMS/AQ, Database Query Result Change Notification, Table Triggers, utl_http push to servlet “piggy backing” – adding subscribed-to information in regular requests Event driven architecture is based on push (of events) to mediating event handling infrastructure
  • 44. Bite off more than you can Have to chew
  • 45. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps
  • 46. Do not do it…In too big steps Performance perception is often: time until page is displayed and accessible (hourglass disappears) Web pages frequently contain much more than is initially visible or even required Tree nodes, inactive tabs, invisible popups, unopened dropdown lists Performance perception can be enhanced by not initially loading what is not required Use AJAX based post-loading to (lazy-)fetch content in subsequent, background round-trips /*+ First Rows */ vs. /*+ All Rows */
  • 47. Do not do it…In too big or too small steps Every network round-trip and context-switch adds overhead Compare dialing the operator for every digit in the telephone number you want to learn about Bundling up information to reduce the number of round trips can be advantageous for performance Bring all items from the shop in one round trip Leverage collections and types, XML or JSON to retrieve complex, structured object graphs from DB Zipping up multiple web resources in single archive Mashing up icons or images into a single big picture Piggy-back information onto requests
  • 50. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way
  • 51. Do not do it…In a convoluted way Pragmatism can overcome theoretical purity (or old dogs’ tricks) With good reason and well documented Have client side Java Script directly access Google Maps – by-passing the application server Have client directly access Database services Use RESTful (JSON, CSV) rather than WS* and XML between browser client and application server Use POJOs (Entities) throughout the application, from JPA to Web Tier – rather than copying/transferring When that suffices, use simple substring i/o parsing big xml in DOM Pass plain CSV/JSON/XML from DB through Java middle tier to Client when that is appropriate
  • 53. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way In A suboptimal place
  • 54. Bottleneck / Critical chain Make sure that the bottleneck resource in your enterprise application is not used (at peak times) for work that is not critical or that can be outsourced Use auxiliary resources – outside critical chain Engage specialized servers, optimized for specific tasks Manage resources in a strict manner Resource manager (DB) or Work manager (WLS)
  • 55. Do not do it… LIVE Event processingIn a suboptimal place The league of real time events Continuous stream of a multitude of tiny events with hardly any payload, to analyze & aggregate Sent from physical sensors (temperature, pressure, RFID, security gates), process sensors, Twitter, manufacturing equipment, database triggers, web servers, ESBs, stock trade tickers, sport statistics, RSS, network switches, …
  • 56. Do not do it… HTML RenderingIn a suboptimal place (X)HTML is not very compact Information density of HTML is very low DHTML, JavaScript &AJAX allow for Dynamic HTMLrendering in browser Dynamic, PartialPage Refresh Most HTML presentedby application is pre-defined Dynamic data contentfetched from RDBMSor other services issmall fraction Web Browser JEE Application Server RDBMS
  • 57. Do not do it…In a suboptimal place Do not perform a task in a resource that is not ideally suited for that task If it directly contributes to overall performance
  • 58. Do not do it…In a suboptimal place Leverage database for what it’s good at Data Integrity – Primary Key /Unique Key /Foreign Key Aggregation Sorting Data Rule enforcement Bulk DML and Copy data Analytical Functions, Model clause, Rollup Specialized engines for Imaging and Document Processing Match and Search Speech Recognition Cryptography 3D ….
  • 59. ISYITF Method for Performance improvement DO NOT do it … At All More often than required On your own immediately As per request In too big or too small steps In a convoluted way In A suboptimal place
  • 60. Architect For Performance Web Browser JEE Application Server RDBMS
  • 61.
  • 63. HTML 5 local dbWeb Browser HTML rendering Validation, Calculation, Parsing “Processing” (image, cryption, compression, SETI) Post load (AJAX) piggy-back Fire&Forget by-pass JEE Application Server
  • 64.
  • 66. HTML 5 local dbWeb Browser HTML rendering Validation, Calculation, Parsing “Processing” (image, cryption, compression, SETI) Post load (AJAX) piggy-back push Fire&Forget by-pass Edge Cache Search& Match Load balancer Sticky ip sessions, Throttling CEP Cache CMS JEE AppServerNode JEE AppServerNode Node Cluster Fail-Over (Session State) Result Store Write Behind Compute Grid WorkManager Parallel Threads JMS Crypto Image Print Server
  • 67. Architect(ure) for performance by-pass Edge Cache Search& Match Load balancer Sticky ip sessions, Throttling CEP CEP Cache CMS CMS JEE AppServerNode JEE AppServerNode Node Cluster Fail-Over (Session State) Result Store Write Behind Compute Grid Compute Grid WorkManager Parallel Threads JMS Crypto Crypto Image Image Print Server Print Server push Client Result Cache Postload Fire&Forget AQ/JMS HTTP Push DB QRCN RDBMS REST API Result Cache Aggregation Filter & Sort Data Integrity Bulk DML Resource Mgt Jobs Pipelining Parallel Processing Materialized View CBO
  • 68.
  • 70. HTML 5 local dbWeb Browser HTML rendering Validation, Calculation, Parsing “Processing” (image, cryption, compression, SETI) Post load (AJAX) push piggy-back Fire&Forget by-pass Edge Cache Load balancer Sticky ip sessions, Throttling CEP Cache CMS JEE AppServerNode JEE AppServerNode Node Cluster Fail-Over (Session State) Result Store Write Behind Compute Grid WorkManager Parallel Threads JMS Crypto Image Print Server push Client Result Cache Postload Fire&Forget AQ/JMS HTTP Push DB QRCN RDBMS REST API Result Cache Aggregation Filter & Sort Data Integrity Bulk DML Resource Mgt Jobs Pipelining Parallel Processing Materialized View CBO
  • 71. Summary Performance requirements are derived from measurable and meaningful business objectives Unavailability equals Zero Performance Treat Performance and Availability elements in the same equation Performance should [also] be addressed in a top-down approach, across all tiers and constituent parts Some ISYITF guidelines: Do not do it … [AT ALL | MORE OFTEN THAN REQUIRED | ON YOUR OWN | IMMEDIATELY | AS PER REQUEST | IN TOO BIG OR TOO SMALL STEPS | IN A CONVOLUTED WAY | IN A SUBOPTIMAL PLACE ]

Editor's Notes

  1. Process
  2. Na een upgrade van SOA Suite 10g (ESB) naar OSB 11g, 65% slechtereresponsetijd
  3. Na een upgrade van SOA Suite 10g (ESB) naar OSB 11g, 65% slechtereresponsetijd
  4. Cache – spreekuit: kasjeKastjesBrowser: Client (browser, cookie or Java Script memory; HTML 5 offers persistent, cross session local db like storage)App Server : Edge (WebServer)JVM (and cluster)Cross cluster shared cachedb or memory gridDatabase (not requery at least)
  5. http://thecleancoder.blogspot.com/2010/08/why-clojure.htmlWhat this means is that our computers can still get faster, but only if we put multiple CPUs on a chip.  This is why we&apos;ve seen all these multi-core processors showing up.  And thatmeans that programs that need greater speed will have to be able to take advantage of the multiple cores.
  6. Additional bar tendersNo improved performanceIn fact: some degradation(new) Bottleneck: coffee machinesSystem is I/O bound, increase CPU will only increase the ‘threading overhead’ and degrade performanceSame with more toilets: the washing basins become the new bottle neckSynchronization points
  7. Compare ECT:Unload all containers, than start moving out (train?)Unload one, put on truck and start driving; then unload next one
  8. Plaatje van printerPrint Job wordtnaar printer gestuurdWil je zandloper tot de printer klaar is met de klus?Of een melding ‘job has started’ en doorgaan met je werk
  9. Do not do (synchronous) work in resources that are not ideally equipped/do that work in a suboptimal way
  10. Copy data in PL/SQL (rather than bring from DB to Middletier, copy, send back again)