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. 123 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 đó.

Mọi giai đoạn 1. Khởi đầu2. Tăng trưởng3. Quy mô lớn4. Điều chỉnh
Mọi độ khó DễCơ bảnTrung bìnhKhóNâng cao
Bài tóm tắt · Disney Hotstar · 2019 Khó

Building Pubsub for 50M concurrent socket connections

IPL 2019, Hotstar ra Social Feed dưới video trên app mobile: nội dung gắn với diễn biến trận đấu nên phải đẩy realtime, không cache được, thời điểm không đoán trước (mỗi quả bóng dài ngắn khác nhau), và không được làm…

Bài tóm tắt · Instagram · 2019 Khó

Python at Scale: Strict Modules

Instagram Server là monolith Python vài triệu dòng, hàng trăm commit mỗi ngày, deploy production vài phút một lần (2019). Theo Instagram, các tính năng động của Python ổn với codebase nhỏ và đội có kỷ luật, nhưng thành…

Bài tóm tắt · Tinder · 2019 Khó

How We Improved Our Performance Using ElasticSearch Plugins: Part 1

Hệ gợi ý của Tinder lưu document người dùng trong Elasticsearch (6.3); mỗi lượt lấy gợi ý là một query lọc rồi sắp theo hàm relevance viết bằng Painless script.

Bài tóm tắt · Walmart · 2019 Khó

Business Continuity & Disaster Recovery in the Microservices world

Hệ Integrated Fulfilment (app và backend cho nhân viên cửa hàng soạn đơn pickup/giao hàng) tăng trưởng mạnh và được viết lại. Yêu cầu chính: liên tục kinh doanh; một sự cố ảnh hưởng khách hàng nhiều nước.

Bài tóm tắt · Alibaba · 2018 Khó

The Evolution of Alibaba Cloud's Relational Database Services Architecture - PolarDB

