© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Arib...
What is scalability?

© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprieta...
Some standard definitions
The ability of a system, network, or process to
handle a growing amount of work in a
capable ma...
Consider a simple web application

© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential ...
Load v/s Performance of a nonscalable system

© 2010 Ariba, Inc. All rights reserved. The contents of this document are co...
Scalability Bottlenecks
Memory
 Out of memory

 Disk thrashing
 Fragmentation

CPU
 Overload
 Context switches
 I/...
Load v/s performance of a scalable
system (Ideal)

© 2010 Ariba, Inc. All rights reserved. The contents of this document a...
© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Arib...
Improve application performance…

© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential a...
Improve application performance
Identify and fix performance bottlenecks
Algorithms
 DB queries
 Thread Deadlocks
 I/...
Loose coupling paradigms - SOA

Loosely coupled interactions
One-to-one communications
Consumer-based trigger
Synchron...
Loose coupling paradigms - EDA

Decoupled interactions
Many-to-many communications
Event-based trigger
Asynchronous
© ...
Distribute work, data
Motivations:
Can scale independently

Failures are isolated

Segment Functionality
application ...
Asynchronous communication
Motivations
Can scale components independently
 Can decouple availability
 Can spread peak ...
Point to point
messaging

Publish-Subscribe
messaging

© 2010 Ariba, Inc. All rights reserved. The contents of this docume...
Aggressive Caching
Motivations:
Save processing cycles
 Save on network round-trip delays

Content caching on CDNs

C...
Cache Everywhere
Distributed In
memory Cache

Proxy

App Server

Web Browser
LRU Cache
Browser Cache

Page Cache
Query Cac...
Avoid or distribute state
Motivations:
Save memory and processing cycles
 Reduce machine affinity

Strive for stateles...
Database
Simplify entity relationships to aid split

Use the right kind of Database lock
Avoid distributed transactions...
© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Arib...
How do we scale…

Individual community

© 2010 Ariba, Inc. All rights reserved. The contents of this document are confiden...
Scaling storage: Multi SID
Goal: To be able to scale out DB storage as required

Application

Realm-Schema map

Persistenc...
Clustering v/s Sharding
Clustering
 Oracle RAC, Hbase
 Automatically scale datastore
 Rebalances to distribute capacit...
Scaling search: Arches
Goal: To be able to scale up search/publish activities linearly

© 2010 Ariba, Inc. All rights rese...
Arches goals…
 Elastic architecture with ability to add capacity on the fly
 Sub-second search performance
 Improving i...
Lightweight Metadata: Overcoming
memory bottleneck
Problem:
All realms, even realms with no customization and
no activit...
Light weight metadata solution
Shape of a Class is now shared across
Variants
Sub Types computed dynamically

© 2010 Ari...
Dynamic capacity realms project
Goal: Remove downtimes for scaling our products.

Dynamic scalability

Tolerate change t...
ADE (Ariba data enrichment) scalability
Instance 1

Weblogic
Managed
Server

ADE
Client

Weblogic
Administrative
Server

L...
© 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Arib...
Upcoming SlideShare
Loading in …5
×

Scaling web systems ts

