N° 01 — 목록

'quorum' (2)

  1. Infra Architecture/Foundations

    Foundations - 04. redundancy와 고가용성 패턴

    다섯 개의 백업이 전부 실패할 수 있다 — redundancy의 진짜 조건2017년 1월 31일, GitLab의 한 엔지니어가 피로한 상태에서 데이터베이스 복구 작업을 하다가 잘못된 디렉터리에서 rm -rf를 실행했다. 프로덕션 데이터베이스가 삭제됐다. 놀란 팀이 백업을 확인했다. 백업은 다섯 군데에 있었다 — 디스크 백업, S3 동기화, Azure 동기화, staging 복제, LVM(논리 볼륨 관리자) 스냅샷. 이 중 정상적으로 복구 가능한 건 단 하나, LVM 스냅샷뿐이었다. 디스크 백업은 오래 전부터 실패하고 있었고, S3·Azure 동기화는 설정 오류로 오랫동안 돌지 않았고, staging 복제는 잘못된 데이터를 받고 있었다. 다섯 중 하나만 살아 있었다. 팀은 그 하나로 복구했지만, 문제의 본..

    · 댓글
  2. Software Architecture/Distributed Systems

    Distributed Systems - 06. 복제 패턴

    복제 패턴 — 데이터 복사본의 일관성과 가용성2017년 한 서비스가 읽기 부하를 분산시키려고 PostgreSQL에 읽기 복제본을 3개 추가했다. 마스터 DB의 쓰기는 비동기로 복제본에 복제됐다. 며칠 뒤 사용자 불만이 접수됐다 — "방금 게시글 썼는데 피드에 안 떠요". 조사해보니, 사용자의 쓰기는 마스터에 갔지만, 같은 사용자의 직후 읽기는 복제본에 갔고, 복제 지연(보통 수백 ms, 부하 시 수 초)이 발생했다. 사용자는 자기가 방금 쓴 글이 안 보이는 현상을 겪은 것이다. read-your-writes 위반의 전형적 사례. 복제는 데이터 가용성과 읽기 성능을 높이지만, 복제 지연이라는 새로운 일관성 문제를 만든다. 이 글은 복제의 세 가지 형태와 그 trade-off를 다룬다.비유로 감 잡기 — 사..

    · 댓글