Theo Alibaba, khi user, dữ liệu, service trên cloud tăng, RDS liên tục gặp vấn đề về backup, hiệu năng, migration, nâng cấp, read-only instance, dung lượng đĩa, trễ binlog; gốc phần lớn là nút cổ chai I/O (lưu trữ và…

Bài tóm tắt · Dropbox · 2018 Khó

Cross Shard Transactions at 10 Million Requests Per Second

Edgestore là lớp trừu tượng trên hàng nghìn node MySQL, giữ hàng petabyte metadata, hơn 10 triệu request/giây. Developer gom dữ liệu hay đi cùng nhau vào một colo (cùng shard vật lý): trong colo có transaction mạnh,…

Bài tóm tắt · LinkedIn · 2018 Khó

Concourse: Generating Personalized Content Notifications in Near-Real-Time

Thông báo về nội dung trong mạng (Project Pepper) chạy bằng workflow Hadoop vài lần mỗi ngày: event Kafka được ETL vào HDFS, join với đồ thị fan-out, gắn feature, chấm điểm bằng model, rồi chuyển cho ATC (cổng chung cho…

Bài tóm tắt · LinkedIn · 2018 Khó

Dynamometer: Scale Testing HDFS on Minimal Hardware with Maximum Fidelity

Tháng 3/2015: ngay sau khi thêm 500 máy vào cụm HDFS chính, thao tác chậm tới hai bậc độ lớn hoặc timeout, job dồn ứ. Gỡ máy ra không dễ vì chúng đã nhận dữ liệu. Nguyên nhân là một thay đổi khoảng 24 dòng trong bản…

Bài tóm tắt · Segment · 2018 Khó

Centrifuge: a reliable system for delivering billions of events per day

Segment nhận hàng trăm nghìn event mỗi giây và chuyển tới hàng trăm đích (Google Analytics, Salesforce, webhook của khách). Bất kỳ lúc nào cũng có vài chục đích đang hỏng: latency tăng 10 lần, 5xx, rate limit với từng…

Bài tóm tắt · Booking.com · 2017 Khó

Troubleshooting: A journey into the unknown

Distributed Load Balancing (DLB) của Booking: các server nối thẳng Internet, dual-home, peer BGP với switch hai phía, chia traffic bằng ECMP; anycast-healthchecker rút route khi service hỏng; BFD gửi hello UDP mỗi 400…

Bài tóm tắt · LinkedIn · 2017 Khó

Building the Activity Graph, Part 2

FollowFeed index mọi Activity thành danh sách theo thời gian của từng actor, key là URN của actor. Bản ghi TimelineRecord phải nhỏ để index vừa RAM.

Bài tóm tắt · LinkedIn · 2017 Khó

Building Venice with Apache Helix

LinkedIn có nhiều kho chuyên biệt với đánh đổi khác nhau (kho chỉ cần put/get nhanh, kho cần nhất quán mạnh và index). Theo bài, họ không viết mỗi kho từ đầu mà dùng thư viện chung; Helix (ra đời cho Espresso) lo quản…

Bài tóm tắt · Stack Overflow · 2017 Khó

HTTPS on Stack Overflow: The End of a Long Road

22/5/2017: HTTPS thành mặc định trên Stack Overflow, site cuối cùng và lớn nhất của mạng; thao tác bật chỉ là một feature flag, nhưng chuẩn bị mất 4 năm (2013→2017).

Bài tóm tắt · Booking.com · 2016 Khó

Evaluating MySQL Parallel Replication Part 4: More Benchmarks in Production

Phần 3 đo parallel replication kiểu "bảo thủ" (MariaDB 10.0): master đánh dấu transaction nào song song được, slave chỉ chạy song song những cái đó. Kết quả chỉ 1,3 đến 2,1 lần.

Bài tóm tắt · LinkedIn · 2016 Khó

FollowFeed: LinkedIn's Feed Made Faster and Smarter

Mọi trải nghiệm feed của LinkedIn chạy trên một hạ tầng chung. Trước đó là Sensei: hệ search phân tán trên Lucene, query viết bằng BQL gồm cả lọc lẫn relevance, broker fan-out tới mọi searcher node rồi gộp top N.

Bài tóm tắt · Booking.com · 2015 Khó

Better Parallel Replication for MySQL

MySQL 5.5 và MariaDB 5.5 replicate đơn luồng: trên slave, transaction trước phải commit xong thì transaction sau mới chạy, trong khi master chạy nhiều transaction cùng lúc. Slave vì vậy ghi chậm hơn master, và master…

Bài tóm tắt · Booking.com · 2015 Khó

Evaluating MySQL Parallel Replication Part 3: Benchmarks in Production

Replication của MySQL lúc đó đơn luồng trên slave: muốn không có replication lag, master chỉ được ghi bằng khoảng một core, dù máy có 12 core trở lên. Đây là trần ghi của mỗi cụm.

Bài tóm tắt · Booking.com · 2015 Khó

Evaluating MySQL Parallel Replication Part 2: Slave Group Commit

MariaDB 10.0 và MySQL 5.7 có tham số trì hoãn commit trên master để nhiều transaction vào chung một nhóm (binlogcommitwaitcount/binlogcommitwaitusec ở MariaDB, binloggroupcommitsyncdelay/...nodelaycount ở MySQL): nhóm…

Bài tóm tắt · Jane Street · 2015 Khó

Building a lower-latency GC

GC gây pause không đoán trước, xấu cho hệ giao dịch. Cách thường làm là pool hết object, không cấp phát gì trên đường nóng; cách này chạy được nhưng code khó viết và khó suy luận. Jane Street muốn một GC cho phép vẫn…

Bài tóm tắt · LinkedIn · 2015 Khó

Introducing Espresso - LinkedIn's hot new distributed document store

Trước Espresso, LinkedIn dùng Oracle (dữ liệu chính, nhất quán mạnh) và Voldemort (key-value). Phần lớn dữ liệu chính không cần đủ tính năng RDBMS nhưng lại cần đọc-sau-ghi và một change capture stream có thứ tự theo…

Bài tóm tắt · LinkedIn · 2014 Khó

Did you mean "Galene"?

Search của LinkedIn (hơn 300 triệu member, 2014) dựng trên Lucene, rồi đắp thêm từng lớp mỗi khi gặp giới hạn: Sensei (sharding, quản lý cụm), Search Content Store (giữ mọi term của entity, vì Lucene cập nhật bằng xoá…

Bài tóm tắt · Twitter · 2014 Khó

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.

Bài tóm tắt · WhatsApp · 2014 Khó

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.

Bài tóm tắt · Jepsen · 2013 Khó

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.