Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Design Patterns (or techniques) for Scalability

Tags:

What design patterns or techniques have you used that are specifically geared toward scalability?

Patterns such as the Flyweight pattern seem to me to be a specialized version of the Factory Pattern, to promote high scalability or when working within memory or storage constraints.

What others have you used? (Denormalization of Databases, etc.) Do you find that the rules change when high availability or scalability is your primary goal?

Possible situations are:

  • Mobile devices with more limited memory, processing power, and connectivity than a Desktop or Laptop
  • High # of users on limited hardware (caching strategies, etc)
  • Optimization of database schema for efficiency in lieu of a normalized design (e.g. SharePoint column wrapping for storage)
like image 778
Chris Ballance Avatar asked Sep 17 '09 15:09

Chris Ballance


People also ask

What are the two 2 ways to achieve scalability?

We have two basic ways to achieve scalability, namely increasing system capacity, typically through replication, and performance optimization of system components.

What is scalability system design?

A scalable system is one that can handle rapid changes to workloads and user demands. Scalability is the measure of how well that system responds to changes by adding or removing resources to meet demands.

What are scalable design principles?

Principles of Scalability Simply put, scalability is the ability of a system to handle sudden changes in workload without negatively impacting performance. It's usually broken down into three areas. Availability: The system should be available for use as much as possible (ideally, always).


1 Answers

A few patterns that come in mind:

  • Stateless application
  • Loose coupling
  • Asynchrony
  • Lazy loading
  • Caching
  • Parallelism
  • Partitioning
  • Routing

Some resources:

  • Scalability Best Practices: Lessons from eBay
  • Availability & Consistency presentation of Amazon's CTO Dr. Werner Vogels
  • Microsoft PDC'08 Presentations
  • Best Practices In Building Scalable Cloud Ready Service Based
like image 179
Pascal Thivent Avatar answered Nov 09 '22 00:11

Pascal Thivent