Core Scalability Techniques Artur Ejsmont
Dec 07, 2014
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?