Upload
artur-ejsmont
View
91
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Presentation about core scalability techniques relevant to web applications. Vertical scalability, Horizontal Scalability, Scalability Cube, scaling by adding clones, functional partitioning, data partitioning, examples and challenges.
Citation preview
Core Scalability TechniquesArtur Ejsmont
What is scalability?
● Ability to adjusting capacity - UP and DOWN● Doing it in cost-effective way
Types of scalability
Three underlying techniques
1. Adding Clones2. Functional Partitioning3. Data Partitioning
1. Adding Clones
How it works:● All nodes are interchangeable
Benefits:● You can scale by adding/removing nodes● Losing a node reduces capacity (no downtime)
Example 1
How it works:● Isolate and split functionality● Monolithic V.S SOA
Benefits:● Each partition becomes a “product”
2. Functional Partitioning
Example 2
How it works:● Nodes are responsible for subsets of data● Ideally they share nothing
Benefits:● Supports endless data growth
3. Data Partitioning
Example 3
Adding Clones:● Either STATELESS on requires SYNCHRONIZATION
Functional partitioning: ● Difficult to add later on● Limited number of partitions
Data Partitioning:● You always need the “Sharding Key”● Difficult to work across shards
Challenges
Questions?