facebook

Dec 2, 2022

systemDesign

hilokal-notebook-image
hilokal-notebook-image

Which database to use?

Which database to use? advantages of non-relational database • Your application requires super-low latency. • Your data are unstructured, or you do not have any relational data. • You only need to serialize and deserialize data (JSON, XML, YAML, etc.). • You need to store a massive amount of data.

Vertical scaling and horizontal scaling

Vertical scaling, referred to as “scale up”, means the process of adding more power (CPU, RAM, etc.) to your servers. Horizontal scaling, referred to as “scale-out”, allows you to scale by adding more servers into your pool of resources.

Load Balancer

What is a load balancer? How does it works?
hilokal-notebook-image
hilokal-notebook-image

data replication

What is the definition? master/slave mode. What are the advantages? - Better Performance - Reliability - High Availability
hilokal-notebook-image

Cache

What is Cache? What are the advantages of using cache? What are the considerations for using cache? 1. when to use 2. expiration policy 3. consistency 4. mitigating failures 5. eviction policy
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image

CDN

considerations of using a CDN 1. cost 2. setting appropriate cache expiry 3. CDN fallback 4. invalidating files
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image
hilokal-notebook-image

challenges when implement multi-data center setup

1. Traffic redirection 2. Data synchronization 3. Test and Deployment

SESSION TWO

message queue 1. What is a message queue? 2. What problem does it solve?
hilokal-notebook-image

SESSION 3 Sharding Technique

Sharding separates large databases into smaller, more easily managed parts called shards. Each shard shares the same schema, though the actual data on each shard is unique to the shard.
hilokal-notebook-image
hilokal-notebook-image

Sharding introduces complexities and several challenges

1. Resharding data 2. Celebrity problem 3. Join and de-normalization

basic knowledges

A software system is called "monolithic" if it has a monolithic architecture, in which functionally distinguishable aspects (for example data input and output, data processing, error handling, and the user interface) are all interwoven, rather than containing architecturally separate components. The disadvantages of a monolith include: Slower development speed – A large, monolithic application makes development more complex and slower. Scalability – You can't scale individual components. Reliability – If there's an error in any module, it could affect the entire application's availability. Software deployment is all of the activities that make a software system available for use. The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur on the producer side or on the consumer side or both A single point of failure (SPOF) is essentially a flaw in the design, configuration, or implementation of a system, circuit, or component that poses a potential risk because it could lead to a situation in which just one malfunction or fault causes the whole system to stop working.

By undefined

31 notes ・ 94 views

  • English

  • Beginner