Message Queue 29/08/2026 7 phút

Cả nghìn bài đo bảo 'Kafka chậm' — họ đang bấm giờ JVM khởi động, không phải Kafka

Một broker Kafka thật ra khởi động 2 giây, chiếm 290 MB — nhẹ hơn hẳn tiếng tăm của nó. Nhưng thứ khiến tôi dừng lại là một cái bẫy đo lường: công cụ dòng lệnh tốn 0,86 giây trong khi gửi tin thật chỉ mất 0,89 mili giây. Chênh nhau một nghìn lần, và rất nhiều người đo trúng cái sai.

Message Queue 29/08/2026 7 phút

Tôi gửi 4 khoá vào 4 partition, đinh ninh mỗi ngăn một khoá — kết quả là 5000/0/0/15000

Ba khái niệm topic–partition–offset thường được vẽ bằng hình hộp và mũi tên. Tôi mở thẳng thư mục dữ liệu trên đĩa ra xem, và vấp phải một cái bẫy về key mà không hình vẽ nào cho thấy: hai partition rỗng hoàn toàn, thêm partition cũng chẳng chữa.

Message Queue 29/08/2026 8 phút

Suýt nữa tôi đăng một bài bảo 'nén chẳng đáng' — may là tôi đo lại trên dữ liệu thật

Ai cũng bảo gộp lô là 'đổi độ trễ lấy thông lượng'. Tôi đo thì thấy nó làm độ trễ giảm 1.567 lần, cùng lúc với thông lượng. Còn nén trên dữ liệu ngẫu nhiên lại cho ra tệp to hơn bản không nén — và đó chính là cái bẫy suýt khiến tôi kết luận ngược.

Cơ sở dữ liệu 28/08/2026 12 phút

Chỉ mục nhỏ hơn B-tree 6.850 lần — nhưng xáo trộn thứ tự dòng một cái là nó chậm hơn cả không có chỉ mục

Đo B-tree, BRIN và GiST trên bảng sự kiện 10 triệu dòng trong PostgreSQL: BRIN chỉ 32 kB, gần như miễn phí lúc ghi, nhưng nó đánh chỉ mục bố cục vật lý chứ không phải dữ liệu — xáo trộn thứ tự dòng là nó chậm 234 lần, và chết hoàn toàn trong im lặng.