Repository navigation
Releases: jiwonpapa/jw-power-cache
Releases · jiwonpapa/jw-power-cache
Release list
JW PowerCache v0.4.0
JW PowerCache v0.4.0
9월 7일 API 감사에서 확인한 캐시 정합성·예약 복구 문제를 수정하고, G7 플러그인 업데이트에서 새 버전을 조회할 수 있도록 일반 릴리스로 발행했습니다. 이전에 릴리스로 발행하지 않은 beta.2 변경 사항을 포함하며, 지원 API 경로와 로딩 화면 개선 기능의 범위는 바꾸지 않습니다.
수정 사항
- 원시 본문·파싱된 본문·업로드 입력이 있는 GET/HEAD는 캐시를 우회합니다. 본문에만 있는 게시판 검색 조건이 일반 목록 캐시를 읽거나 오염시키지 못하도록 했습니다.
- API 날짜 표시에 사용하는 G7의 실제 사용자 시간대로 응답을 분리합니다.
- 예약·CLI 재처리 전에 현재 아웃박스 이벤트 토큰을 확인하고, 복구 후 해당 토큰만 해제합니다. 더 최신 쓰기 작업과 진행 중인 제어 상태 초기화는 보존합니다.
- 일반 조회·잠금 획득 후 조회·잠금 대기 후 조회에서 캐시 응답을 읽은 뒤, 그리고 원본 응답 저장 전에 장벽 토큰·사이트 ID·실행 세대·데이터 세대를 재검사합니다.
- 응답 키 정책을
response-api-v4로 변경해 이전 정책으로 저장한 응답을 재사용하지 않습니다.
업데이트 안내
- 버전은
0.4.0이며 최소 G7 버전은7.0.9로 유지합니다. - G7 플러그인 업데이트 기능으로 설치합니다. 새 DB 마이그레이션이나 설정 추가는 필요하지 않습니다.
- 기존 캐시 모드와 로딩 화면 개선 설정은 유지됩니다.
- DB 작업은 끝났지만 남아 있는 이전 아웃박스 장벽도 다음 예약 복구에서 해제합니다. 스케줄러가 실행 중이어야 합니다.
- G7이 사용하는 GitHub
/releases/latest는 초안과 사전 릴리스를 제외합니다. 브랜치 푸시만으로는 업데이트 확인에 새 버전이 표시되지 않습니다. - 베타 접미사는 제거했지만, 기본 G7의 커밋과 훅 호출 사이 장애 구간 및 문서화된 유지보수 요구사항은 그대로입니다. 원자적 정합성 보증을 새로 추가하거나 1.0 목표를 달성했다는 의미는 아닙니다.
업데이트 후 검증
로컬 검증 환경은 공식 G7 56836a2b, PHP 8.5.3, SQLite, Redis 7.4입니다. 테스트 104개·검증문 617개를 실행했으며, G7에 없는 트랜잭션 내부 훅 기능 때문에 예상대로 제외된 테스트는 2개입니다. 세 HIT 경로, 최신 복구 장벽 보존, 릴리스 메타데이터 일치를 회귀 검사합니다.
- 설치 버전이
0.4.0인지 확인합니다. - 진단 헤더가 켜진 상태에서 지원 API의 반복 GET이
MISS-STORED에서HIT로 바뀌는지 확인합니다. - 서로 다른 사용자 시간대의 페이지 날짜가 각각 원본 응답과 일치하는지 확인합니다.
- 예약 복구 후 상태에 미적용 아웃박스나 비상 미복구 장벽이 없는지 확인합니다.
JW PowerCache v0.3.0-beta.1
JW PowerCache v0.3.0-beta.1
JW PowerCache의 첫 오픈소스 베타입니다. 공개 JSON API만 보수적으로 캐시하며 인증·권한·개인화 응답은 항상 우회합니다.
주요 결과
- 원본 변경과 무효화 아웃박스를 동일 트랜잭션에 기록하고, 미적용 이벤트가 있으면 모든 HIT를 차단합니다.
- Redis 제어 키 유실·재시작·롤백·복구 후 과거 실행 세대 응답의 재사용을 차단합니다.
- 관리자 설정, 진단, 무효화, 재처리, 백업 복구 마무리와 릴리스 롤백 절차를 제공합니다.
- 실제 MySQL·Redis 통합 테스트 51개·검증문 440개과 PHP 8.2·8.5, MySQL 8.4, MariaDB 11.4 CI를 통과했습니다.
- 대표 공개 경로에서 BYPASS 대비 p95 28.8
42.4%, 처리량 43.569.0% 개선을 확인했습니다. - 15분 장애 캠페인 7,203요청에서 오류·오래된 응답·개인화 응답 0건을 확인했습니다.
지원 경계
- G7:
jiwonpapa/gnuboard7커밋7d628dc4e57153a6217372a8a4bf8ea2904c680f - PHP: 8.2, 8.5
- 저장소: Redis 권장, file은 단일 노드만 지원
- 캐시 대상: 공개 페이지 상세, 공개 쇼핑몰 카테고리, 허용된 공개 게시판 목록
공식 G7 릴리스에 동일 트랜잭션 데이터 변경 훅이 아직 포함되지 않았으므로 이 버전은 상용 안정판이 아닙니다. 다른 G7 커밋이나 이동 가능한 브랜치 HEAD는 지원 대상으로 간주하지 않습니다.
설치 전 필수 확인
- DB와 플러그인 설정을 백업합니다.
- 지원 G7 커밋을 정확히 고정합니다.
- 플러그인을 설치한 뒤
power-cache:doctor --json이 오류 없이 통과하는지 확인합니다. bypass에서 점검 후active로 전환하고 오류율과 원본 응답 체크섬을 관찰합니다.
배포 ZIP과 SHA256SUMS는 이 릴리스 자산에서 제공하며 GitHub 빌드 출처 증명가 함께 발행됩니다. 세부 운영 절차와 제한은 프로젝트 안내, 지원 범위, 운영 명령을 따르십시오.