Sequence · Distributed lock

Fencing token: tài nguyên đích chặn người giữ khoá cũ

Fencing token chặn ghi cũ sau khi khoá hết hạn Process A lấy khoá kèm token 41 rồi bị GC pause; khoá hết TTL, Process B lấy được khoá kèm token 42 và ghi báo cáo, FencingToken thành 42; A tỉnh dậy ghi với token 41, điều kiện FencingToken nhỏ hơn 41 sai nên UPDATE không ảnh hưởng hàng nào. A bị dừng GC pause Khoá hết TTL WHERE FencingToken < 41 → sai LẤY KHOÁ TOKEN 41 LẤY KHOÁ TOKEN 42 GHI · TOKEN 42 1 HÀNG GHI · TOKEN 41 0 HÀNG · BỊ CHẶN Process A worker Redis lock:fence:report-gen Process B worker Reports SQL · FencingToken CHÚ GIẢI Lời gọi Kết quả trả về Trạng thái / điều kiện Ghi cũ bị tài nguyên đích từ chối © tiennhm