LabHub
배우기 러닝패스 코스

ACK 전에 꺼진 간식 자판기 · 재고와 커서를 같은 순간에 찍는다 · 퀴즈

퀴즈: 재고와 커서를 같은 순간에 찍는다

LabHub 에서 이어서 보기

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

  1. last=0을 읽은 뒤 다른 연결이 +5를 커밋했고 total=12를 읽었다. 가장 중요한 문제는?

    1. 재고가 양수라서 JSON 숫자 범위를 넘었다
    2. WAL에서는 다른 연결의 쓰기를 할 수 없다
    3. 커서와 재고가 서로 다른 시점의 조합이다
    4. 스냅샷 version이 자동으로 2가 되어야 한다
  2. WAL에서 조회 전용 export_snapshot을 BEGIN IMMEDIATE로 시작하면 시험의 writer에는?

    1. 쓰기 자리를 선점해 다른 연결의 커밋 진행을 막을 수 있다
    2. 별도 연결이므로 같은 파일을 동시에 자유롭게 수정한다
    3. reader가 COMMIT하기 전에 재고만 먼저 복사하게 된다
    4. WAL이 자동으로 reader의 트랜잭션을 읽기 전용으로 바꾼다
  3. 스냅샷 설치 중 events 삭제 후 프로세스가 종료됐다. 올바른 저장 계약은?

    1. 재고를 0으로 만들고 다음 이벤트부터 다시 더한다
    2. 새 커서만 남기고 개별 내역은 다음에 복구한다
    3. 삭제된 내역은 이미 반영했으므로 오류를 무시한다
    4. 커밋 전이면 기존 내역·재고·커서를 모두 보존한다
  4. 스냅샷 JSON의 체크섬이 전송 전후 같다. 이것으로 증명하지 못하는 것은?

    1. 지정한 체크섬 함수가 본 바이트의 동일성
    2. 재고와 커서가 같은 업무 시점에서 추출됐다는 사실
    3. 수신한 바이트를 다시 해시한 비교 결과
    4. 전송 전 보관한 기대 해시와 수신 해시의 일치
  5. WAL 모드에서 동작 중인 .db 파일 하나만 복사해 업무 복구를 보장하려 한다. 문제는?

    1. JSON 형식만 쓰면 어떤 파일 복사도 필요 없다
    2. 파일명에 epoch를 붙이면 WAL도 자동으로 포함된다
    3. 확정 내용이 WAL에 있을 수 있어 단독 복사는 충분하지 않다
    4. 복사 뒤 연결 timeout을 늘리면 누락된 기록이 되살아난다
  6. 이 실습이 자동 체크포인트를 끄고 유한한 단일 쓰기 흐름으로 시험하는 이유는?

    1. 검증할 읽기 시점을 통제하며 동시 체크포인트 범위는 분리한다
    2. 모든 운영 서비스에서 WAL 크기 증가를 없애기 위해서다
    3. 여러 호스트가 같은 SQLite 파일을 쓰게 허용하기 위해서다
    4. 전원 장애에서도 fsync 없이 영속성을 보장하기 위해서다