OLHub

Kho bài viết

Tất cả bài viết

engineering

Vì sao Redis distributed lock vẫn cấp cho hai client khi failover?

Lock ghi vào master Redis nhưng replication bất đồng bộ chưa kịp sang replica; failover bầu replica lên thì key biến mất và client thứ hai xin được lock.

17 tháng 9, 2026 · 16 phút đọc
engineering

Vì sao check trùng bằng SELECT trên nhiều pod vẫn lệch dữ liệu?

Hai pod cùng SELECT check trùng rồi INSERT vẫn lệch. UNIQUE chốt tạo mới; số dư nên cộng/trừ atomic hoặc FOR UPDATE — @Version không phải lựa chọn đầu cho tiền.

17 tháng 7, 2026 · 9 phút đọc
engineeringspring-ban-chat

@Component, @Service, @Repository khác gì, thay được nhau không?

@Service, @Repository, @Controller đều là @Component bên dưới — nhưng chỉ @Repository dịch exception, nên đổi nhầm annotation có thể lặng lẽ làm hỏng app.

7 tháng 7, 2026 · 8 phút đọc
engineering

N+1 query: vì sao một lần xuất sao kê bắn ra 5.001 câu SQL?

Xuất sao kê treo chục giây vì Hibernate bắn 5.001 câu SQL thay vì 1 — còn màn danh sách phân trang thì che giấu bug. Cơ chế N+1 query trong JPA và 4 cách fix.

3 tháng 7, 2026 · 7 phút đọc
engineering

Vì sao @Transactional không rollback dù đã đặt đúng chỗ?

@Transactional nằm trên method mà dữ liệu vẫn lưu một nửa? Vì nó là AOP proxy: self-invocation bỏ qua proxy, còn checked exception mặc định không rollback.

2 tháng 7, 2026 · 6 phút đọc