LabHub
배우기 러닝패스 코스

ACK 전에 꺼진 간식 자판기 · 빈 로그는 최신 상태라는 뜻이 아니다 · 퀴즈

퀴즈: 빈 로그는 최신 상태라는 뜻이 아니다

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 원본 floor=4, last=8이고 전광판 last=3이다. 올바른 복구 판단은?

    1. 3번부터 보내 마지막 효과를 다시 확인한다
    2. 전체 로그가 아니므로 무조건 초기화한다
    3. 4번부터 재생해 연속한 효과를 적용한다
    4. 커서를 8로 먼저 옮겨 새 이벤트를 기다린다
  2. 원본 events는 빈 배열이지만 checkpoint는 last=8, floor=9다. last=-1인 새 전광판에는?

    1. 잘린 범위이므로 스냅샷 복구를 요청시킨다
    2. 빈 배열을 성공으로 보내 재고 0을 유지한다
    3. 원본의 last를 -1로 바꾸어 처음부터 시작한다
    4. 마지막 번호 8만 보내 최신 상태로 표시한다
  3. trim(5)로 재생 내역을 줄일 때 함께 바꾸어야 할 것은?

    1. stock.total에서 삭제한 이벤트의 합을 뺀다
    2. checkpoint.last를 보관하는 첫 번호로 바꾼다
    3. 새 이벤트가 0부터 시작하도록 번호를 초기화한다
    4. floor를 6으로 올리고 재고와 last는 유지한다
  4. 마지막 적용 번호 5를 보낸 클라이언트의 재생 쿼리가 WHERE seq >= 5라면?

    1. 5번을 포함하면 스냅샷 없이도 누락을 복원한다
    2. 이미 처리한 5번을 다시 포함하는 경계 오류다
    3. 배치 개수가 같으면 같은 의미의 조건이다
    4. ORDER BY가 있으면 중복 번호는 자동 제거된다
  5. 20개 이벤트가 남았고 replay의 최대 배치가 16개다. 첫 호출의 의미는?

    1. 총 20개 중 16개가 유실되었다는 뜻이다
    2. 서버가 최신이므로 클라이언트도 최신이다
    3. 16개까지 처리하고 후속 호출로 더 따라간다
    4. 4개는 오래된 이벤트이므로 삭제해도 된다
  6. 서버 last=8인데 클라이언트가 같은 세대의 last=12를 보냈다. 적절한 응답은?

    1. 미래 커서 오류로 구분하고 저장소 연결을 조사한다
    2. 서버가 12를 따라잡을 때까지 무기한 대기한다
    3. 서버 last를 12로 덮어써 두 번호를 맞춘다
    4. 빈 배치를 보내 최신 상태라는 성공을 알린다