Skip to content

Releases: jiwonpapa/jw-power-cache

JW PowerCache v0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 01:03

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 경로, 최신 복구 장벽 보존, 릴리스 메타데이터 일치를 회귀 검사합니다.

  1. 설치 버전이 0.4.0인지 확인합니다.
  2. 진단 헤더가 켜진 상태에서 지원 API의 반복 GET이 MISS-STORED에서 HIT로 바뀌는지 확인합니다.
  3. 서로 다른 사용자 시간대의 페이지 날짜가 각각 원본 응답과 일치하는지 확인합니다.
  4. 예약 복구 후 상태에 미적용 아웃박스나 비상 미복구 장벽이 없는지 확인합니다.

JW PowerCache v0.3.0-beta.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 05:15

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.842.4%, 처리량 43.569.0% 개선을 확인했습니다.
  • 15분 장애 캠페인 7,203요청에서 오류·오래된 응답·개인화 응답 0건을 확인했습니다.

지원 경계

  • G7: jiwonpapa/gnuboard7 커밋 7d628dc4e57153a6217372a8a4bf8ea2904c680f
  • PHP: 8.2, 8.5
  • 저장소: Redis 권장, file은 단일 노드만 지원
  • 캐시 대상: 공개 페이지 상세, 공개 쇼핑몰 카테고리, 허용된 공개 게시판 목록

공식 G7 릴리스에 동일 트랜잭션 데이터 변경 훅이 아직 포함되지 않았으므로 이 버전은 상용 안정판이 아닙니다. 다른 G7 커밋이나 이동 가능한 브랜치 HEAD는 지원 대상으로 간주하지 않습니다.

설치 전 필수 확인

  1. DB와 플러그인 설정을 백업합니다.
  2. 지원 G7 커밋을 정확히 고정합니다.
  3. 플러그인을 설치한 뒤 power-cache:doctor --json이 오류 없이 통과하는지 확인합니다.
  4. bypass에서 점검 후 active로 전환하고 오류율과 원본 응답 체크섬을 관찰합니다.

배포 ZIP과 SHA256SUMS는 이 릴리스 자산에서 제공하며 GitHub 빌드 출처 증명가 함께 발행됩니다. 세부 운영 절차와 제한은 프로젝트 안내, 지원 범위, 운영 명령을 따르십시오.