diff --git a/resources/noat.cards/01 Performance vs scalability.md b/resources/noat.cards/01 Performance vs scalability.md index 679ce55c..5e0f2e98 100644 --- a/resources/noat.cards/01 Performance vs scalability.md +++ b/resources/noat.cards/01 Performance vs scalability.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 10 +++ # Performance vs scalability diff --git a/resources/noat.cards/02 Latency vs throughput.md b/resources/noat.cards/02 Latency vs throughput.md index 4fd01633..60dcfdae 100644 --- a/resources/noat.cards/02 Latency vs throughput.md +++ b/resources/noat.cards/02 Latency vs throughput.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 20 +++ # Latency vs throughput diff --git a/resources/noat.cards/03 Availability vs consistency.md b/resources/noat.cards/03 Availability vs consistency.md index abbe8651..de2298a9 100644 --- a/resources/noat.cards/03 Availability vs consistency.md +++ b/resources/noat.cards/03 Availability vs consistency.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 30 +++ # Availability vs consistency diff --git a/resources/noat.cards/04 Consistency patterns.md b/resources/noat.cards/04 Consistency patterns.md index 6a4bd22f..5d11024c 100644 --- a/resources/noat.cards/04 Consistency patterns.md +++ b/resources/noat.cards/04 Consistency patterns.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 40 +++ # Consistency patterns diff --git a/resources/noat.cards/05 Availability patterns.md b/resources/noat.cards/05 Availability patterns.md index 6c8b0938..08c713b0 100644 --- a/resources/noat.cards/05 Availability patterns.md +++ b/resources/noat.cards/05 Availability patterns.md @@ -1,7 +1,7 @@ +++ noatcards = True isdraft = False -weight = 120 +weight = 50:weight +++ # Availability patterns diff --git a/resources/noat.cards/06 Domain name system.md b/resources/noat.cards/06 Domain name system.md index 9c80e041..10d65c0c 100644 --- a/resources/noat.cards/06 Domain name system.md +++ b/resources/noat.cards/06 Domain name system.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 60 +++ # Domain name system @@ -8,6 +9,7 @@ isdraft = False ## Introduction Domain Name System ![](https://camo.githubusercontent.com/fae27d1291ed38dd120595d692eacd2505cd3a9c/687474703a2f2f692e696d6775722e636f6d2f494f794c6a34692e6a7067) + [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. diff --git a/resources/noat.cards/07 Content delivery network.md b/resources/noat.cards/07 Content delivery network.md index 6326c73e..32c95f00 100644 --- a/resources/noat.cards/07 Content delivery network.md +++ b/resources/noat.cards/07 Content delivery network.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 70 +++ diff --git a/resources/noat.cards/08 Load balancer.md b/resources/noat.cards/08 Load balancer.md index 669cda48..9685dd41 100644 --- a/resources/noat.cards/08 Load balancer.md +++ b/resources/noat.cards/08 Load balancer.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 80 +++ # Load balancer diff --git a/resources/noat.cards/09 Reverse proxy (web server).md b/resources/noat.cards/09 Reverse proxy (web server).md index f3288512..1e6c7fa4 100644 --- a/resources/noat.cards/09 Reverse proxy (web server).md +++ b/resources/noat.cards/09 Reverse proxy (web server).md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 90 +++ # Reverse proxy (web server) diff --git a/resources/noat.cards/10 Application layer.md b/resources/noat.cards/10 Application layer.md index a575e07b..dcefe555 100644 --- a/resources/noat.cards/10 Application layer.md +++ b/resources/noat.cards/10 Application layer.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 100 +++ # Application layer diff --git a/resources/noat.cards/11 Database.md b/resources/noat.cards/11 Database.md index 172928dd..b3164f36 100644 --- a/resources/noat.cards/11 Database.md +++ b/resources/noat.cards/11 Database.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 110:weight +++ diff --git a/resources/noat.cards/11-1 Federation.md b/resources/noat.cards/11-1 Federation.md index 005e4f5d..7ce244f4 100644 --- a/resources/noat.cards/11-1 Federation.md +++ b/resources/noat.cards/11-1 Federation.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 111 +++ # Federation diff --git a/resources/noat.cards/11-2 Denormalization.md b/resources/noat.cards/11-2 Denormalization.md index deff2288..cbac4909 100644 --- a/resources/noat.cards/11-2 Denormalization.md +++ b/resources/noat.cards/11-2 Denormalization.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 112 +++ # Denormalization diff --git a/resources/noat.cards/11-1 Sharding.md b/resources/noat.cards/11-3 Sharding.md similarity index 97% rename from resources/noat.cards/11-1 Sharding.md rename to resources/noat.cards/11-3 Sharding.md index 7405f70a..589b1609 100644 --- a/resources/noat.cards/11-1 Sharding.md +++ b/resources/noat.cards/11-3 Sharding.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 113 +++ # Sharding diff --git a/resources/noat.cards/11-3 SQL tuning.md b/resources/noat.cards/11-4 SQL tuning.md similarity index 99% rename from resources/noat.cards/11-3 SQL tuning.md rename to resources/noat.cards/11-4 SQL tuning.md index a6e96c23..3d25c044 100644 --- a/resources/noat.cards/11-3 SQL tuning.md +++ b/resources/noat.cards/11-4 SQL tuning.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 114 +++ # SQL tuning diff --git a/resources/noat.cards/12 NoSQL.md b/resources/noat.cards/12 NoSQL.md index 00c6c19a..9be424a1 100644 --- a/resources/noat.cards/12 NoSQL.md +++ b/resources/noat.cards/12 NoSQL.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 120 +++ # NoSQL diff --git a/resources/noat.cards/12-1 Key-value store.md b/resources/noat.cards/12-1 Key-value store.md index 1cab5edb..abac5c1a 100644 --- a/resources/noat.cards/12-1 Key-value store.md +++ b/resources/noat.cards/12-1 Key-value store.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 121 +++ # Key-value store diff --git a/resources/noat.cards/12-2 Document store.md b/resources/noat.cards/12-2 Document store.md index 0a6e146b..f1701b7b 100644 --- a/resources/noat.cards/12-2 Document store.md +++ b/resources/noat.cards/12-2 Document store.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 122 +++ # Document store diff --git a/resources/noat.cards/12-2 Wide column store.md b/resources/noat.cards/12-3 Wide column store.md similarity index 96% rename from resources/noat.cards/12-2 Wide column store.md rename to resources/noat.cards/12-3 Wide column store.md index b0aa828c..5d415b0c 100644 --- a/resources/noat.cards/12-2 Wide column store.md +++ b/resources/noat.cards/12-3 Wide column store.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 123 +++ # Wide column store diff --git a/resources/noat.cards/12-3 Graph database.md b/resources/noat.cards/12-4 Graph database.md similarity index 93% rename from resources/noat.cards/12-3 Graph database.md rename to resources/noat.cards/12-4 Graph database.md index c135faad..4c204edc 100644 --- a/resources/noat.cards/12-3 Graph database.md +++ b/resources/noat.cards/12-4 Graph database.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 124 +++ # Graph database diff --git a/resources/noat.cards/13 SQL or NoSQL.md b/resources/noat.cards/13 SQL or NoSQL.md index dc40d907..bf6bb4b2 100644 --- a/resources/noat.cards/13 SQL or NoSQL.md +++ b/resources/noat.cards/13 SQL or NoSQL.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 130 +++ # SQL or NoSQL diff --git a/resources/noat.cards/14 Cache.md b/resources/noat.cards/14 Cache.md index ddb743b6..e254462e 100644 --- a/resources/noat.cards/14 Cache.md +++ b/resources/noat.cards/14 Cache.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 140 +++ diff --git a/resources/noat.cards/14-1 Cache locations.md b/resources/noat.cards/14-1 Cache locations.md index 7227f3c0..431dfac3 100644 --- a/resources/noat.cards/14-1 Cache locations.md +++ b/resources/noat.cards/14-1 Cache locations.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 141 +++ diff --git a/resources/noat.cards/14-2 Database caching, what to cache.md b/resources/noat.cards/14-2 Database caching, what to cache.md index ef618c49..e8e42eef 100644 --- a/resources/noat.cards/14-2 Database caching, what to cache.md +++ b/resources/noat.cards/14-2 Database caching, what to cache.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 142 +++ # Database caching, what to cache diff --git a/resources/noat.cards/14-3 Cache-aside.md b/resources/noat.cards/14-3 Cache-aside.md index 0f6cc429..47f07cc4 100644 --- a/resources/noat.cards/14-3 Cache-aside.md +++ b/resources/noat.cards/14-3 Cache-aside.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 143 +++ # Cache-aside diff --git a/resources/noat.cards/14-4 Write-through.md b/resources/noat.cards/14-4 Write-through.md index 95046025..85cd8318 100644 --- a/resources/noat.cards/14-4 Write-through.md +++ b/resources/noat.cards/14-4 Write-through.md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 144 +++ # Write-through diff --git a/resources/noat.cards/14-5 Write-behind (write-back).md b/resources/noat.cards/14-5 Write-behind (write-back).md index 321e9ee5..d77e9677 100644 --- a/resources/noat.cards/14-5 Write-behind (write-back).md +++ b/resources/noat.cards/14-5 Write-behind (write-back).md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 145 +++ # Write-behind (write-back) diff --git a/resources/noat.cards/14-6 Refresh-ahead.md b/resources/noat.cards/14-6 Refresh-ahead.md index e7febddb..2cdf685c 100644 --- a/resources/noat.cards/14-6 Refresh-ahead.md +++ b/resources/noat.cards/14-6 Refresh-ahead.md @@ -1,3 +1,9 @@ ++++ +noatcards = True +isdraft = False +weight = 146 ++++ + # Refresh-ahead ## Introduction diff --git a/resources/noat.cards/15 Asynchronism.md b/resources/noat.cards/15 Asynchronism.md index 9ae199ed..444e94b0 100644 --- a/resources/noat.cards/15 Asynchronism.md +++ b/resources/noat.cards/15 Asynchronism.md @@ -1,7 +1,7 @@ +++ noatcards = True isdraft = False -weight = 100 +weight = 150 +++ # Asynchronism diff --git a/resources/noat.cards/16-1 Hypertext transfer protocol (HTTP).md b/resources/noat.cards/16-1 Hypertext transfer protocol (HTTP).md index 114a7fa0..1b333d10 100644 --- a/resources/noat.cards/16-1 Hypertext transfer protocol (HTTP).md +++ b/resources/noat.cards/16-1 Hypertext transfer protocol (HTTP).md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 161 +++ # Hypertext transfer protocol (HTTP) diff --git a/resources/noat.cards/16-2 Transmission control protocol (TCP).md b/resources/noat.cards/16-2 Transmission control protocol (TCP).md index f5cdcac7..852927fe 100644 --- a/resources/noat.cards/16-2 Transmission control protocol (TCP).md +++ b/resources/noat.cards/16-2 Transmission control protocol (TCP).md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 162 +++ # Transmission control protocol (TCP) diff --git a/resources/noat.cards/16-3 User datagram protocol (UDP).md b/resources/noat.cards/16-3 User datagram protocol (UDP).md index ab537ae3..543e164d 100644 --- a/resources/noat.cards/16-3 User datagram protocol (UDP).md +++ b/resources/noat.cards/16-3 User datagram protocol (UDP).md @@ -1,6 +1,7 @@ +++ noatcards = True isdraft = False +weight = 163 +++ # User datagram protocol (UDP) diff --git a/resources/noat.cards/16-4 Remote procedure call (RPC).md b/resources/noat.cards/16-4 Remote procedure call (RPC).md index baa231f6..8629537f 100644 --- a/resources/noat.cards/16-4 Remote procedure call (RPC).md +++ b/resources/noat.cards/16-4 Remote procedure call (RPC).md @@ -1,3 +1,8 @@ ++++ +noatcards = True +isdraft = False +weight = 164 ++++ # Remote procedure call (RPC) ## Remote procedure call introduction diff --git a/resources/noat.cards/16-5 Representational state transfer (REST).md b/resources/noat.cards/16-5 Representational state transfer (REST).md index 8681782a..99adc0f0 100644 --- a/resources/noat.cards/16-5 Representational state transfer (REST).md +++ b/resources/noat.cards/16-5 Representational state transfer (REST).md @@ -1,4 +1,8 @@ -+++ noatcards = True isdraft = False +++ ++++ +noatcards = True +isdraft = False +weight = 165 ++++ # Representational state transfer (REST) diff --git a/resources/noat.cards/17 Security.md b/resources/noat.cards/17 Security.md index a0e0ec17..a1676787 100644 --- a/resources/noat.cards/17 Security.md +++ b/resources/noat.cards/17 Security.md @@ -1,3 +1,8 @@ ++++ +noatcards = True +isdraft = False +weight = 170 ++++ Security -------- --- diff --git a/resources/noat.cards/18 Appendix.md b/resources/noat.cards/18 Appendix.md index dc753204..74e16433 100644 --- a/resources/noat.cards/18 Appendix.md +++ b/resources/noat.cards/18 Appendix.md @@ -1,3 +1,9 @@ ++++ +noatcards = True +isdraft = False +weight = 180 ++++ + # Appendix ## Powers of two table @@ -21,7 +27,8 @@ Power Exact Value Approx Value Bytes ## Latency numbers every programmer should know ---- + +``` Latency Comparison Numbers -------------------------- L1 cache reference 0.5 ns @@ -45,7 +52,7 @@ Power Exact Value Approx Value Bytes 1 ns = 10^-9 seconds 1 us = 10^-6 seconds = 1,000 ns 1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns - +``` Handy metrics based on numbers above: @@ -56,18 +63,17 @@ Handy metrics based on numbers above: - 6-7 world-wide round trips per second - 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 - 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) - [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 - 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) diff --git a/resources/noat.cards/MD5.md b/resources/noat.cards/MD5.md deleted file mode 100644 index 409c781b..00000000 --- a/resources/noat.cards/MD5.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -noatcards = True -isdraft = False -+++ -