310 likes | 524 Views
Oracle OpenWorld. Blistering Web Applications with Oracle TimesTen In Memory Option. Intro & Welcome. Bill Binko, Perot Systems Consulting (Tampa) Perot Consulting Performance Practice Tuning & Optimizing Enterprise Applications Custom Development of High-Volume Applications
E N D
Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option
Intro & Welcome • Bill Binko, Perot Systems Consulting (Tampa) • Perot Consulting Performance Practice • Tuning & Optimizing Enterprise Applications • Custom Development of High-Volume Applications • Contact: bill.binko@ps.net
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
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!
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)
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) High-Volume Applications
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
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
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
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.)
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
Combination Approach – Both Delivery & Data Collection in one Node
Questions? • Questions about Architecture?
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!
Questions? • Questions? • Contact: • Bill Binko • Perot Systems (Tampa) • Bill.Binko@ps.net
Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option