Skip to content

measure(replication): 반동기 리플리카 2대 — count=1 이면 1대가 죽어도 강등되지 않는다 - #838

Merged
Khyojae merged 1 commit into
mainfrom
measure/semisync-two-replicas
Nov 7, 2026
Merged

Khyojae merged 1 commit into
mainfrom
measure/semisync-two-replicas

Conversation

@Khyojae

@Khyojae Khyojae commented Nov 7, 2026

Copy link
Copy Markdown
Member

요약

리플리카 1대 구성에서 본 «한 대가 죽으면 곧바로 조용히 강등» 을, 리플리카 2대 + wait_for_replica_count=1 이 피하는지 로컬 Docker(8.0.46)에서 확인했다. 버림 1 + 라틴 방격 9판.

팔 count 죽인 것 첫 쓰기 판정 (본판)
P 1 1대 941~1,482ms 4/4 버팀
Q 1 2대 10,878~11,708ms 3/3 강등 (양성 대조군)
R 2 1대 11,058~13,437ms 3/3 강등
  • 되살린 뒤 10/10 자동 복귀 (시작 옵션 방식)
  • 부산물: 강등 뒤에도 clients 가 수 초간 그대로 → 알람은 status·no_tx 에 (추론)

조건

로컬 · 같은 호스트 · docker stop 만. 쓰기 지연 절대값은 docker exec 왕복이 섞여 timeout 여부 판정에만 쓴다. AZ 별 배치 비용은 말하지 못한다.

변경

  • loadtest/results/replication-semisync-two-replicas-2026-11-07/ — rig·compose·산출물·README
  • docs/decisions/replication-lag-and-semisync.md — Q4 아래 결과 · 결정 로그
  • docs/decisions/rpo-rto-targets.md — §8 R3 에 근거 링크

🤖 Generated with Claude Code

리플리카 1대 구성의 «한 대가 죽으면 곧바로 조용히 강등» 을 실무식 구성이 피하는지 로컬(8.0.46)에서 확인.
소스 wait_for_replica_count 와 죽이는 리플리카 수를 팔로 두었다(버림 1 + 라틴 방격 9).

- P count=1 · 1대 죽임: 본판 4/4 버팀 — 첫 쓰기가 timeout 을 안 물고 3건 모두 yes_tx
- Q count=1 · 2대 죽임: 3/3 강등 (양성 대조군 — 계측이 강등을 잡는다)
- R count=2 · 1대 죽임: 3/3 강등 — 2대여도 1대 구성과 같은 위험
- 리플리카 반동기는 시작 옵션이라 10/10 자동 복귀
- 부산물: 강등 뒤에도 소스 clients 가 수 초간 줄지 않았다 → 알람은 status·no_tx 에 (추론)

복제 문서 Q4 와 RPO·RTO §8 R3 에 결과를 연결한다.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 22 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 5156474 and 90a0df1.

Files ignored due to path filters: 3

  • loadtest/results/replication-semisync-two-replicas-2026-11-07/_out/trials.tsv is excluded by !**/*.tsv
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/_smoke/trials.tsv is excluded by !**/*.tsv
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/run.log is excluded by !**/*.log
Files selected for processing: 7

  • docs/decisions/replication-lag-and-semisync.md
  • docs/decisions/rpo-rto-targets.md
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/README.md
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/_out/D0_stage.txt
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/_smoke/D0_stage.txt
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/docker-compose.yml
  • loadtest/results/replication-semisync-two-replicas-2026-11-07/semisync_two_replicas.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@Khyojae

Khyojae commented Nov 7, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Khyojae
Khyojae merged commit 488ba83 into main Nov 7, 2026
3 checks passed
@Khyojae
Khyojae deleted the measure/semisync-two-replicas branch November 7, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant