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. 531 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 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 đó.
Cloud Native MySQL Sharding with Vitess and Kubernetes
Vitess ra đời ở YouTube để scale MySQL (theo bài tháng 3/2015 cùng tác giả: metadata cho hàng tỉ lượt xem mỗi ngày, 300 giờ video mới mỗi phút), giấu độ phức tạp của sharding khỏi tầng ứng dụng. Con đường quen thuộc:…
Scaling to 100M: MySQL is a Better NoSQL
Mỗi request tới một site Wix (domain riêng hoặc subdomain) phải phân giải URL → site: một phép tra key/value.
Building and Open-Sourcing Wix's A/B Testing System
Wix làm continuous delivery: code đẩy lên là chạy production. Theo Wix, vì code tồi cũng lên production ngay, một hệ thống experiment (A/B test và feature toggle) là điều kiện cần của CD: đánh dấu code là thử nghiệm,…
BookKeeper: Yahoo's Distributed Log Storage
BookKeeper do Yahoo tạo năm 2009: kho log tuần tự nhân bản, scale ngang trên phần cứng phổ thông; mở cho cộng đồng năm 2011, thành dự án cấp cao của Apache năm 2015.
Benchmarking Streaming Computation Engines at Yahoo!
Yahoo dùng Apache Storm cho streaming từ 2012 (thay S4 tự làm); cuối 2015 có khoảng 2.300 node Storm. Thị trường đã có Flink, Spark Streaming, Samza, Apex, Dataflow, và các benchmark có sẵn không giống tải thật.
Image Processing at Zillow: Out with the Old and In with the AWS
Zillow xử lý hơn 3 triệu ảnh mới mỗi ngày (2015): ảnh listing, ảnh hồ sơ, ảnh Zillow Digs; một phần upload tay, phần lớn đến theo feed hàng loạt từ hàng trăm nguồn, dồn cục trong ngày.
Splunk at Zillow
Sau vài năm ship liên tục, lỗi chỉ tăng: một service tầng trình bày sinh hơn 4 triệu lỗi/ngày, khoảng 20.000 loại lỗi (2015), phần lớn không cần xử lý. Giám sát service này chỉ dựa vào số lượng lỗi, nên lỗi thật chìm…
Making "never break the build" scale
"Not Rocket Science Rule" (Graydon Hoare): repo chính không bao giờ có bản fail test. Cách làm ngây thơ là build-bot nhận từng pull request, merge với tip, build và chạy toàn bộ test, đạt thì mới thành tip mới. Jane…
Garbage Collection Optimization for High-Throughput and Low-Latency Java Applications
Khi dựng thế hệ mới của feed data platform (index cập nhật từ member, company, group để phục vụ feed), team làm prototype gần đủ chức năng, chạy lại workload query của hệ đang chạy để đo GC trong thời gian dài. Java…
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.
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).
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.
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.
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.
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…
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ỏ.
The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds
150 triệu user hoạt động; 300K QPS đọc timeline nhưng chỉ khoảng 6.000 request/giây ghi: Twitter chủ yếu là nơi tiêu thụ. 400 triệu tweet/ngày (trung bình 5K/giây, đỉnh 7K/giây, hơn 12K/giây khi có sự kiện lớn);…
New Tweets per second record, and how!
3/8/2013 (khán giả Nhật xem Castle in the Sky): đỉnh 143.199 tweet/giây, trong khi bình thường là 500 triệu tweet/ngày, tức ~5.700 TPS. Đỉnh gấp ~25 lần mà user không thấy gián đoạn.
1 million is so 2011
1/2012. Vài tháng trước đó WhatsApp đã công bố 1 triệu kết nối TCP trên một máy; bài này là bản cập nhật.
Sharding & IDs at Instagram
Khoảng 25 ảnh và 90 like mỗi giây (2011). Họ shard để dữ liệu quan trọng luôn vừa trong bộ nhớ.