8 Commonly Used Scalable System Design Patterns
2010-12-03 12:33
351 查看
http://highscalability.com/blog/2010/12/1/8-commonly-used-scalable-system-design-patterns.html
Ricky Ho
in Scalable System Design Patterns
has created a great list of scalability patterns along with very well done explanatory graphics. A summary of the patterns are:
Load Balancer
- a dispatcher determines which worker instance will handle a request based on different policies.
Scatter and Gather
- a dispatcher multicasts
requests to all workers in a pool. Each worker will compute a local
result and send it back to the dispatcher, who will consolidate them
into a single response and then send back to the client.
Result Cache
- a dispatcher will first lookup if
the request has been made before and try to find the previous result to
return, in order to save the actual execution.
Shared Space
- all workers monitors information
from the shared space and contributes partial knowledge back to the
blackboard. The information is continuously enriched until a solution is
reached.
Pipe and Filter
- all workers connected by pipes across which data flows.
MapReduce
- targets batch jobs where disk I/O is
the major bottleneck. It use a distributed file system so that disk I/O
can be done in parallel.
Bulk Synchronous Parallel
- a lock-step execution across all workers, coordinated by a master.
Execution Orchestrator
- an intelligent scheduler /
orchestrator schedules ready-to-run tasks (based on a dependency graph)
across a clusters of dumb workers.
Ricky Ho
in Scalable System Design Patterns
has created a great list of scalability patterns along with very well done explanatory graphics. A summary of the patterns are:
Load Balancer
- a dispatcher determines which worker instance will handle a request based on different policies.
Scatter and Gather
- a dispatcher multicasts
requests to all workers in a pool. Each worker will compute a local
result and send it back to the dispatcher, who will consolidate them
into a single response and then send back to the client.
Result Cache
- a dispatcher will first lookup if
the request has been made before and try to find the previous result to
return, in order to save the actual execution.
Shared Space
- all workers monitors information
from the shared space and contributes partial knowledge back to the
blackboard. The information is continuously enriched until a solution is
reached.
Pipe and Filter
- all workers connected by pipes across which data flows.
MapReduce
- targets batch jobs where disk I/O is
the major bottleneck. It use a distributed file system so that disk I/O
can be done in parallel.
Bulk Synchronous Parallel
- a lock-step execution across all workers, coordinated by a master.
Execution Orchestrator
- an intelligent scheduler /
orchestrator schedules ready-to-run tasks (based on a dependency graph)
across a clusters of dumb workers.
相关文章推荐
- Scalable System Design Patterns
- 分享:Scalable System Design Patterns
- Ten most commonly used design patterns
- Scalable System Design Patterns[转]
- Scalable System Design Patterns
- The Design Patterns Used in PetStore 1. Facade
- Patterns in network system design 之一
- The Design Patterns Used in PetStore 2. Command
- list of most-frequently-used design patterns
- Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems
- The Design of Unix Operating System (5) the internal presentation of file
- Applying Domain-Driven Design and Patterns(ADDDP) With examples in C# and .NET
- Data Structures and Algorithms with Object-Oriented Design Patterns (5)
- Linux终端常用指令-Linux terminal commonly used commands
- System.IO.IOException:The process cannot access the file 'XX.xml' because it is being used by another process. 解决方案
- uva 11400 Lighting System Design
- Composite(Chapter 13 of Pro Objective-C Design Patterns for iOS)
- Decorator(Chapter 16 of Pro Objective-C Design Patterns for iOS)
- Head First Design Patterns - Factory Method Pattern
- Template Method(Chapter 18 of Pro Objective-C Design Patterns for iOS)