add weigh params
parent
f9580a0770
commit
564ad07f14
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 10
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Performance vs scalability
|
# Performance vs scalability
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 20
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Latency vs throughput
|
# Latency vs throughput
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 30
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Availability vs consistency
|
# Availability vs consistency
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 40
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Consistency patterns
|
# Consistency patterns
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
weight = 120
|
weight = 50:weight
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Availability patterns
|
# Availability patterns
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 60
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Domain name system
|
# Domain name system
|
||||||
|
@ -8,6 +9,7 @@ isdraft = False
|
||||||
## Introduction Domain Name System
|
## Introduction Domain Name System
|
||||||
|
|
||||||
![](https://camo.githubusercontent.com/fae27d1291ed38dd120595d692eacd2505cd3a9c/687474703a2f2f692e696d6775722e636f6d2f494f794c6a34692e6a7067)
|
![](https://camo.githubusercontent.com/fae27d1291ed38dd120595d692eacd2505cd3a9c/687474703a2f2f692e696d6775722e636f6d2f494f794c6a34692e6a7067)
|
||||||
|
|
||||||
[Source: DNS security presentation](http://www.slideshare.net/srikrupa5/dns-security-presentation-issa)
|
[Source: DNS security presentation](http://www.slideshare.net/srikrupa5/dns-security-presentation-issa)
|
||||||
|
|
||||||
A Domain Name System (DNS) translates a domain name such as [www.example.com](http://www.example.com/) to an IP address.
|
A Domain Name System (DNS) translates a domain name such as [www.example.com](http://www.example.com/) to an IP address.
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 70
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 80
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Load balancer
|
# Load balancer
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 90
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Reverse proxy (web server)
|
# Reverse proxy (web server)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 100
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Application layer
|
# Application layer
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 110:weight
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 111
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Federation
|
# Federation
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 112
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Denormalization
|
# Denormalization
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 113
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Sharding
|
# Sharding
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 114
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# SQL tuning
|
# SQL tuning
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 120
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# NoSQL
|
# NoSQL
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 121
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Key-value store
|
# Key-value store
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 122
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Document store
|
# Document store
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 123
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Wide column store
|
# Wide column store
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 124
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Graph database
|
# Graph database
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 130
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# SQL or NoSQL
|
# SQL or NoSQL
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 140
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 141
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 142
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Database caching, what to cache
|
# Database caching, what to cache
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 143
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Cache-aside
|
# Cache-aside
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 144
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Write-through
|
# Write-through
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 145
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Write-behind (write-back)
|
# Write-behind (write-back)
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
+++
|
||||||
|
noatcards = True
|
||||||
|
isdraft = False
|
||||||
|
weight = 146
|
||||||
|
+++
|
||||||
|
|
||||||
# Refresh-ahead
|
# Refresh-ahead
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
weight = 100
|
weight = 150
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Asynchronism
|
# Asynchronism
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 161
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Hypertext transfer protocol (HTTP)
|
# Hypertext transfer protocol (HTTP)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 162
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Transmission control protocol (TCP)
|
# Transmission control protocol (TCP)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
+++
|
+++
|
||||||
noatcards = True
|
noatcards = True
|
||||||
isdraft = False
|
isdraft = False
|
||||||
|
weight = 163
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# User datagram protocol (UDP)
|
# User datagram protocol (UDP)
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
+++
|
||||||
|
noatcards = True
|
||||||
|
isdraft = False
|
||||||
|
weight = 164
|
||||||
|
+++
|
||||||
# Remote procedure call (RPC)
|
# Remote procedure call (RPC)
|
||||||
|
|
||||||
## Remote procedure call introduction
|
## Remote procedure call introduction
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
+++ noatcards = True isdraft = False +++
|
+++
|
||||||
|
noatcards = True
|
||||||
|
isdraft = False
|
||||||
|
weight = 165
|
||||||
|
+++
|
||||||
|
|
||||||
# Representational state transfer (REST)
|
# Representational state transfer (REST)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
+++
|
||||||
|
noatcards = True
|
||||||
|
isdraft = False
|
||||||
|
weight = 170
|
||||||
|
+++
|
||||||
Security
|
Security
|
||||||
--------
|
--------
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
+++
|
||||||
|
noatcards = True
|
||||||
|
isdraft = False
|
||||||
|
weight = 180
|
||||||
|
+++
|
||||||
|
|
||||||
# Appendix
|
# Appendix
|
||||||
|
|
||||||
## Powers of two table
|
## Powers of two table
|
||||||
|
@ -21,7 +27,8 @@ Power Exact Value Approx Value Bytes
|
||||||
|
|
||||||
|
|
||||||
## Latency numbers every programmer should know
|
## Latency numbers every programmer should know
|
||||||
---
|
|
||||||
|
```
|
||||||
Latency Comparison Numbers
|
Latency Comparison Numbers
|
||||||
--------------------------
|
--------------------------
|
||||||
L1 cache reference 0.5 ns
|
L1 cache reference 0.5 ns
|
||||||
|
@ -45,7 +52,7 @@ Power Exact Value Approx Value Bytes
|
||||||
1 ns = 10^-9 seconds
|
1 ns = 10^-9 seconds
|
||||||
1 us = 10^-6 seconds = 1,000 ns
|
1 us = 10^-6 seconds = 1,000 ns
|
||||||
1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
|
1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
|
||||||
|
```
|
||||||
|
|
||||||
Handy metrics based on numbers above:
|
Handy metrics based on numbers above:
|
||||||
|
|
||||||
|
@ -56,18 +63,17 @@ Handy metrics based on numbers above:
|
||||||
- 6-7 world-wide round trips per second
|
- 6-7 world-wide round trips per second
|
||||||
- 2,000 round trips per second within a data center
|
- 2,000 round trips per second within a data center
|
||||||
|
|
||||||
#### [](https://github.com/donnemartin/system-design-primer#latency-numbers-visualized) Latency numbers visualized
|
### Latency numbers visualized
|
||||||
|
|
||||||
[![](https://camo.githubusercontent.com/77f72259e1eb58596b564d1ad823af1853bc60a3/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67) ](https://camo.githubusercontent.com/77f72259e1eb58596b564d1ad823af1853bc60a3/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67)
|
![](https://camo.githubusercontent.com/77f72259e1eb58596b564d1ad823af1853bc60a3/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67)
|
||||||
|
|
||||||
#### [](https://github.com/donnemartin/system-design-primer#sources-and-further-reading-14) Source(s) and further reading
|
## Latency numbers: Source(s) and further reading for
|
||||||
|
|
||||||
- [Latency numbers every programmer should know - 1](https://gist.github.com/jboner/2841832)
|
- [Latency numbers every programmer should know - 1](https://gist.github.com/jboner/2841832)
|
||||||
- [Latency numbers every programmer should know - 2](https://gist.github.com/hellerbarde/2843375)
|
- [Latency numbers every programmer should know - 2](https://gist.github.com/hellerbarde/2843375)
|
||||||
- [Designs, lessons, and advice from building large distributed systems](http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf)
|
- [Designs, lessons, and advice from building large distributed systems](http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf)
|
||||||
- [Software Engineering Advice from Building Large-Scale Distributed Systems](https://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf)
|
- [Software Engineering Advice from Building Large-Scale Distributed Systems](https://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf)
|
||||||
|
|
||||||
|
|
||||||
## Introduction of base 62
|
## Introduction of base 62
|
||||||
- Encodes to `[a-zA-Z0-9]` which works well for urls, eliminating the need for escaping special characters
|
- Encodes to `[a-zA-Z0-9]` which works well for urls, eliminating the need for escaping special characters
|
||||||
- Only one hash result for the original input and and the operation is deterministic (no randomness involved)
|
- Only one hash result for the original input and and the operation is deterministic (no randomness involved)
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
+++
|
|
||||||
noatcards = True
|
|
||||||
isdraft = False
|
|
||||||
+++
|
|
||||||
|
|
Loading…
Reference in New Issue