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.
High Scalability – 8 Commonly Used Scalable System Design Patterns
Postado por joaogaldino em 13/12/2010
https://cmgbrasil.com/2010/12/13/high-scalability-8-commonly-used-scalable-sys-2/
Deixe um comentário