Core Scalability Techniques - Yahoo7

Preview:

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?

Recommended