《搞定系统设计》深度阅读
以下是《搞定系统设计》(System Design Interview)这本书中推荐的参考资料,整理如下,方便喜欢这本书的朋友进行深度阅读。
1. 从0到100万用户的扩展
- HTTP - wiki
- Should you go Beyond Relational Databases?
- Replication(computing) - wiki
- Multi-master replication
- Caching Strategies and How to Choose the Right One
- Configure sticky sessions for your Classic Load Balancer
- Active-Active for Multi-Regional Resiliency
- What it takes to run Stack Overflow
2. 封底估算
- Google Pro Tip: Use Back-Of-The-Envelope-Calculations To Choose The Best Design
- The System Design Primer - github
3. 系统设计面试的框架
书中没有参考资料。
4. 设计限流器
- notes-on-rate-limiting-strategies-techniques.md
- Rate Limiting Techniques
- Rate limiting overview
- Rate limits: Standard v1.1
- Google Docs Usage limits
- What are microservices?
- Throttle API requests for better throughput - AWS
- Scaling your API with rate limiters
- Shopify API rate limits
- Better Rate Limiting With Redis Sorted Sets
- System Design — Rate limiter and Data modelling
- How we built rate limiting capable of scaling to millions of domains
- Better Rate Limiting With Redis Sorted Sets
- Scaling your API with rate limiters - Code
- What is edge computing?
- Rate Limit Requests with Iptables
- OSI model - wiki
5. 设计一致性哈希系统
- Consistent hashing
- Dynamo: Amazon’s highly available key-value store
- Cassandra- A Decentralized Structured Storage System
- How Discord Scaled Elixir to 5000000 Concurrent Users
- CS 168: The Modern Algorithmic Toolbox, Spring 2023
- Maglev: A Fast and Reliable Software Network Load Balancer
6. 设计键值存储系统
- Dynamo: Amazon’s highly available key-value store
- Bigtable: A Distributed Storage System for Structured Data
- Merkle tree - wiki
- Sloppy Quorums and Hinted Handoff
- Eventual Consistency: Anti-Entropy
- SSTable and Log Structured Storage: LevelDB
- Bloom filter
7. 设计分布式系统中的唯一ID生成器
- Ticket Servers: Distributed Unique Primary Keys on the Cheap
- Universally unique identifier
- Announcing Snowflake
8. 设计URL缩短器
原书没有参考资料。
9. 设计网络爬虫
- Digimarc官网
- Mercator: A Scalable, Extensible Web Crawler
- Web Crawling
- Study: 29% Of Sites Face Duplicate Content Issues & 80% Aren’t Using Schema.org Microdata
- Space/time trade-offs in hash coding with allowable errors
- Fingerprinting by Random Polynomials
- Web Crawling - Donald J. Patterson
- The PageRank Citation Ranking: Bringing Order to the Web
- Dynamic Rendering as a Workaround
- Tracking Web Spam with Hidden Style Similarity
- IRLbot: Scaling to 6 Billion Pages and Beyond
10. 设计通知系统
- You Cannot Have Exactly-Once Delivery
- Securing Push Notifications in Mobile Apps
- The RabbitMQ Management Interface
11. 设计 news feed 系统
书中无参考资料。
12. 设计聊天系统
- Erlang at Facebook: Chat Architecture
- Messenger and WhatsApp process 60 billion messages a day, three times more than SMS
- Long tail - wiki
- The Underlying Technology of Messages
- How Discord Stores Billions of Messages
- Announcing Snowflake
- 从无到有:微信后台系统的演进之路
- About end-to-end encryption
- Flannel: An Application-Level Edge Cache to Make Slack Scale
13. 设计搜索自动补全系统
- The Life of a Typeahead Query
- How We Built Prefixy: A Scalable Prefix Search Service for Powering Autocomplete
- Brief Announcement: Prefix Hash Tree
- MongoDB - wiki
14. 设计视频分享系统
- YouTube by the Numbers: Stats, Demographics & Fun Facts
- Netflix on AWS
- Binary large object/Object storage
- https://www.dacast.com/blog/streaming-protocols/
- SVE: Distributed Video Processing at Facebook Scale
- 新浪微博杜东澄:微博视频转码系统架构演进
- Delegate access by using a shared access signature
- Understanding the Characteristics of Internet Short Video Sharing: YouTube as a Case Study
- YouTube Scalability
- Content Popularity for Open Connect
15. 设计云盘
- Differential Synchronization
- How We’ve Scaled Dropbox
- The rsync algorithm
- librsync - github
- ACID - wiki
- Dropbox Business Security - A Dropbox Whitepaper
16. 设计支付系统
- Payment Management Strategies of Forward-Thinking Global Merchants
- Double-entry bookkeeping
- To the Nines: Building Uber’s Payments Processing System
- Credit Card Vaulting: Advantages & Ways to Do It
- Exponential backoff
- Webhook
- Avoiding Double Payments in a Distributed Payments System
- Two-phase commit protocol
- The Raft Consensus Algorithm
- Paxos (computer science)
- Saga distributed transactions pattern
- Designing for Correctness in a Distributed Payment System: Part 1
- Designing for Correctness in a Distributed Payment System: Part 2
- Remote procedure call
- Kafka Connect Deep Dive
- Reliable Processing in a Streaming Payment System
- What is a DDoS attack?
- How Payment Gateways Can Detect and Prevent Online Fraud
- Scaling Airbnb’s Payment Platform
- Re-Architecting Cash and Digital Wallet Payments for India with Uber Engineering
- Payments Integration at Uber: A Case Study
17. 设计指标监控和告警系统
- Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
- Distributed Systems Tracing with Zipkin
- Prometheus
- Prometheus: DATA MODEL
- OpenTSDB 3.0
- Schema design for time series data
- MetricsDB: TimeSeries Database for storing metrics at Twitter
- What is Amazon Timestream?
- DB-Engines
- InfluxDB
- Service Discovery with Zookeeper
- Prometheus Pushgateway
- Gorilla: A Fast, Scalable, In-Memory Time Series Database
- Why We’re Building Flux, a New Data Scripting and Query Language
- M3: Uber’s Open Source, Large-scale Metrics Platform for Prometheus
- YAML
- Grafana open source documentation
18. 继续学习
- Facebook Timeline: Brought To You By The Power Of Denormalization
- Scale at Facebook
- Building Timeline: Scaling up to hold your life story
- Erlang at Facebook (Facebook chat)
- Facebook Chat
- Serving Facebook Multifeed: Efficiency, performance gains through redesign
- Scaling Memcache at Facebook
- TAO: Facebook’s Distributed Data Store for the Social Graph
- Amazon Architecture
- Dynamo: Amazon’s Highly Available Key-value Store
- A 360 Degree View Of The Entire Netflix Stack
- It’s All A/Bout Testing: The Netflix Experimentation Platform
- Netflix Recommendations: Beyond the 5 stars (Part 1)
- Netflix Recommendations: Beyond the 5 stars (Part 2)
- Google Architecture
- The Google File System (Google Docs)
- Differential Synchronization (Google Docs)
- YouTube Architecture
- Seattle Conference on Scalability: YouTube Scalability
- Bigtable: A Distributed Storage System for Structured Data
- Instagram Architecture: 14 Million Users, Terabytes Of Photos, 100s Of Instances, Dozens Of Technologies
- The Architecture Twitter Uses To Deal With 150M Active Users
- Scaling Twitter: Making Twitter 10000 Percent Faster
- Announcing Snowflake (Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees)
- Timelines at Scale
- How Uber Scales Their Real-Time Market Platform
- Scaling Pinterest
- Pinterest Architecture Update
- A Brief History of Scaling LinkedIn
- Flickr Architecture
- How We’ve Scaled Dropbox
- The WhatsApp Architecture Facebook Bought For $19 Billion
《搞定系统设计》深度阅读
http://yoursite.com/posts/64636/