Lazy update

재삽입 토큰 처리

힙 안의 오래된 항목을 직접 수정하지 않고 새 항목을 넣습니다. 꺼낼 때 버전이나 토큰이 현재 상태와 맞는지 확인해야 중복 처리를 막습니다.

현재 상태 맵

task Apriority 1, token v2 task Bpriority 2, token v1

A의 우선순위가 바뀌면서 v1 항목은 힙에 남아 있지만 더 이상 유효하지 않습니다.

pop 1 (1, A, v1) discard 토큰 불일치
pop 2 (1, A, v2) process 현재 토큰
pop 3 (2, B, v1) process 현재 토큰
비교 키

priority, seq, task_id처럼 동점까지 재현되는 튜플을 사용합니다.

갱신

현재 토큰을 증가시키고 새 항목을 push합니다. 기존 항목은 수정하지 않습니다.

추출

pop 후 토큰을 확인하고 stale이면 다음 항목을 계속 꺼냅니다.