Skip to content

Fix: 사다리가 캐시에 없는 부분을 발견해도 다시 채우지 않음 - #183

Merged
DO0OG merged 1 commit into
mainfrom
182-fix-ladder-refill-missing
Nov 13, 2026
Merged

DO0OG merged 1 commit into
mainfrom
182-fix-ladder-refill-missing

Conversation

@DO0OG

@DO0OG DO0OG commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • 사다리(Feat: 예열한 캐시를 디스크 읽기 없이 유지하고 중요한 데이터가 마지막에 밀려나게 함 #176)가 예열 목록에서 캐시에 없는 부분을 발견했을 때, 다음 재예열 점검이 그 부분을 다시 채우도록 했습니다. 지금까지는 발견하고 멈출 뿐이었고, 표본 8곳만 보는 재예열 점검은 계속 따뜻하다고 판정해 일부가 식은 상태가 그대로 남았습니다.
  • csharp/src/AsterCache.Service/Solar.cs: 사다리가 디스크 읽기를 실제로 감지하면(페이지 읽기 누계 기준) 게임별 "다시 채워야 함" 표시를 남깁니다. 시간 기준이나 읽기 실패만으로 멈춘 경우에는 표식만 지우고 표시는 세우지 않습니다. 표시가 있는 동안에는 그 게임의 사다리를 다시 시도하지 않습니다.
  • csharp/src/AsterCache.Service/Rewarm.cs: 표시가 있는 게임은 표본 결과와 무관하게 기존 재예열 경로로 넘깁니다. 게임별로 마지막 예열 또는 마지막 시도 뒤 rewarm_minutes 가 지났을 때만 하고, 재예열이 읽기 전에 건너뛰어지면 표시를 유지합니다.
  • csharp/src/AsterCache.Service/Rewarm.Ladder.cs: 표시가 있는 게임을 사다리 틱에서 건너뜁니다.

알아 둘 점

  • 근거: 설치본에서 두 게임 모두 rewarm check: warm (0/8 samples …) 직후 ladder needs disk reads (…), skipped, 37 / 21 MiB read from disk 가 10분마다 되풀이됐습니다.
  • 재예열 스트림은 캐시에 있는 부분을 건너뛰고 빠진 부분만 디스크에서 읽습니다. 사다리가 재예열을 직접 부르지는 않으며, 채우기 빈도는 게임당 재예열 점검 주기(기본 10분)에 한 번을 넘지 않습니다. 재예열 점검의 조건(게임 실행 중 아님, 디스크가 바쁘지 않음, 예산 등)도 그대로 따릅니다.
  • 자동 모드가 꺼져 있거나 rewarm_minutes 가 0 이면 아무 일도 하지 않습니다.
  • 설치본에서의 동작은 아직 확인하지 않았습니다.

Test plan

Closes #182

재예열 점검은 표본 8곳만 보므로 예열 목록의 일부가 캐시에서 밀려나 있어도 따뜻하다고
판정했습니다. 사다리는 목록 전체를 만지며 캐시에 없는 부분을 정확히 발견하지만, 발견하면
멈추고 재예열 점검에 맡길 뿐이었고, 재예열 점검은 같은 표본으로 다시 따뜻하다고 했습니다.
그래서 일부가 식은 상태가 남았고 10분마다 같은 일이 되풀이됐습니다.

- 사다리가 디스크 읽기를 실제로 감지한 게임에 "다시 채워야 함" 표시를 남김
- 재예열 점검은 그 표시가 있는 게임을 표본 결과와 무관하게 다시 예열함 (예열 스트림은 캐시에 있는 부분을 건너뜀)
- 표시로 인한 재예열은 게임별로 마지막 예열이나 마지막 시도 뒤 rewarm_minutes 가 지났을 때만 함
- 재예열이 읽기 전에 건너뛰어지면 표시를 유지하고, 실제로 읽었을 때만 지움
- 표시가 있는 동안에는 그 게임의 사다리를 다시 시도하지 않음
- 시간 기준이나 읽기 실패만으로 멈춘 경우에는 표시를 세우지 않음

Issues #182
@DO0OG
DO0OG merged commit a19482f into main Nov 13, 2026
1 check passed
@DO0OG
DO0OG deleted the 182-fix-ladder-refill-missing branch November 13, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix: 사다리가 캐시에 없는 부분을 발견해도 다시 채우지 않음

1 participant