[Test] OpenProxy 라우팅·세션 계약과 설치 설정 기록 - #355
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: DocGrid/docgrid/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 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 #354
기존 Rocky Linux 9.7 x86_64 OpenSQL 3노드에서 OpenProxy A/B의 라우팅·세션 계약과 HA 시험에 필요한 설치·실행 설정을 검증했습니다. 시험 SQL은 0행 UPDATE와 rollback을 사용했고, DB 데이터·라이선스·앱 운영 URL을 영구 변경하지 않았습니다.
검증 범위와 구현
openSqlOpenProxyContractTest: 자동 커밋 조회, JDBC read-only/read-write 트랜잭션, Worker 잠금 조회,prepareThreshold=5/1반복, SQL-levelPREPARE/EXECUTE/DEALLOCATE, JVM·DB 날짜 경계를 A/B에서 별도로 확인합니다.capture_live_ha_contract.sh: 승인된 GCP 계정·프로젝트인지 먼저 확인하고, 기존 세 VM의 컨테이너·호스트·프록시 관리값을 자동 수집합니다.capture_ha_contract.py: OpenSQL/OpenProxy/Patroni/etcd/PostgreSQL 버전, etcd 실행 멤버와 시간 설정 입력, Patroni 동적 설정, OpenProxy 설치·관리 설정, Docker/호스트 실행 감독과 OS 시간대를 허용 목록으로 비식별화합니다. 노드·관리 결과의 canonical SHA-256과 호스트명 없는 JUnit 요약을 생성합니다.실측 결과
FOR UPDATE SKIP LOCKED는 primary에 도달했습니다. Spring@Transactional전체 경로를 이 시험에서 실행한 것은 아닙니다.prepareThreshold=5/1× 15회에서 결과·server prepare·서버 준비문 존재를 확인했습니다. SQL-level 준비문은 별도로 같은 트랜잭션 안에서 통과했습니다.Asia/Seoul, 세 VM·컨테이너는UTC+0000에서 양 프록시의 자정 경계 왕복이 일치했습니다.0a0b86eff71c4c24740a99ea0f334fca70e5c11e1a813c3a3bc646a825549794입니다../backend/gradlew -p backend test --offline는 1,124개 중 104개 실패로 전체 통과하지 않았습니다. 여러 PostgreSQL 통합 테스트가 로컬 DB 연결 거부를 기록했고 현재 로컬 Docker 데몬도 실행되지 않습니다. 모든 실패가 같은 원인이라고 단정하지 않으며, 로컬 인프라 복구 후 별도 재실행이 필요합니다.리뷰 시 확인할 한계
이번 PR은 장애 전환을 실행한 PR이 아닙니다. 서로 다른 DB backend로의 prepared statement 이동, OpenProxy 프로세스 장애, Patroni 리더 상실, 물리 standby별 분산과 Hikari/JPA 무중단성은 후속 시험입니다. 설치 TOML의 prepared cache 크기 1000과
SHOW CONFIG풀 값 0의 우선순위도 공급사 확인이 필요합니다. 이전 캐시 카운터 파일은 이번 최종 JUnit 실행과 시점이 다르므로 수치를 합쳐 해석하지 않습니다.