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. 979 bài. Đọ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 9.115 bài thuộc 135 công ty có trang wiki riêng và 897 bài thuộc 261 trang danh sách bài viết (công ty chưa có trang wiki); thành viên xem được toàn bộ danh sách. Cảm ơn những người duy trì các danh sách đó.
Real-time Analytics at Massive Scale with Pinot
Khoảng 2012, các sản phẩm phân tích chạy trên Oracle và Voldemort, không hợp với OLAP; dữ liệu tăng theo cả chiều rộng lẫn chiều sâu. Ví dụ Jobs Analytics: xử lý và nén trên Hadoop rồi đẩy lại vào Oracle, nên không gần…
Questioning the Lambda Architecture
Lambda architecture (Nathan Marz): cùng một luồng dữ liệu bất biến được đưa song song vào hệ batch (MapReduce) và hệ stream (Storm); logic biến đổi viết hai lần, kết quả hai bên ghép lại lúc truy vấn.
Lessons from Deploying MySQL GTID at Scale
Replication MySQL truyền thống dựa trên toạ độ tương đối (tên file binlog + vị trí). GTID (MySQL 5.6) gán cho mỗi transaction một ID duy nhất, nên replica tự biết mình đã chạy tới đâu (auto-positioning).
Using Presto in our Big Data Platform on AWS
Nền big data của Netflix (2014) đặt data warehouse trên S3: compute tách khỏi storage, nhiều cluster (chạy dài hay tạm) cùng đọc chung dữ liệu. User viết job Pig hoặc Hive cho ETL và phân tích; một phần nhỏ kết quả và…
Behind the Pins: Building Analytics
8/2014 Pinterest ra bản 2 của công cụ analytics cho doanh nghiệp (analytics theo domain, profile, audience; phân theo quốc gia, ứng dụng; impression, click, repin).
Roshi: a CRDT system for timestamped events
Stream của SoundCloud: các event (thời điểm, ai làm, làm gì) từ những người mình follow, xếp mới nhất trước.
How We Replaced Our Data Pipeline With Zero Downtime
Mỗi cuộc gọi hay tin nhắn đi qua các trạng thái in-flight (đổ chuông, đang gọi, xếp hàng), rồi thành bản ghi post-flight để lưu lâu dài và phân tích. Trước đây cả hai nằm chung một cluster MySQL.
How Twitter Uses Redis to Scale - 105TB RAM, 39MM QPS, 10,000+ Instances
Năm 2014 cache của Twitter: khoảng 105 TB RAM, 39 triệu QPS, hơn 10.000 instance; Redis từ 2010 cho Timeline (danh sách ID tweet), rồi Ads. Dịch vụ cache tăng từ một project lên gần trăm project dùng.
Open Whisper Systems partners with WhatsApp to provide end-to-end encryption
Open Whisper Systems đã phát triển giao thức mã hoá mở cho nhắn tin bất đồng bộ (TextSecure, sau đổi tên Signal Protocol) trong ba năm. Hai bên đã làm việc với nhau nửa năm trước khi thông báo.
The WhatsApp Architecture Facebook Bought For $19 Billion
450 triệu user hoạt động, hơn 1 triệu đăng ký mỗi ngày, 50 tỉ tin nhắn/ngày (vào + ra), với 32 kỹ sư (một kỹ sư trên 14 triệu user). Hàng trăm node, hơn 8.000 core, hàng trăm TB RAM, hơn 70 triệu message Erlang mỗi giây.
How WhatsApp Grew to Nearly 500 Million Users, 11,000 cores, and 70 Million Messages a Second
465 triệu user/tháng; 19 tỉ tin vào và 40 tỉ tin ra mỗi ngày; 600 triệu ảnh, 200 triệu voice, 100 triệu video mỗi ngày.
Inside the Go Playground
Playground (9/2010) cho chạy chương trình Go bất kỳ từ trình duyệt, dùng trong tài liệu, tour, slide. Ba phần: backend trên máy của Google (compile + chạy, trả output qua RPC), frontend trên App Engine (nhận HTTP, gọi…
Handling Growth with Postgres: 5 Tips From Instagram
Postgres vẫn là kho dữ liệu chuẩn (canonical) cho phần lớn dữ liệu user. Từ 90 like/giây (bài sharding năm 2011, ) lên hơn 10.000 like/giây lúc cao điểm (đầu 2013) mà công nghệ lưu trữ lõi không đổi.
Call me maybe: Cassandra
Cassandra theo mô hình Dynamo (hash ring, N bản, quorum điều chỉnh được, hinted handoff, anti-entropy) nhưng bỏ vector clock để dùng last-write-wins thuần: một round-trip mỗi ghi thay vì hai.
Call me maybe: Kafka
Kafka 0.8 thêm replication: mỗi partition một leader (bầu qua ZooKeeper) giữ ISR (in-sync replica); ghi commit khi mọi node trong ISR ack. LinkedIn tuyên bố chịu được f−1 lỗi với f node vì theo kinh nghiệm vận hành của…
Open sourcing Databus: LinkedIn's low latency change data capture system
LinkedIn có nhiều hệ lưu trữ chuyên biệt: DB OLTP nhận ghi; search index, cache, read replica phục vụ đọc. Các hệ dẫn xuất này phải theo kịp DB chính một cách đáng tin cậy và giữ thứ tự transaction.
Rest.li: RESTful Service Architecture at Scale
LinkedIn cần một cách chuẩn để mô tả resource trong kiến trúc SOA cho client viết bằng nhiều ngôn ngữ, chịu được vài nghìn QPS mỗi instance, bất đồng bộ, và cho phép interface tiến hoá lâu dài.
The Log: What every software engineer should know about real-time data's unifying abstraction
Khoảng 2007 LinkedIn bắt đầu chạm giới hạn của một database tập trung, chuyển sang một danh mục hệ phân tán chuyên biệt: search, social graph, Voldemort (key-value), Espresso (document), recommendation, OLAP, Hadoop,…
Under the Hood: Building out the infrastructure for Graph Search
Facebook có nhiều hệ search cũ chồng nhau: PPS (theo từ khoá, cá nhân hoá, lọc theo loại entity); Typeahead (2009–2010, tìm theo tiền tố khi gõ, viết lại toàn bộ backend và frontend để đạt hiệu năng, nhưng index bị giới…
Active-Active for Multi-Regional Resiliency
Theo Netflix, tỉ lệ hỏng phụ thuộc hai thứ: quy mô deploy và tốc độ thay đổi; chạy lớn mà vẫn đổi nhanh thì "lúc nào cũng có thứ hỏng". Mục tiêu nội bộ là 99,99%. Mất trọn một region rất hiếm, nhưng chính tốc độ thay…
Scryer: Netflix's Predictive Auto Scaling Engine
Netflix dùng Amazon Auto Scaling (AAS): tăng giảm số instance theo metric hiện tại (thường là load average). Theo Netflix, AAS hiệu quả cho availability và chi phí, nhưng phản ứng sau khi tải đã đổi.
Scaling Pinterest - From 0 To 10s Of Billions Of Page Views A Month In Two Years
3/2010: 2 nhà sáng lập, 1 kỹ sư, Rackspace, 1 web engine nhỏ, 1 MySQL nhỏ.
Quora's Distributed Cron Architecture
Thời đầu, mỗi tần suất (mỗi phút, 5 phút, giờ, ngày, tuần) có một script chạy tuần tự mọi job của tần suất đó, tất cả trên một máy.
What it takes to run Stack Overflow
Nick Craver mô tả Stack Overflow là chạy "with scale" nhưng không "at scale": vận hành rất hiệu quả nhưng chưa "lớn". Số liệu một ngày (12/11/2013), chỉ tính data center đang hoạt động, không tính CDN: