책/대규모 시스템 설계 기초3 안정 해시 (Consistent Hash) - 해시 키 재배치(rehash) 문제 수평적 규모 확장성을 위해 요청 또는 데이터를 서버에 균등하게 분배 하는 것이 중요한데 어떤 기술을 사용하지? -> 안정 해시 사용 해시 키 재배치(rehash) 문제 Case - 해시 함수 : 서버인덱스 = hash(key) % n (n = 서버 개수) - 4개의 데이터베이스 key(데이터) 해시 서버인덱스 (해시 % 4) data00 1111 3 data01 2222 2 data02 3333 1 data03 4444 0 data04 5555 3 data05 6666 2 data06 7777 1 data07 8888 0 위 key(데이터)들은 아래와 같이 데이터베이스에 저장된다. 이 방법은 서버 풀(server pool)의 크기 또는 서버의 개수가 고정되어 있을때, 데이터 분포가 균등할 때는 잘 동작한.. 2023. 6. 8. 데이터베이스 다중화(Master-Slave) Master - Slave Master 데이터베이스 : Create, Update, Delete (쓰기 연산) Slave 데이터베이스 : Read (읽기 연산) 일반적으로 Slave 데이터베이스의 숫자가 Master 데이터베이스 보다 더 많음 why? -> 쓰기 연산보다는 읽기 연산이 더 많기 때문이다 장점 1. 더 나은 성능 Master - Slave 모델에서 모든 데이터 변경 연산은 Master 데이터베이스 서버로만 전달되고 읽기 연산은 Slave 데이터베이스 서버들로 분산된다. -> 병렬로 처리될 수 있는 쿼리의 수가 늘어나므로 성능이 좋아진다. 2. 안정성(reliability) 어떠한 이유(자연재해 등)로 데이터베이스 서버 일부가 파괴되어도 데이터의 보존이 보장된다. -> 데이터를 여러 리전에 .. 2023. 4. 2. Index 1장 - 사용자 수에 따른 규모 확장성 - 단일 서버 - 데이터베이스 - 수직적 규모 확장 vs 수평적 규모 확장 - 캐시 - 콘텐츠 전송 네트워크(CDN) - 무상태(stateless) 웹 계층 - 데이터 센터 - 메시지 큐 로그, 메트릭 그리고 자동화 데이터베이스의 규모 확장 백만 사용자, 그리고 그 이상 2장 - 개략적인 규모 추정 - 2의 제곱수 - 모든 프로그래머가 알아야 하는 응답지연 값 - 가용성에 관계된 수치들 - 예제: 트위터 QPS와 저장소 요구량 추정 - 팁 3장 - 시스템 설계 면접 공략법 - 효과적 면접을 위한 4단계 접근법 4장 - 처리율 제한 장치의 설계 5장 - 안정 해시 설계 - 해시 키 재배치(rehash) 문제 - 안정 해시 6장 - 키 값 저장소 설계 - 문제 이해 및.. 2023. 3. 23. 이전 1 다음