Stable Priority Queue

우선순위 큐는 값보다 비교 정책을 먼저 고정한다

같은 데이터 구조라도 우선순위 방향, 동점 규칙, stale 제거 방식이 없으면 실행 순서가 재현되지 않습니다.

Direction

작을수록 높은가

deadline, cost, score 같은 1차 키의 방향을 코드와 문서에서 일치시킨다.

Tie

동점 처리 기준

seq나 timestamp를 넣어 같은 우선순위에서도 항상 같은 순서를 만든다.

Stale

옛 항목은 언제 버리는가

우선순위 변경은 재삽입하고 pop 시점에 token으로 유효성을 확인한다.

비교 방향min-heap인지 max-heap인지 먼저 테스트한다.
동점 입력같은 prio 여러 개를 넣어 순서를 재현한다.
재삽입새 버전을 넣고 구 버전을 남겨도 안전한지 본다.
처리 로그task, prio, seq, token을 함께 남긴다.

우선순위 큐의 시간복잡도는 단순하지만, 운영 품질은 비교 키가 예측 가능하고 오래된 엔트리를 안전하게 무시하는지에 달려 있습니다.