/////

2026-05-11 인수창고 ZaraServer staging 수집 전송 자동화 구현

2026-05-11 13:43 KST 기준, 인수창고 수집 파이프라인을 ZaraServer 직접 쓰기 대신 WSL ext4 staging에서 수집·AVIF 처리한 뒤 완성본만 ZaraServer 최종 저장소로 전송하는 방식으로 바꾼 초기 구현 기록이다.

/////

2026-05-11 인수창고 ZaraServer staging 수집 전송 자동화 구현 이력

2026-05-11 13:43 KST 기준, 인수창고 수집 파이프라인을 ZaraServer 직접 쓰기 대신 WSL ext4 staging에서 수집·AVIF 처리한 뒤 완성본만 ZaraServer 최종 저장소로 전송하는 방식으로 바꾼 초기 구현 기록이다.

구현 내용#

  • 웹툰 대상 선정기 prepare_site_collection_targets.py--extra-webtoon-root를 추가해 staging 수집 시 최종 ZaraServer 보유분도 중복 제외하도록 했다.
  • 만화 수집기 ililtoon_collector_v2.py--existing-root를 추가해 staging과 최종 저장소를 함께 확인하고 이미 완료된 만화를 건너뛰도록 했다.
  • tools/transfer_completed_media_to_final.py를 추가했다. 완성된 작품만 _incoming_media/<category>/<slug>.partial...로 복사하고, 파일 수/바이트 검증 뒤 최종 자료/<category>/<slug>로 rename한 다음 staging 원본을 삭제하는 전송기로 설계했다.
  • run_media_collection_pipeline.shFINAL_DATA_ROOT, TRANSFER_AFTER_BATCH, INCOMING_ROOT를 추가했다. 배치 수집과 AVIF 완료 뒤 category별 전송기를 실행하도록 했다.
  • run_next_site_overall_popular_round.shDATA_ROOT를 staging으로 쓰면서 FINAL_DATA_ROOT/웹툰을 대상 제외 루트로 넘기고, AVIF도 staging root에 대해 실행하도록 수정했다.
  • cutover_to_zaraserver_after_current.sh는 cutover 후 DATA_ROOT=/home/insu/insu-warehouse-staging/자료, FINAL_DATA_ROOT=/mnt/f/insu-warehouse-data/자료, TRANSFER_AFTER_BATCH=1로 pipeline을 실행하도록 했다. 당시 기본 시작값은 웹툰 collect batch 8, image concurrency 5, AVIF concurrency 6이었다.

당시 검증#

  • 수정된 Python 파일은 py_compile을 통과했다.
  • 수정된 shell 파일은 bash -n을 통과했다.
  • ZaraServer healthcheck의 write/sha1/rename/read가 통과했다.
  • 당시 새 cutover watcher는 setsid로 실행되어 VHDX 웹툰 collector 종료를 기다리고 있었다.

현재 해석#

이 노트는 2026-05-11 초기 전환 구현 이력으로 보존한다. 기존 본문에 있던 watcher PID와 ‘현재 대기 중’ 표현은 시점 의존 운영 상태였으므로 최신 상태 주장으로 재사용하지 않는다.

후속 기록에 따르면 같은 날 밤 staging 전송 정책은 AVIF 일부 실패 작품도 manifest가 완성되면 전송하고 AVIF retry 로그를 남기는 방식으로 바뀌었으며, transfer_completed_media_to_final.py.tmp, .partial.*, .rsync-partial 같은 임시 파일을 전송 통계와 copytree에서 제외하도록 조정됐다. 2026-05-12에는 직렬 staging 큐가 웹툰/만화 병렬 staging 레인으로 전환됐고, 2026-05-19에는 AVIF/전송 단계가 실행되지 않던 shell set -e 관련 후처리 문제가 별도로 수정됐다.

Sagwan Maintenance 2026-06-05#

  • verdict: revise
  • note: 핵심 구현 사실은 유지하되, PID·현재 대기 상태 등 시점 의존 내용을 역사적 당시 상태로 낮추고 후속 staging/AVIF/병렬 레인 기록과 연결했다.

Reviews

Support
0
Dispute
1
Neutral
0
Visible Reviews
1