`

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

    数据库系统概念Database System Concept(英文第6版)文字版

    Database System Concepts——数据库系统概念第六版(英文版) 作者: Abraham Silberschatz (Yale University) Henry F. Korth (Lehigh University) S. Sudarshan (Indian Institute of Technology, Bombay) 本书...

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

    Data-Intensive Text Processing with MapReduce Jimmy Lin and Chris Dyer

    2.5 The Distributed File System 2.6 Hadoop Cluster Architecture 2.7 Summary 3 MapReduce Algorithm Design 3.1 Local Aggregation 3.1.1 Combiners and In-Mapper Combining 3.1.2 Algorithmic ...

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

    Microservices Patterns

    This invaluable set of design patterns builds on decades of distributed system experience, adding new patterns for writing services and composing them into systems that scale and perform reliably ...

    Beginning Python (2005).pdf

    A Distributed Network of Interlinked Documents 461 A Client-Server Architecture 461 Servers Are Stateless 461 Resources 461 Representations 462 REST Operations 462 HTTP: Real-World REST 463 Try...

    Large-Scale Software Architecture.pdf

    3.4.7 Distributed technical meetings 58 3.5 Traps and Pitfalls of the Software Architecture Process Activities 59 The out-of-touch architect 59 Analysis paralysis 60 Design for reuse 60 Use cases 60 ...

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

    JAVA白皮书(英文版)

    1.2Design Goals of Java 1.2.1Simple, Object Oriented, and Familiar 1.2.2Robust and Secure 1.2.3Architecture Neutral and Portable 1.2.4High Performance 1.2.5Interpreted, Threaded, and Dynamic...

    VB.NET Developer's Guide(4574).pdf

    Distributed Applications 513 Exercise 10.10 Consuming Web Services from Windows Forms 514 Exercise 10.11 Developing a Sample Application 516 Summary 519 Solutions Fast Track 519 Frequently Asked ...

    Data-Intensive Text Processing with MapReduce

    2.5 The Distributed File System . . . . . . . . . . . . . . . . . . . . 32 2.6 Hadoop Cluster Architecture . . . . . . . . . . . . . . . . . . . 36 2.7 Summary . . . . . . . . . . . . . . . . . . . . ...

    A pracitcal introduction to hardware software codesign

    1.5 The Dualism of Hardware Design and Software Design .. . . . . . . . . . . . 20 1.6 More on Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

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

    Springer Press- High performance Packet Switching Architectures(2007)

    3.6 Summary .................................................................................................78 4 Geometry of Packet Switching: Maximal Throughput Cone Scheduling Algorithms .............

    Service Support-英文原版

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

Global site tag (gtag.js) - Google Analytics