System Design Interview – An insider's guide
Rate it:
Open Preview
by Alex Xu
Read between January 21 - January 29, 2021
4%
Flag icon
Consider using cache when data is read frequently but modified infrequently.
6%
Flag icon
Each web server in the cluster can access state data from databases. This is called stateless web tier.
7%
Flag icon
To further scale our system, we need to decouple different components of the system so they can be scaled independently. Messaging queue is a key strategy employed by many real-world distributed systems to solve this problem.
7%
Flag icon
A message queue is a durable component, stored in memory, that supports asynchronous communication. It serves as a buffer and distributes asynchronous requests.
8%
Flag icon
When choosing a sharding key, one of the most important criteria is to choose a key that can evenly distributed data.
9%
Flag icon
•Keep web tier stateless •Build redundancy at every tier •Cache data as much as you can •Support multiple data centers •Host static assets in CDN •Scale your data tier by sharding •Split tiers into individual services •Monitor your system and use automation tools
10%
Flag icon
According to Jeff Dean, Google Senior Fellow, “back-of-the-envelope calculations are estimates you create using a combination of thought experiments and common performance numbers to get a good feel for which designs will meet your requirements”
13%
Flag icon
The ability to ask good questions is also an essential skill, and many interviewers specifically look for this skill.
25%
Flag icon
The Open Systems Interconnection model (OSI model) has 7 layers [16]:  Layer 1: Physical layer, Layer 2: Data link layer, Layer 3: Network layer, Layer 4: Transport layer, Layer 5: Session layer, Layer 6: Presentation layer, Layer 7: Application layer.
34%
Flag icon
Versioning and vector clocks are used to solve inconsistency problems.
34%
Flag icon
A vector clock is a [server, version] pair associated with a data item. It can be used to check if one version precedes, succeeds, or in conflict with others.
40%
Flag icon
“after generating 1 billion UUIDs every second for approximately 100 years would the probability of creating a single duplicate reach 50%”
50%
Flag icon
BFS is commonly used by web crawlers and is implemented by a first-in-first-out (FIFO) queue.