Repository navigation
[Test] 격리 복원에서 업로드 손실과 문서 기능 재개 시간 계측 - #562
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 |
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.
목적
Closes #560
#561의 판정 계약으로 실제 OpenSQL·GCS 복원을 실행하고, HTTP 성공 응답이 어디까지 복원됐는지와 문서 기능을 다시 확인하기까지의 시간을 같은 회차에서 연결합니다.
검증 절차는 PASS지만 무손실 복원은 아닙니다. 성공 응답 65건 중 33건 복원·32건 DB 미복원입니다. 기능 코호트 5건과 문서 기능 6종은 통과했습니다. 후속 Worker 처리로 최초 손실 기록을 바꾸지 않았습니다.
전체 결과·그림·증거 색인 · 실제 절차 · 준비·재시도
테스트 환경
3bff887a5f6abdf4155957a658599f8f0366a141JAR. 제품 Java 코드 변경 없음file·rsync포함. 영구 replication slot·Patroni 설정 변경 없음실행 ID는
DR-RESTORE-20261018-FORMAL1입니다. 준비는 2026-10-18 12:32 UTC 이후, 요청 구간은 12:49–13:01 UTC(한국 시각 21:49–22:01)입니다. 공개 앱·개인 환경 파일·OpenProxy 경로를 전환하는 시험은 아닙니다. Ollama 생성 답변은 범위 밖입니다.테스트 방법
PROCESSING·Attempt 1개·Chunk 3개·Embedding 0개였습니다. Worker를 끈 API로 기준 백업을 만들고 Barman 24/24·백업 DONE·verify 종료 코드 0을 확인했습니다.user_id + request_key로 응답 ID·관계를 조회하고 보존 객체 바이트를 대조했습니다. 최초 감사 단독 저장·fsync 뒤에만 복원 DB 버킷 재지정·Flyway·Worker를 허용했습니다.관측 결과
T0는 13:01:13.892692 UTC, cutoff는 13:01:24.539 UTC로 10.646초 차이입니다. 복원 연산자 자체는 100.672초이며 전체 기능 복구 시간과 구분합니다.
검색은 장애 전에 실제 합성 Chunk를 고정하고 기대 문서 포함을 검사했습니다. 정확한 순위·유사도 점수·답변 문장 일치는 요구하지 않았습니다. 기능 검사는 순차 실행이므로 실제 확인 시각이며, 더 이른 최소 준비 시각을 추정하지 않습니다. 새 인덱싱에는 복원된 대기 Job 처리 시간이 포함됩니다.
최초/최종 감사·이벤트·동결 입력·실패 회차·정리 근거는 결과 아티팩트 표에 연결했습니다. 전체 비공개 준비 자료를 일괄 공개하지 않고 필요한 36개만 선별했습니다. 파일별 해시·알려진 내부 식별자·이메일·IP·경로·인증 패턴 검사를 수행했고, 공개 사본으로 최초 감사 65건을 동일하게 재계산했습니다.
검증 과정에서 확인된 사항
0/25000000은 동결한 마지막 WAL 끝과 일치합니다. 마지막 재생 트랜잭션은 12:54:21.655964 UTC입니다. 수신·archiver·외부 전송 간 최신성 차이의 세부 원인은 분리하지 않았습니다. 이 실험을 RPO 300초 달성이나 무손실 백업으로 보고하지 않습니다.INDEXING·버전EMBEDDING등을 거부했습니다. 문서·버전·Job 목록을 구분했고, Java enum 18종·다른 엔티티 상태 3종을 독립 입력으로 시험했습니다. 수정 전 4개 메서드 실패 → 수정 후 40/40 통과입니다.DR-RESTORE-20261018-REHEARSAL1은 OpenSQL 기동에서 중단됐고 최초 감사·기능 시험을 못 했습니다. 기동 진단 R1은FATAL: license is invalid를 확인했으며, R2는 같은 호스트·백업 바이트에서 기존OPENSQL_LICENSE_PATH만 전달해 실제 기동을 확인했습니다. 라이선스 수정·재발급·제품 결함/만료 판정은 하지 않았습니다. 첫 리허설에서 미수집한 stderr를 후속 오류로 소급 채우지 않았습니다.file도구 누락, chunked body 프록시, 초기 JVM readiness 한도, 원인 미확정 새 SQL 연결 오류를 구분했습니다. 상세.env두 파일이 같고 사용자용 원본 버킷은 보존했습니다. 원래 ADC를 철회하지 않았습니다. GCS 활성 객체·시험 버킷을 삭제했어도 soft delete 정책에 따른 보존 세대가 남을 수 있으므로 물리 소거라고 하지 않습니다.리뷰 초점은 상태 계약의 엔티티 경계, 최초 감사 후에만 활성화된 순서, 32건 미복원을 숨기지 않은 판정, T0/cutoff 분리, 정리 증거입니다.