본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

target 은 독립적으로 진행한다

~9 min · independent-targets, partial-outcomes, isolation

Level 0Lone Machine
0 XP0/37 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"기계 일곱은 성공, 하나는 자고, 하나는 고장. 그건 답 세 개야. 하나로 평균 내지 마."

기계 아홉, 이야기 아홉

fleet 전체 operation 은 행동 하나처럼 보이지만, 사실은 나란히 도는 독립된 N 개야. target 마다 state machine 을 지나는 자기 길, 자기 event, 자기 결말이 있어. 전체를 성공-아니면-실패 하나로 다루면, fleet 작업을 제정신으로 유지하는 단 하나의 성질을 버려. 기계들은 운명을 안 나눈다는 성질.

뭉개면 거짓말이 돼

업그레이드가 호스트 일곱 성공, 하나 자서 시작도 안 됨, 하나 실패로 끝났다 쳐. 이걸 판단 하나로 뭉개면 거짓말 둘 중 하나를 고르게 돼. failed 라 하면 늑대야 외친 거야. 일곱 대는 멀쩡해. succeeded 라 하면 늑대를 숨긴 거고. 한 대는 진짜 고장이잖아. 어느 쪽이든 중요한 숫자가 사라져.

결과 셋, 따로

정직한 모양은 이걸 갈라둬. 일곱 succeeded, 하나 pending(자는 호스트는 죽은 게 아니라 나중에 이어서 할 일), 하나 failed(자기 로그를 가진 수리 작업). 이제 대시보드가 한눈에 진실을 말하고, 결말마다 맞는 다음 행동을 가리켜. 일곱한텐 할 일 없음, 하나는 깨워서 이어하기, 다른 하나는 조사하기.

고립된 실패는 campaign 실패가 아냐

target 이 독립적이니까, 실패한 호스트 하나는 건강한 peer 를 중간에 취소하지 않고 수리 작업이 돼. 성공할 예정이던 일곱은 여전히 성공하고. 진짜 systemic 한 실패, 그러니까 남은 target 이 죄다 같은 벽에 부딪칠 거라 보이는 종류만 시작 안 한 작업을 멈춰. 고장난 기계 하나는 수리, 공유된 원인은 정지.

독립된 운명을 평균 내지 마. 여러 기계에 대한 판단 하나는 오경보 아니면 은폐고, 진실은 호스트 수만큼 칸이 있어.

Code

target별 결과, 절대 뭉개지 않음·python
results = {
    "office":  "succeeded",
    "server":  "succeeded",
    "laptop":  "succeeded",
    # ...넷 더 succeeded...
    "sleeper": "pending",   # 자서 시작 안 됨 -> 이어서 할 일, failed 아님
    "broke":   "failed",    # 수리 작업, 자기 event + 로그 가짐
}

# 틀림: campaign = "failed" if any(r != "succeeded") else "succeeded"
#        -> 7 승을 숨기거나 sleeper 1 로 늑대야 외침. 한 단어가
#           아홉 진실을 못 담아.

# 맞음: histogram 을 보고하고, 결말마다 자기 다음 step 을 몰게 해.
summary = { "succeeded": 7, "pending": 1, "failed": 1 }
# needs_attention 은 'failed' 만. 'pending' 은 깨워서 이어하기. 일곱은 그냥 끝.

External links

Exercise

명령 하나를 기계 다섯 대에 돌렸는데 셋은 성공, 하나는 skip(offline, 예상됨), 하나는 error 났다고 쳐. 결과를 독립된 다섯 칸으로 쓰고, 누군가 잘못 뭉갤 단어 하나짜리 요약도 써봐. 뭉갠 버전은 어떤 결정을 불가능하게 만들어?
Hint
뭉갠 'failed' 는 셋이 끝났고 하나는 일부러 skip 됐다는 걸 숨겨. 그래서 읽는 사람이 전부 재실행할지(낭비) 그 하나만 고칠지 못 정해. 독립성 덕에 다음 행동이 full retry 대신 외과 수술처럼 정확해지는 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.