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 đó.
Low Latency Optimization: Understanding Huge Pages (Part 1)
Latency thường là yếu tố quyết định trong giao dịch thuật toán; HRT tốn nhiều công tối thiểu latency của stack giao dịch. Một khía cạnh ít được bàn sâu: huge page và TLB.
Low Latency Optimization: Using Huge Pages on Linux (Part 2)
Bật huge page không chỉ là sửa một file cấu hình. Linux vẫn dùng trang 4 KiB cho phần lớn việc nội bộ; tạo một huge page nghĩa là tìm 512 trang 4 KiB liền nhau bắt đầu ở bội số 2 MiB. Khi bộ nhớ đã phân mảnh, OS phải…
Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace
Hệ giao dịch của Jane Street gần như toàn thời gian ngồi chờ gói tin mạng và phải phản hồi nhanh hơn nhiều so với chu kỳ lấy mẫu khoảng 250 µs của sampling profiler, nên profiler lấy mẫu gần như vô dụng cho latency ở…
Jepsen: Redpanda 21.10.1
Redpanda: hệ streaming tương thích giao thức Kafka, dùng Raft nội bộ thay ZooKeeper, quảng bá "không mất dữ liệu mặc định" vì chỉ ack sau khi fsync trên đa số replica (Kafka mặc định có thể ack trước fsync).
De-identified authentication at scale (Anonymous Credential Service)
Meta trước đó giảm dữ liệu bằng cách khử định danh hoặc gộp sau khi thu, cách làm bị động và tốn tài nguyên ở quy mô của họ. Hướng mới: khử định danh ngay tại nguồn bằng xác thực ẩn danh.
Cache made consistent: Meta's cache invalidation solution
Meta vận hành TAO (hơn một nghìn nghìn tỉ query mỗi ngày) và Memcache. Cache động khác DB ở chỗ dữ liệu bị thay đổi trên cả hai đường: đọc (cache fill) và ghi (invalidation). Ví dụ kinh điển: fill đọc được x=42, trong…
Slack's Incident on 2-22-22
Client Slack phải boot (tải danh sách kênh, preference, hội thoại gần nhất) mới dùng được; boot lỗi là trang lỗi.
Measuring the impact of Twitter network latency with CausalImpact
Để giảm latency, Twitter làm thí nghiệm đổi edge mặc định sang edge của cloud công cộng ở một số nước, vì cloud công cộng phủ địa lý rộng hơn ở vài vùng (2022). Do cấu hình mạng, không chia ngẫu nhiên người dùng được:…
How We Halved Go Monorepo CI Build Time
Monorepo Go của Uber build bằng Bazel, hơn 10 triệu target, khoảng 500.000 file. Luồng một thay đổi: review trên Phabricator, CI chạy build + test, rồi SubmitQueue áp thay đổi lên HEAD mới nhất và chạy lại trước khi…
Serving Machine Learning Models Efficiently at Scale at Zillow
Nhiều tính năng của Zillow (Zestimate, gợi ý nhà, floor plan, semantic search) chạy bằng model ML. Đưa một model đã train lên làm web service cần nhiều logic nghiệp vụ quanh nó: tiền xử lý request, trích feature tức…
Himeji: A Scalable Centralized System for Authorization at Airbnb
Ở thời monolith Rails, mỗi resource có một API duy nhất để đọc dữ liệu, và kiểm tra quyền nằm trong API đó, nên rất dễ quản lý.
An AKS Performance Journey: Part 2 — Networking It Out
Sau phần 1, PLP trên AKS vẫn chậm hơn Cloud Services khoảng 100 ms ở percentile cao. Log có nhiều timeout gọi API, kèm lỗi getaddrinfo EAIAGAIN từ NodeJS và các lần chờ đúng 5 giây.
How We Verify Custom Hardware
HRT dùng FPGA trong hệ giao dịch để giảm latency, chịu burst dữ liệu tốt hơn và giảm độ phức tạp. Phần cứng song song ở mức phần mềm hiếm gặp nên dễ lỗi timing, và mỗi thiết bị phải đúng chức năng, tuân thủ risk check…
Rethinking site capacity projections with Capacity Analyzer
LinkedIn load test hằng ngày trên production bằng cách dồn traffic của các DC khác vào DC cần test; mục tiêu đặt theo dự báo QPS của quý.
The exabyte club: LinkedIn's journey of scaling the Hadoop Distributed File System
Hạ tầng analytics gần gấp đôi mỗi năm. Cụm lớn nhất: 20 PB cuối 2015 → 500 PB năm 2020; 145 triệu object namespace (2015) → 1,6 tỷ trong ba namespace volume, volume lớn nhất trên 1 tỷ. Tổng 1 exabyte trên mọi cụm…
Scaling LinkedIn's Hadoop YARN cluster beyond 10,000 nodes
Cụm Hadoop gấp đôi mỗi năm; cụm lớn nhất khoảng 10.000 node năm 2021. HDFS (một NameNode giữ mọi metadata) chạm giới hạn trước nên được đầu tư từ 2016; YARN ResourceManager nhẹ hơn nên được để yên tới đầu 2019.
How WhatsApp enables de-identified authenticated telemetry (DIT)
WhatsApp (2021): hơn 100 tỉ tin nhắn và 1 tỉ cuộc gọi mỗi ngày. Để vận hành cần metric như tin có tới nơi không, bao nhiêu người dùng hệ điều hành nào.
Anomaly Detection at Zillow Using Luminaire
Zestimate, gợi ý, model CV xử lý lượng dữ liệu lớn qua nhiều pipeline, mỗi chỗ là một điểm có thể hỏng. Theo Zillow, công cụ phát hiện bất thường có sẵn hoặc không bền trên nhiều dạng dữ liệu, hoặc cần chuyên môn mô…
Memory allocator showdown
OCaml 4.10 thêm allocator best-fit bên cạnh allocator mặc định next-fit. Jane Street chuyển sang best-fit và thấy cải thiện lớn, nhưng bài kể cái khó là chứng minh điều đó.
Jepsen: PostgreSQL 12.3
Trước 9.1, chế độ "serializable" của PostgreSQL thực ra là snapshot isolation (SI); từ 9.1 (2011) có serializable snapshot isolation (SSI): SI cộng kiểm lúc chạy các "cấu trúc nguy hiểm" (hai cạnh phụ thuộc đọc-ghi kề…
Fixing Linux filesystem performance regressions
Fleet tăng từ hàng trăm lên hàng trăm nghìn server. Các đợt reimage trước đó làm theo kiểu dồn sức toàn đội mỗi khi có lý do bên ngoài (lỗi CPU công bố). Rút kinh nghiệm, LinkedIn dựng quy trình reimage tự động hơn và…
Courier: Dropbox migration to gRPC
Dropbox chạy hàng trăm service bằng nhiều ngôn ngữ, trao đổi hàng triệu request mỗi giây (2019). Trước Courier có giao thức tự serialize, Thrift cho pipeline log, và "legacy RPC" chính là HTTP/1.1 + protobuf.
How we optimized Magic Pocket for cold storage
Magic Pocket () lưu block bất biến tối đa 4 MB trên đĩa quay (SMR từ 2018, ); trong một region thì mới upload là replication n-way, sau đó erasure coding nền.
Centralized Application Logging at eBay (CAL Ingress)
CAL gom log cục bộ của các application server về một chỗ và làm báo cáo cho mọi mảng của eBay. CAL Ingress nhận log từ hàng nghìn client qua kết nối TCP sống lâu, chia ra: raw log tới Filer, metric VID (gộp lại) qua…