JavaOne '99 Confidential Performance and Scalability of EJB-based applications Sriram Srinivasan Principal Engineer, BEA/WebLogic.

Slides:



Advertisements
Similar presentations
Tableau Software Australia
Advertisements

ICS 434 Advanced Database Systems
The State of the Art in Distributed Query Processing by Donald Kossmann Presented by Chris Gianfrancesco.
Serverless Network File Systems. Network File Systems Allow sharing among independent file systems in a transparent manner Mounting a remote directory.
Capacity Planning and Predicting Growth for Vista Amy Edwards, Ezra Freeloe and George Hernandez University System of Georgia 2007.
1 Softsmith Open Learning - EJB 21-Nov Enterprise Java Beans Introduction –Application ServerApplication Server –Java 2 Enterprise EditionJava.
Distributed components
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Distributed Databases Logical next step in geographically dispersed organisations goal is to provide location transparency starting point = a set of decentralised.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Basic Services: Architecture Options Vance Maverick ADAPT Bologna Feb. 13, 2003.
12 Chapter 12 Client/Server Systems Hachim Haddouti.
The Architecture of Transaction Processing Systems
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 17 Client-Server Processing, Parallel Database Processing,
Chapter 9: The Client/Server Database Environment
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
Database System Architectures  Client-server Database System  Parallel Database System  Distributed Database System Wei Jiang.
February 11, 2003Ninth International Symposium on High Performance Computer Architecture Memory System Behavior of Java-Based Middleware Martin Karlsson,
Lecture The Client/Server Database Environment
Client-Server Processing and Distributed Databases
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Module 8: Monitoring SQL Server for Performance. Overview Why to Monitor SQL Server Performance Monitoring and Tuning Tools for Monitoring SQL Server.
Capacity Planning in SharePoint Capacity Planning Process of evaluating a technology … Deciding … Hardware … Variety of Ways Different Services.
Understanding and Managing WebSphere V5
The Client/Server Database Environment
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
1 Oracle 9i AS Availability and Scalability Margaret H. Mei Senior Product Manager, ST.
© 2011 MindTree Limited CONFIDENTIAL: For limited circulation only e-Commerce web app Architecture and Scalability Srinivas Bhagavatula.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
9 Chapter Nine Extracting and Transforming Data with SQL Server 2000.
Chapter 4: Core Web Technologies
PowerTier EJB in High-Performance Applications John Killoran European Technical Services Manager Persistence Software.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
A brief overview about Distributed Systems Group A4 Chris Sun Bryan Maden Min Fang.
© D. Wong  Indexes  JDBC  JDBC in J2EE (Java 2 Enterprise Edition)
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
GigaSpaces Global HTTP Session Sharing October 2013 Massive Web Application Scaling.
J2EE Structure & Definitions Catie Welsh CSE 432
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Usenix Annual Conference, Freenix track – June 2004 – 1 : Flexible Database Clustering Middleware Emmanuel Cecchet – INRIA Julie Marguerite.
“Load Testing Early and Often” By Donald Doane Presentation to the Rockville MDCFUG.
Srik Raghavan Principal Lead Program Manager Kevin Cox Principal Program Manager SESSION CODE: DAT206.
PARALLEL PROCESSOR- TAXONOMY. CH18 Parallel Processing {Multi-processor, Multi-computer} Multiple Processor Organizations Symmetric Multiprocessors Cache.
Building High Performance, Robust Server Applications with Internet Information Server 5.0 Van Van IIS - Program Manager Microsoft Corporation.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Aniruddha Deswandikar & Govind Kanshi Microsoft Technology Center, Bangalore SESSION CODE: ##### Building performant Web applications.
EJB Enterprise Java Beans JAVA Enterprise Edition
Chapter Five Distributed file systems. 2 Contents Distributed file system design Distributed file system implementation Trends in distributed file systems.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Last Class: Introduction
Improving searches through community clustering of information
The Client/Server Database Environment
Server Concepts Dr. Charles W. Kann.
The Client/Server Database Environment
Introduction to NewSQL
Chapter 9: The Client/Server Database Environment
Software Architecture in Practice
Moodle Scalability What is Scalability?
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Component-based Applications
CS510 - Portland State University
Understanding and Designing with EJB
Database System Architectures
Presentation transcript:

JavaOne '99 Confidential Performance and Scalability of EJB-based applications Sriram Srinivasan Principal Engineer, BEA/WebLogic

JavaOne '99 Confidential Scalability and performance Systems grow in many ways –Users, Data, Transaction Complexity Scaling a system: –Add hardware and change configuration parameters to maintain or increase throughput –No change to application code or database schema –System ensures that additional hardware is used well

