CSC409 Scalable Computing

Website
syllabus
Introduction

Basic Tasks

Distributed Systems

Example
Google
Facebook
Yahoo
URL Shortener: https://bitly.com/
Distributed Systems
See Distributed systems for fun and profit which supplied the outline for this part of this lecture.
Goals of Distributed Systems

Scalability

is 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.

Performance

is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.

Availability

the proportion of time a system is in a functioning condition. If a user cannot access the system, it is said to be unavailable.
Example
Availability %          How much downtime is allowed per year?
--------------------------------------------------------------
90% ("one nine")        More than a month
99% ("two nines")       Less than 4 days
99.9% ("three nines")   Less than 9 hours
99.99% ("four nines")   Less than an hour
99.999% ("five nines")  ~ 5 minutes
99.9999% ("six nines")  ~ 31 seconds

Fault tolerance

ability of a system to behave in a well-defined manner once faults occur
Improving Performance
Performance Improvement Words of Wisdom

Simple platform optimization (no dev $ required!!):

Algorithm optimization: O(large) -> O(small)

Datastructure optimization

Programming language optimization

Performance Tuning: C/Java

Example
perf.c
Perf.java
References

Multithreadding:

Speeding up Disk I/O

Monitoring Overall System Performance

DB/Persistant Store Optimization:

Time/Space tradeoffs:

Distributed Systems

Add more...

Diminishing Returns
Expensive Hardware Doesn't Pay

Replication vs Partitioning

Replication and Partitioning

Example: Cassandra

Architecture
READ CONSISTENCY LEVELS
ALL Returns the most recent data from all replicas.
QUORUM Returns the most recent data from the majority of replicas.
TWO Returns data from two near replicas.
ONE Returns data from the nearest replica.
WRITE CONSISTENCY LEVELS
WRITE CONSISTENCY LEVELS
ALL Confirmed write on all replicas.
QUORUM Confirmed write on majority of replicas.
TWO Confirmed write on two replicas.
ONE Confirmed write on one replica.
See also A Primer on Database Replication