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. 82 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 đó.
Single-Store Vector Index: Architecture and Memory Efficiency
Memgraph là graph DB trong bộ nhớ. Vector search ở quy mô hàng triệu node với embedding nhiều chiều làm RAM thành nút thắt.
Anatomy of a (Postgres) search engine
B-tree sắp toàn bộ giá trị cột nên tìm được theo giá trị, khoảng, tiền tố, nhưng vô dụng với chuỗi ở giữa; LIKE '%x%' quét mọi dòng. Công cụ đúng là inverted index.
GitHub Actions leaking secrets when Miri output is cached
GitHub Actions cho cache thư mục giữa các lần chạy. Cấu hình thường gặp: CI trên main được ghi cache, PR chỉ được đọc (để chống đầu độc cache). Dự án Rust hay cache target/ và binary từ cargo install để CI nhanh hơn.
The Real Cost of a Single Insert in Postgres
Bảng time-series devicemetrics với 3 index (khiêm tốn cho loại bảng này), mỗi dòng dữ liệu khoảng 40 byte.
Knowing When Your Composite Index Earns Its Write Cost
Index thường được thêm trong lúc xử lý sự cố và không ai quay lại kiểm tra. EXPLAIN cho biết index tiết kiệm bao nhiêu (đến từng buffer) nhưng không cho biết mỗi insert tốn thêm bao nhiêu: lợi ích có con số, chi phí chỉ…
Sizing Your IIoT Table Before You Deploy
Một bản đo cảm biến là 20 byte (timestamp, tag ID, float), nhưng nằm trong một bảng truy vấn được thì tốn 95,6 byte, nên dự án tính 12 TB thành 60 TB. Theo Tiger Data, pilot 50 cảm biến nói rất ít về nhà máy 10.000 tag…
TimescaleDB to ClickHouse replication: Use cases, features, and how we built it
Connector Postgres CDC của ClickPipes sao chép liên tục từ Postgres sang ClickHouse Cloud, dùng cho cả migrate một lần lẫn replicate liên tục. Bài này mở rộng sang TimescaleDB (extension của Postgres cho time-series).
Litestream Revamped: SQLite Replication
2020, Litestream: chạy cạnh ứng dụng SQLite mà ứng dụng không cần biết; giữ một transaction đọc dài để chặn checkpoint WAL, dựng "shadow WAL" và đẩy liên tục các trang WAL lên object storage tương thích S3. Mất server…
Postgres as Your Platform: Building Event-Driven Systems with Schema Changes
Theo Neon, đội platform thường dựng giàn giáo quanh database (message queue để phát thay đổi, cron đồng bộ schema, webhook báo hệ phía sau). Postgres đã có sẵn đủ thứ để thay đổi schema thành sự kiện: DDL là transaction…
How we built our Internal Data Warehouse at ClickHouse: A year later
Năm 2024 DWH có 19 nguồn nạp theo giờ hoặc theo ngày; mỗi ngày ghi khoảng 6 tỉ dòng, 50 TB chưa nén; đang lưu 470 TB đã nén của hai năm, tăng 23% trong 30 ngày; khoảng 70 user chạy SELECT mỗi tuần (2023: 13 TB nén, 10…
On-Demand Dagger Engines with Argo CD, EKS, and Karpenter
Dagger Engine là thứ chạy pipeline CI (dựa trên BuildKit). Nâng cấp engine tại chỗ dễ gây gián đoạn, nên họ muốn developer tự chọn phiên bản engine trong workflow và phiên bản mới tự có sẵn khi phát hành.
October 2024 queue retrospective
Inngest chạy durable workflow cho khách; lõi là một queue đa tenant có flow control theo key do user đặt. Tháng 10/2024 họ nâng cấp liên tục; kết quả cuối tháng là P95 latency thực thi khoảng 50 ms với hàng chục nghìn…
PostgreSQL Stories: A simple query with a big problem
Tháng 2/2024, pipeline deploy staging của Render bị chặn hàng giờ. Production chỉ được deploy sau khi build đã qua staging, nên tắc staging là tắc luôn production.
PostgreSQL Stories: From slow query to fast, via stats
Pipeline deploy staging của Render bị treo vì một query đơn giản chạy hàng giờ: join bảng postgresdbs (khoảng 100 nghìn dòng) với bảng events (khoảng 90 triệu dòng) theo serviceId nằm trong cột JSON data, có LIMIT 1.
Rediscovering Transaction Processing From History and First Principles
Năm 1985, Jim Gray đề xuất đo OLTP bằng TPS và gắn TPS với giá thành mỗi transaction. "Transaction" chuẩn của ông không phải SQL transaction mà là DebitCredit: ghi nợ một tài khoản, ghi sổ kép, trả lời terminal. Mỗi…
How we stopped xmin horizon blocking Postgres vacuuming
Trigger.dev (nền tảng chạy background job) dùng Postgres làm DB chính. Queue chính cho run (v3) nằm trên Redis; còn tác vụ nội bộ (lịch, email cảnh báo...) chạy bằng Graphile Worker, một job queue trên chính Postgres,…
Anatomy of a serverless usage-based billing system
WarpStream (Kafka trên object storage) tính tiền theo ba chiều: cluster minutes (cụm có xử lý request, tính theo khối 15 phút), throughput ghi (GiB/s), lưu trữ (GiB-giờ). Theo họ, hệ billing theo usage tốt phải tách…
Goodbye to sequential integers, hello UUIDv7
Vài năm trước 2023, Buildkite chuẩn hoá hai định danh cho mọi bảng: số nguyên tăng dần làm khoá chính (join, khoá ngoại nhanh) và UUID làm khoá phụ cho mọi thứ lộ ra ngoài (API, URL; không lộ số liệu nội bộ, khó đoán).
How we built the Internal Data Warehouse at ClickHouse
ClickHouse Cloud ra private preview 5/2022. Lúc đầu VP Product phân tích workload khách hàng bằng Excel, tra cứu tay mỗi ngày. Từ đó có DWH nội bộ đầu tiên.
The growing pains of database architecture
2020: thêm tính năng, chuẩn bị ra sản phẩm thứ hai, user tăng. Traffic DB tăng khoảng 3 lần mỗi năm.
So You Think You Can Scale?
Trước 9/2023, muốn scale ngang trên Railway thì người dùng phải tự nhân bản service và tự viết load balancing.
Taking our Ruby & Kafka stack to the next level
Mọi app Rails ở Doximity nói chuyện với Kafka qua gem nội bộ dox-messaging, vốn bọc ruby-kafka: API thân thiện hơn, ép best practice, mặc định hợp với use case của họ.
Integrating Neo4j Into Your Stack
Doximity là mạng nghề nghiệp cho bác sĩ; câu hỏi kiểu "hai user nối với nhau thế nào", "bạn cấp 1 hay 2", "đồng nghiệp chung" khó hoặc chậm trên SQL. Họ dùng Neo4j cho đồ thị quan hệ, cạnh ứng dụng Rails.
How We Built Fly Postgres
Fly.io khởi đầu (2019) là nền tảng "edge app" không có lưu trữ bền: dữ liệu thật nằm ở us-east-1, phần chạy ở edge là cache. Khách xin database từ ngày đầu; họ từ chối hơn 300 ngày, có thử Redis dùng chung ("bị nguyền")…