Repository navigation
[Fix] 필요한 WAL의 보관·외부 복사 완료 경계 검증 - #564
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
Author
변경 검토 기록검토 대상 head: 작성자가 전체 diff를 다시 검토했습니다. 별도 사람의 승인이나 자동 리뷰 완료로 표현하지 않습니다. CodeRabbit은 저장소 조건으로 자동 리뷰를 건너뛰었다고 응답했습니다.
현재 검토에서 병합을 막을 코드 문제는 발견하지 못했습니다. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
목적
Refs #563
앞선 #562는 업로드 성공 응답 65건 중 33건만 복원했습니다. 외부에 동결된 WAL 끝까지만 재생됐으므로, 외부 복사의 완료 시각과 업무 데이터의 보존 범위가 다른 이유를 먼저 조사했습니다.
기존 격리 시험은
pg_switch_wal()뒤 2초 대기와archive-wal한 번의 종료 코드 0으로 충분한 보관을 추정했습니다. 이번 변경은 필요한 WAL 파일이 실제로 보관되고 외부에서도 일치하는지 확인하는 선택적 완료 계약을 추가합니다. 공개 설정·개인 환경 파일은 변경하지 않습니다.테스트 환경
.env와 프런트엔드 개인 설정은 유지했습니다.테스트 방법
StreamingWalArchiver.get_next_batch()를 네트워크 없이 읽고 공식 동일 버전 소스와 대조했습니다.sync --required-wal <24자리 WAL> --wait-timeout 120은 정확한 완성 파일만 기다리고, 기존 복사 뒤 원격 크기·CRC32C를 대조합니다. 실패 시 이전 성공 시각을 유지합니다.scripts/opensql/barman_offsite_sync.pyscripts/opensql/test_barman_offsite_sync.py.github/workflows/ci.ymldocs/design/issue-563-wal-offsite-freshness.mddocs/test-results/wal-offsite-boundary-20261018/관측 결과
WAL-ARCHIVE-BOUNDARY-20261018-LIVE1WAL-ARCHIVE-BOUNDARY-20261018-LIVE2WAL-FRESHNESS-UNIT-20261018-R1WAL-RECOVERY-CONTRACT-20261018-R2상세 결과와 개별 증거
검증 과정에서 확인된 사항
.partial이 없을 때 마지막 완성 파일을 streaming에 보류할 수 있습니다. 이 보호 동작은 제거하지 않았습니다. 수정 대상은 시험·호출자의 완료 판정입니다.gsutil syncCLI를 클라우드에서 실행한 증거는 아닙니다. 원격 메타데이터 계약은 단위 시험이며, 전체 복구 재시험에서는 실제 GCS REST의 고정 generation 바이트를 읽어 대조합니다.