466 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
466
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Scaling web systems ts

  1. 1. © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  2. 2. What is scalability? © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  3. 3. Some standard definitions The ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth. (Wikipedia) The ability to handle increased workload by repeatedly applying a cost effective strategy for extending a system’s capacity (SEI) © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  4. 4. Consider a simple web application © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  5. 5. Load v/s Performance of a nonscalable system © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  6. 6. Scalability Bottlenecks Memory  Out of memory  Disk thrashing  Fragmentation CPU  Overload  Context switches  I/O waits Others  Disk  Network © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  7. 7. Load v/s performance of a scalable system (Ideal) © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  8. 8. © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  9. 9. Improve application performance… © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  10. 10. Improve application performance Identify and fix performance bottlenecks Algorithms  DB queries  Thread Deadlocks  I/O Why is it important When you use less resources per task (processor time, memory, N/W round trips etc)… …You can handle a lot more load © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  11. 11. Loose coupling paradigms - SOA Loosely coupled interactions One-to-one communications Consumer-based trigger Synchronous © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  12. 12. Loose coupling paradigms - EDA Decoupled interactions Many-to-many communications Event-based trigger Asynchronous © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  13. 13. Distribute work, data Motivations: Can scale independently Failures are isolated Segment Functionality application pools Segment Data Based on functional areas Horizontal split © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  14. 14. Asynchronous communication Motivations Can scale components independently  Can decouple availability  Can spread peak load over time Integrate different services asynchronously  Point to point / publish subscribe  Staged event driven architecture (SEDA) © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  15. 15. Point to point messaging Publish-Subscribe messaging © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  16. 16. Aggressive Caching Motivations: Save processing cycles  Save on network round-trip delays Content caching on CDNs Caching on clients (browsers/mobile devices) Caching at application layer Distributed caching © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  17. 17. Cache Everywhere Distributed In memory Cache Proxy App Server Web Browser LRU Cache Browser Cache Page Cache Query Cache CDN Resource Cache © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc. Database Result Cache
  18. 18. Avoid or distribute state Motivations: Save memory and processing cycles  Reduce machine affinity Strive for statelessness Maintain session data in browsers if possible Store session state in distributed cache © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  19. 19. Database Simplify entity relationships to aid split Use the right kind of Database lock Avoid distributed transactions Don’t select everything, read only as much data as you can use Consider NoSQL storage © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  20. 20. © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  21. 21. How do we scale… Individual community © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  22. 22. Scaling storage: Multi SID Goal: To be able to scale out DB storage as required Application Realm-Schema map Persistence Layer DB Instance #1 Schema 1 Schema 2 Schema 20 DB Instance #2 Schema 1 Schema 2 Schema 20 © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  23. 23. Clustering v/s Sharding Clustering  Oracle RAC, Hbase  Automatically scale datastore  Rebalances to distribute capacity  Nodes communicate with each other  Very complicated  Cluster manager failure! Sharding  Data distributed manually  Split database to add capacity  Data does not move  Nodes are unaware of each other  Custom algorithm based on functional / key distribution © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  24. 24. Scaling search: Arches Goal: To be able to scale up search/publish activities linearly © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  25. 25. Arches goals…  Elastic architecture with ability to add capacity on the fly  Sub-second search performance  Improving indexing performance with customer isolation  Eventually be used to build the global search service all across Ariba Arches interfaces…  Pub API: Publish endpoint exposed over one way messaging  Search API: REST based search endpoint  Pull API: REST based data pull endpoint to be implemented by applications  Manage API: REST based management endpoint © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  26. 26. Lightweight Metadata: Overcoming memory bottleneck Problem: All realms, even realms with no customization and no activity consume lots of system resources  Realms with no customization have the same foot print as realms with lots of customization Important for mid-market offering Goals © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  27. 27. Light weight metadata solution Shape of a Class is now shared across Variants Sub Types computed dynamically © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  28. 28. Dynamic capacity realms project Goal: Remove downtimes for scaling our products. Dynamic scalability Tolerate change to cluster topology Central connection manager Goal: Improve database connection usage. Central connection manager to distribute database connections based on usage Local pools & Global pool © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.
  29. 29. ADE (Ariba data enrichment) scalability Instance 1 Weblogic Managed Server ADE Client Weblogic Administrative Server Load balancing (EJBs & RMI) Weight based sticky session JMS Product Product Engines Engines Instance 2 Weblogic Managed Server JDBC Clustering JMS Product Product Engines Engines Instance 3 Weblogic Managed Server JMS Product Product Engines Engines ADE DB © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc. SDB (Ops)
  30. 30. © 2010 Ariba, Inc. All rights reserved. The contents of this document are confidential and proprietary information of Ariba, Inc.

×