Repository navigation
Conversation
|
리뷰 완료 — Blocker 0건, Major 2건, Minor 0건, Question 0건 |
cd19bea to
ad57e65
Compare
|
지적 사항 없음 |
| ### 기존 명령과의 연계 | ||
|
|
||
| `upgrade`를 지원하면서 클러스터 안에 여러 버전이 함께 존재할 수 있습니다. 이에 맞춰 기존 명령의 버전 처리도 다음과 같이 바뀝니다. | ||
|
|
||
| | 명령 | 변경 내용 | | ||
| |-------------|--------------------------------------------------------------------------------------------| | ||
| | `deploy` | 배포 버전을 명령 인자 대신 토폴로지의 `globalConfig.version`으로 지정합니다. 아래 [배포 버전 지정 방식 변경 (예정)](#배포-버전-지정-방식-변경-예정)을 참고하세요. | | ||
| | `start` | 캐시 서버별로 기록된 버전으로 시작합니다. | | ||
| | `stop` | 캐시 서버별로 기록된 버전의 pid 파일(`<path>/<version>/memcached-<port>.pid`)로 중지합니다. | | ||
| | `delete` | 실행 여부 확인과 `--purge` 대상 경로를 캐시 서버별 버전 기준으로 판단합니다. | | ||
| | `list` | 버전 혼용 여부와 버전별 캐시 서버 수를 표시합니다. | | ||
| | `status` | 기존 출력에 캐시 서버별 실행 버전과 업그레이드 진행·실패 단계를 추가합니다. | |
There was a problem hiding this comment.
수정해야하는 작업 기록용으로 코멘트 남깁니다.
There was a problem hiding this comment.
-
start에 버전 인자를 추가하고, stop+start 하는 것과
upgrade 명령의 동작에는 어떤 차이가 있나요? -
내부 토폴로지의 버전은 언제 사용(변경)되나요?
There was a problem hiding this comment.
start는 binary 파일이 위치에 없는 경우 수행되지 못합니다.
upgrade는 community의 경우 새로운 버전의 바이너리 파일 준비 -> 재구동 이 합쳐진 것이고, enterprise의 경우 새로운 버전의 바이너리 파일 준비 -> 그룹 단위의 재구동 이 합쳐진 형태입니다.
ad57e65 to
0a4ce54
Compare
|
지적 사항 없음 |
|
@jhpark816 업그레이드 인터페이스 확인해주시면 됩니다. |
|
@namsic |
| |-------------|--------------------------------------------------------------------------------------------| | ||
| | `deploy` | 배포 버전을 명령 인자 대신 토폴로지의 `globalConfig.version`으로 지정합니다. 아래 [배포 버전 지정 방식 변경 (예정)](#배포-버전-지정-방식-변경-예정)을 참고하세요. | | ||
| | `start` | 캐시 서버별로 기록된 버전으로 시작합니다. | | ||
| | `stop` | 캐시 서버별로 기록된 버전의 pid 파일(`<path>/<version>/memcached-<port>.pid`)로 중지합니다. | |
There was a problem hiding this comment.
pid는 <path>/memcached-port.pid 처럼 한 개 경로 공유해도 될 것 같습니다.
There was a problem hiding this comment.
원래 구조에서 <path>/<version>/memcached-<port>.pid로 저장하고 있는데, 이부분은 향후 수정하면 될 것 같습니다.
| ``` | ||
|
|
||
| - `--group`으로 업그레이드할 replication group을 지정합니다. 여러 group을 지정하면 나열한 순서대로 업그레이드합니다. | ||
| - `--node`는 사용할 수 없습니다. |
There was a problem hiding this comment.
@namsic
enterprise에서 --node 제공하지 않아도 되는지 검토 바랍니다.
There was a problem hiding this comment.
현재 인터페이스를 기준으로 할 때,
복제에서 upgrade --node는 어색해 보입니다.
-
slave는 그대로 두고 master node만 재시작하는 것은 권장하는 운영 방식이 아니고,
-
slave node만 업그레이드 하는 동작은 가능하겠으나 이를 위해
--node를 별도 제공할 이유는 크지 않습니다. -
standalone master의 경우에도
--node제공하지 않고--group으로 업그레이드하도록 할 수 있을 것입니다.
There was a problem hiding this comment.
slave만 업그레이드한 후에 며칠 상황을 지켜보는 경우가 있을까요?
There was a problem hiding this comment.
slave만 업그레이드한 후에 며칠 상황을 지켜보는 경우가 있을까요?
old master → new slave 상태를 유지하는 것인데,
테스트 목적이 아닌 실 서비스 환경에서 이 상태로 지켜볼 이유는 없어 보입니다.
버전 업그레이드 방식에 고정된 가이드라인을 둘 것이면 그 한 가지에 맞춰서 동작하도록 하면 됩니다.
그 외 변주가 필요한 때는 arcusctl 없이 사용자가 직접 조작하는 것으로 합니다.
그렇지 않고 arcusctl로 여러가지 업그레이드 시나리오에 모두 대응할 수 있도록 해야 한다면
upgrade 하나에서 인자로 처리하는 것에는 한계가 있을 것으로 보이고,
개별 노드 단위로 운영자가 아래 작업을 매뉴얼하게 수행할 수 있도록 구분해야 할 것 같습니다.
- 장비에 신규 버전 설치
- 기존 노드 개별 중지 및 재구동
- 재구동 대상 노드 운영자가 직접 선택
(일부 노드 선택 및 업그레이드 간격 운영자가 직접 결정) - 재구동 시 사용할 버전 운영자가 직접 선택
(문제 생겨 롤백하는 상황 등 고려하면, 신/구 버전을 선택 구동할 수 있어야 함)
- 재구동 대상 노드 운영자가 직접 선택
0a4ce54 to
794005c
Compare
|
deploy 명령을 바꿀 필요는 없을 것 같아 기존대로 두었습니다. |
|
리뷰 완료 — Blocker 0건, Major 2건, Minor 0건, Question 1건 [Question] |
794005c to
d6da01d
Compare
|
리뷰 완료 — Blocker 0건, Major 1건, Minor 1건, Question 0건 [Minor] 문서 상단 "운영 흐름"(11행)과 "명령 요약" 표(21~28행)에 이번에 추가한 |
Draft of the rolling upgrade interface for review before implementation. Existing command docs still describe current behavior; planned changes live only in the `cluster upgrade` section. - Targets must be given explicitly with `--node`, `--group` or `--all` to prevent accidental cluster-wide upgrades. `--all` skips targets already running the target version. - Show a plan table with per-target current/target version and action. - Install target binaries on all hosts before stopping any server. - Plan to move the deploy version into `globalConfig.version`. - Plan to show per-server versions in `cluster status`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
d6da01d to
7b25565
Compare
|
@jhpark816 최종 수정했습니다. 다시 리뷰 부탁드립니다. |
|
리뷰 완료 — Blocker 0건, Major 0건, Minor 1건, Question 1건 |
|
@oliviarla |
|
합의가 끝나면 close하고 이 커밋 기준으로 @f1v3-dev 님이 구현해주시면 됩니다. |
🔗 Related Issue
⌨️ What I did