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:
相关推荐
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 ...
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. ...
The content summary of the paper involves a novel deep reinforcement learning-enhanced approach to improve droop control in microgrid inverters addressing uneven reactive power distribution and ...
**Pattern Summary**: This pattern is used when an external system needs to initiate a process in Salesforce and receive a response. It is useful for scenarios where real-time interaction is required. ...
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**: ...
Distributed Data Processing . Data Replication . Systems Management . SQL Server Utilities and Extensions . Client Development Interfaces . Summary Part II Architectural Overview 3. SQL Server ...
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 ...
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 ...
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 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 ...
562 References <br>xi Contents Chapter 15 Local Area Networks, Fiber Distributed Data 564 Interface, Ethernet, and Token Ring Rakesh Thapar 564 15.1....
562 References <br>xi Contents Chapter 15 Local Area Networks, Fiber Distributed Data 564 Interface, Ethernet, and Token Ring Rakesh Thapar 564 15.1....
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® ...
Preface.........................................................................................................................................- 1 - 1 Introduction.......................................