ACK 전에 꺼진 간식 자판기 · 재고와 커서를 같은 순간에 찍는다 · 퀴즈
퀴즈: 재고와 커서를 같은 순간에 찍는다
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
last=0을 읽은 뒤 다른 연결이 +5를 커밋했고 total=12를 읽었다. 가장 중요한 문제는?
- 재고가 양수라서 JSON 숫자 범위를 넘었다
- WAL에서는 다른 연결의 쓰기를 할 수 없다
- 커서와 재고가 서로 다른 시점의 조합이다
- 스냅샷 version이 자동으로 2가 되어야 한다
WAL에서 조회 전용 export_snapshot을 BEGIN IMMEDIATE로 시작하면 시험의 writer에는?
- 쓰기 자리를 선점해 다른 연결의 커밋 진행을 막을 수 있다
- 별도 연결이므로 같은 파일을 동시에 자유롭게 수정한다
- reader가 COMMIT하기 전에 재고만 먼저 복사하게 된다
- WAL이 자동으로 reader의 트랜잭션을 읽기 전용으로 바꾼다
스냅샷 설치 중 events 삭제 후 프로세스가 종료됐다. 올바른 저장 계약은?
- 재고를 0으로 만들고 다음 이벤트부터 다시 더한다
- 새 커서만 남기고 개별 내역은 다음에 복구한다
- 삭제된 내역은 이미 반영했으므로 오류를 무시한다
- 커밋 전이면 기존 내역·재고·커서를 모두 보존한다
스냅샷 JSON의 체크섬이 전송 전후 같다. 이것으로 증명하지 못하는 것은?
- 지정한 체크섬 함수가 본 바이트의 동일성
- 재고와 커서가 같은 업무 시점에서 추출됐다는 사실
- 수신한 바이트를 다시 해시한 비교 결과
- 전송 전 보관한 기대 해시와 수신 해시의 일치
WAL 모드에서 동작 중인 .db 파일 하나만 복사해 업무 복구를 보장하려 한다. 문제는?
- JSON 형식만 쓰면 어떤 파일 복사도 필요 없다
- 파일명에 epoch를 붙이면 WAL도 자동으로 포함된다
- 확정 내용이 WAL에 있을 수 있어 단독 복사는 충분하지 않다
- 복사 뒤 연결 timeout을 늘리면 누락된 기록이 되살아난다
이 실습이 자동 체크포인트를 끄고 유한한 단일 쓰기 흐름으로 시험하는 이유는?
- 검증할 읽기 시점을 통제하며 동시 체크포인트 범위는 분리한다
- 모든 운영 서비스에서 WAL 크기 증가를 없애기 위해서다
- 여러 호스트가 같은 SQLite 파일을 쓰게 허용하기 위해서다
- 전원 장애에서도 fsync 없이 영속성을 보장하기 위해서다