A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option
1 Intro & Welcome Bill Binko, Perot Systems Consulting (Tampa) Perot Consulting Performance Practice –Tuning & Optimizing Enterprise Applications –Custom Development of High-Volume Applications Contact:
2 Overview Very High Volume Web Applications –Delivery & Data Collection Leverage TimesTen (IMDB) and Cache Connect Based on several engagements (past & present) –Online Content Delivery, Smart Grid, Smart CDN Management Fundamental: –Find high-volume functionality (usually not hard) –Re-implement using TimesTen IMDB & Simpler Architecture Results: –Highly scalable (horizontally) –Deliveries (finding constrained Content): 1,000 req/sec/node –Data Collection (simple recording & aggregation) : 75,000 req/sec/node
3 Java EE Tutorial #1 – What’s wrong with this picture?
4 Java EE Tutorial #2
5 A More Reasonable App Structure
6 Traditional Application Stack Flavor somewhat irrelevant –Java EE,.NET, LAMP, even Rails Most still have relational DB as foundation Many Framework Options (Even just for Java!) –Presentation: Struts, JSF, JSP+Tag Libs –App Logic: Struts, Spring, Seam, etc. –Business Logic: Internal & External External: EJB, SOA, ESB, etc. –Data Access: Java Persistence, ORMs, JDBC, DAO Works well for “General” Applications –Many Benefits (Technical & Business) –Many Problems (Debugging, Performance, Don’t get me started) Important: Every Layer Adds Overhead!
7 What is a “General” Application? “Normal” Distribution of Effort/Results Follows “Pareto” 80/20 Rules –Bugs, Traffic, Load, Time, etc. Consistent “Type” of activities –CRUD Applications –Similar Actions No major Outliers –Resource Consumption “What Manager Expect” –(Not as common as we’d like)
8 High-Volume Applications Fundamental Split in Functionality –Configuration/Analysis (Low Volume) –Delivery/Collection (High Volume) No longer 80/20! More like 100/1 (or 1000/1!) Two Main Categories –Content Delivery –Data Collection –Combination Normal Architecture –L.V. Benefits –H.V. Fails (Spectacularly)
9 Category 1: High-Volume Delivery Applications Delivery vs. Web App vs. Hosting? –Many rapid requests from separate clients –Mostly Stateless/Sessionless –Dynamic Content: not just hosting files/images Examples –Online Ads –Personalized Feeds (RSS/Atom/etc.) –APIs (esp. REST) Pseudo-Delivery –Ajax (Auto-Complete, Status Check) –Smart CDN Management
10 High-Volume Delivery Application Solution The Trick is to Split the App –Low Volume: Configuration –High Volume: Delivery Session, Workflow, Human Interfaces are SLOW Handle Delivery Separately TimesTen (Oracle IMDB) Helps Tremendously
11 Delivery Solution - Remember the RDBMS!
12 Delivery Solution - One option: just split the app
13 Delivery Solution – Add TimesTen (IMDB Option)
14 TimesTen Overview
15 High Volume Delivery Server Design
16 Nothing Magic about WebLogic / Java
17 Scales Well Horizontally
18 Category 2: Data Collection And Analysis Not about Intelligent Delivery About Rapid Data Collection Simple “Requests” are just data submission Attributes: –High Volume –Low Latency –Many Concurrent Clients Examples –Analytics (JavaScript/Ajax/Beacon Images) –Sensor Data –(Content) Delivery Tracking
19 High-Volume Data Collection Solution The Trick is STILL to Split the App –Low Volume: Analysis –High Volume: Data Collection Analysis uses normal BI/DW techniques –Don’t change this Data Collection is critical Pre-Aggregate on the High-Volume Server –Data is still data, and you CAN’T keep it all –(unless you’re Google/Amazon/etc.)
20 Data Collection & Analysis
21 Data Collector HV Design
22 Combining Delivery & Data Collection One final option (our original client’s needs) Use Data Collection to track Deliveries Reuse the High Volume Server for both Delivery & Data Collection “Round Trip” feedback Loop
23 Combination Approach – Both Delivery & Data Collection in one Node
24 Combination – Data Flows
25 Combination – Full Picture
26 Questions? Questions about Architecture?
27 Other Issues: Connection Management
28 Other Issues: Hardware Low Volume – Standard Hardware RAC Instance – Standard Hardware High Volume – Not Standard –CPU Intensive –Memory Hogs –Saturates Network I/O –Odd Disk Usage (Sequential Writes) TimesTen Group great at helping find write hardware!
29 Questions? Questions? Contact: –Bill Binko –Perot Systems (Tampa)
A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option