Bài tóm tắt
Tóm tắt bằng lời riêng, luôn dẫn về bài gốc. 49 bài (đã lọc). Đọc miễn phí.
Nguồn dữ liệu danh sách bài viết của blog công ty
Danh sách bài trên trang công ty gồm 10.013 bài. Khoảng 73,6% (7.365 bài) do SWE Wiki thu thập thủ công từ kho lưu trữ blog chính chủ của các công ty, kèm ngày đăng. Phần còn lại lấy từ các danh sách công khai trên GitHub: binhnguyennus/awesome-scalability (667), abhivaikar/howtheytest (551), upgundecha/howtheysre (499), eugeneyan/applied-ml (376), Engineer1999/ML-System-Design-Case-Studies (239), upgundecha/howtheyaws (149) và một số danh sách nhỏ khác. Mọi link luôn dẫn về bài gốc trên blog của tác giả; SWE Wiki không sao chép nội dung bài. Hiện 8.979 bài thuộc 133 công ty có trang riêng được hiển thị cho thành viên. Cảm ơn những người duy trì các danh sách đó.
Creating a Logical Replica from a Snapshot in RDS Postgres
Instacart cần bật mã hoá at-rest cho các DB RDS Postgres có sẵn (cỡ vài TB). Quy trình AWS khuyên: tắt DB, snapshot, mã hoá snapshot, restore: nhiều giờ downtime, trong khi cửa sổ trống chỉ khoảng 2 giờ (giữa chuyến…
LIquid: The soul of a new graph database, Part 1
Theo LinkedIn, giá trị của đồ thị nằm chủ yếu ở mạng cấp 2: bạn của bạn, thường ít nhất 50.000 entity (người, trường, công ty). Mạng cấp 1 (vài trăm kết nối) để trong bảng hay KV là đủ; mạng cấp 3 quá lớn và khó hành…
LIquid: The soul of a new graph database, Part 2
Đồ thị biểu diễn bằng một bảng cạnh (adjacency list) là đúng mô hình quan hệ: không NULL, dạng chuẩn 5, dễ chuyển dữ liệu. Nhưng DB quan hệ truyền thống chạy rất tệ với schema này, và SQL khó dùng để dựng ứng dụng.
MySQL sharding at Quora
MySQL giữ câu hỏi, câu trả lời, upvote, comment: hàng chục TB (chưa kể replica), hàng trăm nghìn QPS; thêm Memcache và Redis cho đọc. Dữ liệu và QPS ghi tăng nên phải shard.
Scaling Datastores at Slack with Vitess
Slack bắt đầu bằng LAMP. Mọi dữ liệu trên MySQL, gồm ba loại cluster:
6 Event-Driven Architecture Patterns — Part 2
Ba mẫu tiếp theo của team data-streams (Kafka cho hơn 1.400 microservice), dựng trên thư viện consumer Greyhound do Wix tự viết và mở mã nguồn.
Orchestrating Cassandra on Kubernetes with Operators
Cassandra ở Yelp dùng cho cả dữ liệu chính lẫn dữ liệu dẫn xuất; mỗi cụm production trải nhiều region AWS, chạy trên EC2 + ASG, dữ liệu trên EBS (backup bằng snapshot), seed provider dựa trên synapse.
Avoiding Double Payments in a Distributed Payments System
Airbnb chuyển sang SOA; một API thanh toán gọi xuống nhiều service, mỗi service đổi trạng thái và có tác dụng phụ: thực chất là một transaction phân tán, trong khi request mạng chắc chắn có lúc timeout.
Our not-so-magic journey scaling low latency, multi-region services on AWS
Atlassian "all in" trên AWS từ 2016; nhiều service phải viết lại cho stateless.
Enhancing Bandaid load balancing with real-time backend server load information
Request của user qua GSLB (DNS) tới hơn 20 PoP, qua L4 rồi edge proxy L7, vào data center thì Bandaid định tuyến tới service. Bandaid đang dùng random N choices (N = 2) theo số request đang mở mà chính instance đó thấy,…
GRIT: a Protocol for Distributed Transactions across Microservices
Trong microservices, một ứng dụng gọi nhiều service do nhiều team viết, mỗi service dùng DB riêng. Vẫn có nhu cầu thật về giao dịch ACID xuyên service.
DBLog: A Generic Change-Data-Capture Framework
Nền tảng Delta của Netflix giữ nhiều kho dữ liệu đồng bộ: một kho là nguồn sự thật (MySQL), các kho khác dẫn xuất (Elasticsearch). CDC thay cho dual write và transaction phân tán.
Geosharded Recommendations Part 3: Consistency
Sau khi shard theo địa lý, có hai kho dữ liệu phải khớp nhau:
The story of a V8 performance cliff in React
V8 không lưu số JavaScript (Float64 theo spec) theo một cách cố định: số nguyên 31 bit có dấu là Smi, số khác là HeapNumber. Mỗi trường của object được đánh dấu "representation" trên shape (hidden class): Smi, Double…
Meet Bandaid, the Dropbox service proxy
Bandaid bắt đầu là reverse proxy bù cho điểm yếu của các service phía server, rồi thành service proxy giúp Dropbox chuyển sang SOA. Viết bằng Go như phần lớn hạ tầng lõi; hỗ trợ TLS termination, HTTP/2, gRPC, service…
Rethinking Netflix's Edge Load Balancing
Cloud Gateway (Zuul) nhận hơn 1 triệu request/giây (2018). Zuul dùng Ribbon round-robin + loại server có tỉ lệ lỗi kết nối cao, kèm vài tuỳ biến bớt traffic cho server mới khởi động; một số cụm origin vẫn có lỗi do quá…
Scaling Time Series Data Storage — Part II
1/2016 Netflix mở ra 130 nước, 20 ngôn ngữ; cuối 2016 thêm video preview khi duyệt trên TV. Kiến trúc phần 1 coi mọi dữ liệu xem như nhau.
Building a dynamic and responsive Pinterest
2015: phần lớn nội dung được sinh sẵn cho user trước khi họ đăng nhập, lưu tĩnh trong HBase. Kiến trúc này đưa Pinterest tới 100 triệu MAU.
Infrastructure update: evolution of the Dropbox backbone network
Đưa hàng trăm PB dữ liệu về data center riêng () trong khi user vẫn tăng đòi hỏi mạng phải lớn nhanh. Họ xây song song một edge network toàn cầu và một backbone nối các data center ở Bắc Mỹ với nhau và với các edge…
Dismissing Python Garbage Collection at Instagram
Web server Django chạy uWSGI ở chế độ pre-fork: process master fork ra hàng chục worker để chia sẻ bộ nhớ theo copy-on-write (CoW). Worker bị restart khi RSS vượt ngưỡng để tránh OOM.
Nebula as a Storage Platform to Build Airbnb's Search Backends
2015: dữ liệu cá nhân hoá cho search vượt sức một máy. Thay vì chỉ làm lại service đó, Airbnb xây nền tảng chung vì thấy nhiều service sẽ cần cùng thứ: phục vụ độ trễ ms cho traffic site, nhận cập nhật realtime từ…
Scaling to exabytes and beyond (Magic Pocket)
Dropbox luôn là hybrid cloud: metadata và web server ở data center riêng, nội dung file trên Amazon S3. Họ là khách hàng sớm của S3 và nói thẳng là không thể lớn nhanh như vậy nếu không có AWS.
Instagration Pt. 2: Scaling our infrastructure to multiple data centers
2013, khoảng một năm sau khi về Facebook: 200 triệu user/tháng, 20 tỷ ảnh. Họ bắt đầu "Instagration", chuyển từ AWS sang hạ tầng Facebook.
Chat Service Architecture: Servers
Chat LoL (2015): mỗi ngày thường định tuyến khoảng 1 tỷ event (presence, message, IQ) và hàng triệu REST query; một ngày tháng 7 có 1,7 triệu lượt kết bạn mới.