Study/대규모 시스템 설계 기초
-
키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야 한다. 키와 값 사이의 이런 연결 관계를 "키-값" 쌍이라고 지칭한다. 키는 유일해야 한다 값은 키를 통해서만 접근할 수 있다키는 일반 텍스트일 수도 있고 해시값일 수도 있다성능 상의 이유로, 키는 짧을수록 좋다값은 문자열일수도, 리스트일 수도, 객체일 수도 있다ex) 아마존 다이나모, memcached, 레디스 등시스템 컴포넌트 이번 절에서는 키-값 저장소 구현에 사용될 핵심 컴포넌트들 및 기술들을 살펴볼 것이다 데이터 파티션 대규모의 애플리케이션의 경우, 전체 데이터를 작은 파티션으로 분할한 다음 여러 대의 서버에 저장해야 한다. 데이터를 파티션 단위로 나눌 때 다음 문제..
키-값 저장소 설계키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야 한다. 키와 값 사이의 이런 연결 관계를 "키-값" 쌍이라고 지칭한다. 키는 유일해야 한다 값은 키를 통해서만 접근할 수 있다키는 일반 텍스트일 수도 있고 해시값일 수도 있다성능 상의 이유로, 키는 짧을수록 좋다값은 문자열일수도, 리스트일 수도, 객체일 수도 있다ex) 아마존 다이나모, memcached, 레디스 등시스템 컴포넌트 이번 절에서는 키-값 저장소 구현에 사용될 핵심 컴포넌트들 및 기술들을 살펴볼 것이다 데이터 파티션 대규모의 애플리케이션의 경우, 전체 데이터를 작은 파티션으로 분할한 다음 여러 대의 서버에 저장해야 한다. 데이터를 파티션 단위로 나눌 때 다음 문제..
2024.07.02 -
수평적 규모 확장성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다.안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. 보편적인 해시 함수와 문제점N개의 서버가 있을 때, 부하를 균등하게 나누기 위해 해시 함수 사용 serverIndex = hash(key) % N(서버의 개수) hash(key0) % 4 = 1인 경우, 클라이언트가 캐시에 보관된 데이터를 가져오기 위해 서버 1에 접속 서버 풀(server pool) 크기가 고정되어 있고, 데이터 분포가 균등할 때 잘 동작한다.하지만 서버가 추가되거나 기존 서버가 삭제되면 문제가 생긴다.1번 서버 장애 -> 1번 동작 중지 -> 서버 풀 크기 3 변경 -> 나머지 서버 인덱스 값들이 달라짐대규모 캐시 미스(c..
안정 해시 설계(hash ring)수평적 규모 확장성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다.안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. 보편적인 해시 함수와 문제점N개의 서버가 있을 때, 부하를 균등하게 나누기 위해 해시 함수 사용 serverIndex = hash(key) % N(서버의 개수) hash(key0) % 4 = 1인 경우, 클라이언트가 캐시에 보관된 데이터를 가져오기 위해 서버 1에 접속 서버 풀(server pool) 크기가 고정되어 있고, 데이터 분포가 균등할 때 잘 동작한다.하지만 서버가 추가되거나 기존 서버가 삭제되면 문제가 생긴다.1번 서버 장애 -> 1번 동작 중지 -> 서버 풀 크기 3 변경 -> 나머지 서버 인덱스 값들이 달라짐대규모 캐시 미스(c..
2024.06.21 -
알림 시스템 설계 시 고려 사항 어떤 종류의 알림을 지원하는지 - 푸시 알림, SMS 메시지, 이메일 실시간 시스템이어야 하는지? - 연성 실시간 시스템이라고 가정. 가능한 한 빨리 전달되어야 하지만 높은 부하가 걸렸을 때 약간의 지연 무방 어떤 종류의 단말을 지원하는지? - iOS, 안드로이드, 랩톱/데스크톱 지원 사용자에게 보낼 알림은 누가 만들 수 있는지? - 클라이언트 어플리케이션 프로그램이 만들 수 도 있고 서버 측에서 스케쥴링할 수도 있음 사용자가 알림을 받지 않도록 설정할 수 있어야 하는지? - 설정할 수 있어야 함 하루에 몇 건의 알림을 보낼 수 있는지? - 천만 건 모바일 푸시 알림, 백만건 SMS 메시지, 5백만 건의 이메일을 보낼 수 있어야 함 개략적인 설계안 각각의 서비스 : 마이크..
알림 시스템 설계알림 시스템 설계 시 고려 사항 어떤 종류의 알림을 지원하는지 - 푸시 알림, SMS 메시지, 이메일 실시간 시스템이어야 하는지? - 연성 실시간 시스템이라고 가정. 가능한 한 빨리 전달되어야 하지만 높은 부하가 걸렸을 때 약간의 지연 무방 어떤 종류의 단말을 지원하는지? - iOS, 안드로이드, 랩톱/데스크톱 지원 사용자에게 보낼 알림은 누가 만들 수 있는지? - 클라이언트 어플리케이션 프로그램이 만들 수 도 있고 서버 측에서 스케쥴링할 수도 있음 사용자가 알림을 받지 않도록 설정할 수 있어야 하는지? - 설정할 수 있어야 함 하루에 몇 건의 알림을 보낼 수 있는지? - 천만 건 모바일 푸시 알림, 백만건 SMS 메시지, 5백만 건의 이메일을 보낼 수 있어야 함 개략적인 설계안 각각의 서비스 : 마이크..
2024.01.16