THẢO LUẬN

Vâng, cũng là 1 vài suy nghĩ của em bất chợt nên em viết ra thôi 😃)). Cảm ơn anh đã theo dõi bài viết của em.

0

Mình thấy link zalo tuy khó hiểu và loằng ngoằng nhưng nhìn còn đáng tin hơn link của bạn =))

0

Không biết là có mấy này luôn! Xưa giờ toàn đè phím

0

Thời của personal AI Agent tới rồi! Không update thì thua!!!

0

NGUYỄN HUY HOÀNG Software Engineer

📞 Phone: 0941 280 073

📧 Email: hhoang02052004@gmail.com

0
Monday, 9:30 a.m.

vẫn hay theo năm tháng, thanks

0
Monday, 8:40 a.m.

Hay quá tác giả ơiii

0

thích mấy bài dạng này . ra thêm nữa nhé b

0

Rất dễ hiểu, cảm ơn tác giả

0

Atomic nữa đi tác giả ơiii

0

Đọc nó sướng gì đâu lun á, rất dễ hiểu

0

NGUYỄN HUY HOÀNG Software Engineer

📞 Phone: 0941 280 073

📧 Email: hhoang02052004@gmail.com

0

NGUYỄN HUY HOÀNG Software Engineer

📞 Phone: 0941 280 073

📧 Email: hhoang02052004@gmail.com

0

Bạn có chia sẻ rằng ASan có thể bị 'im lặng' (bỏ sót lỗi) do trình biên dịch tối ưu hóa (Optimization) mất đoạn code lỗi trước khi kịp kiểm tra. Mình đang thắc mắc trong thực tế, khi fuzzing hoặc tìm 0-day cho các dự án lớn, làm thế nào để chúng ta cân bằng giữa việc bật flag tối ưu hóa (như -O2, -O3) để mô phỏng chính xác hành vi của bản release, với việc giữ lại độ chính xác cao nhất cho ASan (thường khuyến nghị -O1 hoặc -O0)?

0

NGUYỄN HUY HOÀNG Software Engineer

📞 Phone: 0941 280 073

📧 Email: hhoang02052004@gmail.com

0

Câu hỏi cực kỳ thực tế luôn bạn owii. Trong case cháy nhà mà kẹt số lượng partition, trick cứu cánh xịn nhất ở tầng app là áp dụng Multi-threading ngay bên trong Consumer. Bạn có thể tuning tăng tham số max.poll.records và fetch.max.bytes lên để kéo một batch thật to, sau đó ném cục data này vào một Thread Pool (như ExecutorService của Java) để xử lý song song thay vì làm tuần tự, xử lý xong hết batch thì mới commit offset bằng tay. Trong trường hợp luồng log yêu cầu khắt khe về thứ tự (ordering) khiến chạy multi-thread dễ bị sai logic, thì cách chữa cháy nhanh nhất là thiết kế một "Overflow Topic" (với số lượng partition lớn hơn hẳn), cho consumer hiện tại làm nhiệm vụ duy nhất là dump/forward thẳng data sang đó để dọn sạch lag ngay lập tức, rồi mới cho một nhóm consumer mới nhẩn nha xử lý ở phía sau

0

Cảm ơn bạn đã ủng hộ, hay thì share cho mn cùng đọc nhé

0

Case này đúng nỗi đau chung khi phải gánh mấy bảng vài trăm triệu record. Nếu business vẫn ép giữ UX nhảy cóc sang trang N, cách "cứu cánh" ngon nhất là dùng trick Deferred Join: bạn chỉ SELECT id ... LIMIT OFFSET (có đánh index chuẩn thì nó chạy rất mượt), xong lấy tập ID đó JOIN ngược lại bảng chính để lấy full data, còn quả COUNT(*) thì vứt luôn vào Redis cache chứ tuyệt đối không đếm realtime. Tất nhiên, tối ưu nhất vẫn là deal lại với Business để giới hạn chỉ cho hiển thị tối đa khoảng 100 trang đầu (bắt user thêm filter nếu muốn tìm sâu hơn giống Google) hoặc chuyển hẳn sang Cursor-based nếu UI là dạng lướt vuốt. Không biết bảng dữ liệu bạn đang tối ưu có hay bị dính nhiều điều kiện filter động đan chéo nhau không nhỉ?

0

Cảm ơn b. Follow để nhận thông báo khi mình ra bài mới nhé

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí