OpenStack Swift의 Container Sync 성능과 운영 사용성을 개선하기 위해 진행한 프로젝트입니다.
Container Sync 처리 과정에서 발생하는 병목을 줄이기 위해 코드 패치를 적용하고, 운영자가 동기화 상태와 개선 효과를 확인할 수 있도록 모니터링 도구를 구성했습니다.
- 코드 패치 - 순차 처리를 병렬화하고 노드 간 중복 호출을 제거
- 모니터링 - 운영자가 동기화 상태와 개선 효과를 관측할 수 있도록 지표 수집·시각화 수단 제공
전반적인 실험, 문서, 모니터링, 테스트 작업을 브랜치별로 나누어 관리했습니다.
| 브랜치 |
의미 |
main |
프로젝트의 기준 브랜치. 병합된 코드, 문서, 테스트, 모니터링 산출물이 모이는 기본 브랜치 |
experiment |
Container Sync 개선안과 모니터링 구성을 함께 실험한 통합 실험 브랜치 |
| 브랜치 |
의미 |
feature/hjy-sync |
황지영 팀원의 아이디어 테스트: sync_multiprocess.py, task queue, HTTP pool 등 멀티프로세스 기반 Container Sync 개선안 |
feature/jw-sync |
오지우 팀원의 아이디어 테스트: container-sync/sync.py 중심의 Container Sync 개선 작업 |
feature/ljy-sync |
이주영 팀원의 아이디어 테스트: 단계별 버전(sync_parallel_v1~v5)으로 실험·문서화한 병렬 Sync 알고리즘. 최종 아이디어로 채택 |
feature/main2 |
container-sync/sync.py의 초기 개선 로직 |
feature/main3 |
updated_owners 처리 방식 등 feature/main2 이후의 세부 로직 보정 |
feature/main4 |
retry slot 저장 로직과 주석 정리를 포함하여 container-sync/sync.py 개선 |
feature/main4-sync-to-experiment |
feature/main4의 Container Sync 구현을 experiment 브랜치에 적용한 통합용 브랜치 |
| 브랜치 |
의미 |
docs/README |
README와 하위 문서 정리를 위한 문서 작업 브랜치 |
feature/container-sync-monitoring |
Container Sync 상태 수집·시각화를 위한 모니터링 구성, Swift 패치, Grafana/Prometheus/Quickwit 설정 |
monitoring |
운영 관측용 대시보드, sync lag 등 모니터링 지표 설명 정리 |
logger |
retry 상태 완료 시점 로그 추가 |
retry-state-logs |
retry 상태를 추적하기 위한 상세 로그 추가 |
test |
Container Sync 실험과 검증에 필요한 셸 스크립트를 test/ 디렉터리에 추가 |