JavaOne '99 Confidential What reduces scalability The same old reasons Contention for data Contention for processing units –CPUs, threads Contention for resources –Database connections –Memory, disk, I/O channels

JavaOne '99 Confidential Plus some new twists Speed of deployment –Rapid time to market –Rapid scaling after announcing URL Distributed objects and components –Ease of use and seductive transparency Technological heterogeneity –Web servers, middleware, databases Performance issues forgotten until it is too late

JavaOne '99 Confidential Responsibilities Everyone has certain responsibilities for increasing scalability –Bean designers End-to-end view required, not middleware or database-centric view. Know which improvements can be made after system is deployed. –Server vendors –EJB spec writers at SUN Similar to ACID transaction properties –the "C" comes from the application

JavaOne '99 Confidential Visualizing bottlenecks ClientApp serverDBDisk Every node and link is a potential bottleneck

JavaOne '99 Confidential Bottlenecks at nodes Appserver –Threads blocked on DB, on monitors –Unnecessary number of request-handling threads –Garbage collection Database server –Shared data –Unnecessarily strict isolation levels Profilers are useful but miss bigger patterns

JavaOne '99 Confidential Bottlenecks at links Client to app server –Business methods, remote garbage collection, keep-alive traffic Between app servers –Concurrency and caching protocols, distributed transactions, object location App server to database Between DB servers –distributed transactions and lock management DB server to disk

JavaOne '99 Confidential Overall recommendations Goal-directed design: Design UI first –Primary allegiance to user, so usability and performance must be primary goals –Application designer first, bean designer later Plan for performance analysis –At design-time, know where to put hooks and how to analyze the data Know thy application, know the hotspots

JavaOne '99 Confidential Know thy application E-commerce apps –Lots of clients, high read/update ratio, low contention, large working set Network management systems –Few operators, some hotspot network nodes Banks and ATMs –Lots of clients, low concurrency, high isolation level, no working set Determine working set, concurrency and update requirements from use cases

JavaOne '99 Confidential Myth: Stateless == scalable "Stateless == scalable" is meaningless –There's always state; only question is, where does it live? –Stateless middle-tier ensures that middle-tier is not the bottleneck –What do you do when DB becomes bottleneck? Statefulness is useful –Databases have caches, HTTP has cookies –In E-commerce apps, 90% activity is browsing –The lesser the dependence on cache coherence, the closer cache can be towards client.

JavaOne '99 Confidential Managing state Parameterized caches –Duration, amount, concurrency and replication Cache state separately for readers and writers, if possible Redesign if high amount of sharing –Queue requests from front-end –Do shared updates at end of transaction Entity beans only for shared data –Non-shared data become complex attributes

JavaOne '99 Confidential Reducing traffic between client and app server UI talks to one bean (usually session) Make coarse-grained interfaces –Transfer data in bulk –Avoid IDL attributes –Only data should cross this interface, not object references Avoid client-side transactions Use servlets instead of java applets

JavaOne '99 Confidential Optimizations at app server Traffic between app server processes –Avoid distributing transactions –Partition requests and feed them to corresponding processors Avoid long-running transactions Consider browsers separate from updaters Use JMS to enqueue requests

JavaOne '99 Confidential Reducing traffic between app and DB servers Reducing amount of data transferred –Judicious use of caching at app server –Denormalization Reduce number of individual requests –Bulk accesses –Stored procedures

JavaOne '99 Confidential Optimizing DB Data partitioning Putting database log on solid-state disks Custom SQL statements to give hints to optimizer Non-queryable attributes as blobs Using extended-relational database features

JavaOne '99 Confidential How can app servers help ? State management –Provide configurable policies –Activation and deactivation policies Deactivate after timeout, after method, after transaction, never deactivate. Activate on demand –Concurrency (Optimistic, pessimistic) –Caching (with different isolation levels)

JavaOne '99 Confidential Flexible caching strategies Depends on pattern of reads, updates and tolerance of cache incoherence Strategies: –Single location for a given primary key –Many instances (for one primary key) talking to each other servers –Many instances talking only to DB

JavaOne '99 Confidential How can app servers help? (contd.) Data partitioning –Factory-based routing –Data-dependent routing Connection management –Not have TCP connections from m clients to n servers Object and resource pooling Transparent failover and failback Monitoring hooks on requests, database drivers, caches

JavaOne '99 Confidential What the EJB specification needs Bulk CRUD Relationships –And efficient traversals of relationships Explicit deactivation policies