`

Summary: Distributed System Design

 
阅读更多

Requirements

First of first, you need to be clear about the requirements of the system. This is the basis of the system design and also determines how you could optimize the design (e.g. which can be compromised and which are not).
 
You can start to ask questions like:
Is it computation-consumed or I/O-consumed?
Is it a data storage system or a request-response system?
What are the typical use cases or workflows? Any special use cases we need to take care of?
What are its typical input and output?
What are its major components?
...
 
Draw diagrams for typical use cases or workflows and reduce to UML diagrams of the major components and interactions between them.
 
Add/Remove/Modify components functionalities to optimize the overall workflow. Keep in mind the following principles during design and optimization.

Principles

  • Scalability: Size!
    • Easy to scale up/down
    • Traffic/load that can be handled
  • Reliability: Data consistency
    • (Realtime?) data consistency
    • Persistence
  • Performance: Speed of a website
    • Fast response
    • Low latency
  • Availability: Uptime of a website
    • Redundancy for key components
    • Failure detection and recovery
  • Manageability: Operational load
    • Easy to update
    • Simple to operate
  • Cost
    • Hardware/Software
    • Develop time
    • Operational effort

Techniques

  • Caches can cache popular responses from server so as to reduce the number of calls (Local/Distributed Cache such as memcached)
  • Proxies can be used to aggregate client requests to server so as to avoid unnecessary reconnections
  • Hashing and Revert indexes provides constant time to retrieve data
  • Load Balancers can reduce the chances of servers are under load (some are hot while others are idle)
  • Queues and Asynchrony calls so that clients don't need to spin there waiting for response
-----
Reference: 

 

分享到:
评论

相关推荐

    operating system concept

    1.2 Computer-System Organization 6 1.10 Distributed Systems 28 1.3 Computer-System Architecture 12 1.11 Special-Purpose Systems 29 1.4 Operating-System Structure 15 1.12 Computing Environments 31 1.5 ...

    The Java Module System.epub

    This shift in design is so fundamental that starting with Java 9, all core Java APIs are distributed as modules, and libraries, frameworks, and applications will benefit from doing the same. ...

    Modern Operating Systems,Tanenbaum,3rd

    3. **Large Programming Projects**: Offers insights into managing large-scale projects, including design considerations, testing strategies, and debugging techniques. 4. **The Model of Run Time**: ...

    Inside Microsoft SQL Server 2000

    Distributed Data Processing . Data Replication . Systems Management . SQL Server Utilities and Extensions . Client Development Interfaces . Summary Part II Architectural Overview 3. SQL Server ...

    Handbook of Big Data Technologies

    3 System Support for Distributed Data Streaming 4 Case Study: Stream Processing with Apache Flink 5 Applications, Trends and Open Challenges 6 Conclusions and Outlook Part II Semantic Big Data ...

    a project model for the FreeBSD Project.7z

    An example of a process is software design. 2.3. Hat A “hat” is synonymous with role. A hat has certain responsibilities in a process and for the process outcome. The hat executes activities. It ...

    计算机网络英文课件:Chapter2 Application Layer.ppt

    In summary, the Application Layer is a crucial component in computer networking, as it encompasses the design and implementation of network applications, including web browsing, file transfer, email, ...

    Orchard CMS Up and Running

    Orchard CMS is an open-source content management system (CMS) built on the .NET framework. It leverages ASP.NET MVC 3.0 with the Razor view engine, providing a robust platform for developers and ...

    Handbook of Fiber Optic Data Communication---part3

    562 References <br>xi Contents Chapter 15 Local Area Networks, Fiber Distributed Data 564 Interface, Ethernet, and Token Ring Rakesh Thapar 564 15.1....

    Handbook of Fiber Optic Data Communication---part2

    562 References <br>xi Contents Chapter 15 Local Area Networks, Fiber Distributed Data 564 Interface, Ethernet, and Token Ring Rakesh Thapar 564 15.1....

    Python Cookbook, 2nd Edition

    The Design of the Book The Implementation of the Book Using the Code from This Book Audience Organization Further Reading Conventions Used in This Book How to Contact Us Safari® ...

    Service Support-英文原版

    Preface.........................................................................................................................................- 1 - 1 Introduction.......................................

Global site tag (gtag.js) - Google Analytics