TIL

15장 구글 드라이브 설계

설계 범위 예시

개략적 추정치

구글 드라이브 개략적 설계안

파일 업로드 API

파일 다운로드 API

파일 갱신 히스토리 API

한 대 서버의 제약 극복

동기화 충돌

개략적 설계 아키텍처

구글 드라이브 상세 설계

블록 저장소 서버

높은 일관성 요구사항

업로드 절차

파일 메타데이터 추가

  1. 클라이언트가 새 파일 메타데이터 추가 요청 전송
  2. 새 파일 메타데이터를 DB에 저장하고 업로드 상태를 대기 중으로 변경
  3. 새 파일이 추가되었음을 알림 서비스에 통지
  4. 알림 서비스는 관련 클라이언트에게 파일이 업로드되고 있음을 알림

파일을 클라우드 저장소에 업로드

  1. 클라이언트 1이 파일을 블록 저장소 서버에 업로드
  2. 블록 저장소 서버는 파일을 블록 단위로 분할, 압축, 암호화 후 클라우드 저장소에 전송
  3. 업로드 후 클라우드 저장소는 완료 콜백을 호출하고 콜백을 API 서버로 전송
  4. 메타데이터 DB에 기록된 해당 파일 상태를 완료로 변경
  5. 알림 서비스에 파일 업로드 완료 통지
  6. 알림 서비스는 관련 클라이언트에게 파일 업로드 완료를 알림

다운로드 절차

알림 서비스

저장소 공간 절약

장애 처리