가상 면접 사례로 배우는 대규모 시스템 설계
-
분산 환경에서의 일관성 처리: 정족수 합의시스템 설계 2022. 8. 28. 15:07
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트 입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 다중화된 노드에 데이터를 분산 저장할 때, 정족수 합의 알고리즘을 이용해서 일관성 수준을 조절한다. N = 사본의 갯수 W = 쓰기 연산에 대한 정족수로 쓰기 연산이 성공한 것으로 간주되려면, 적어도 W개의 서버로부터 쓰기 연산이 성공했다는 응답을 받아야 한다. R = 읽기 연산에 대한 정족수로 읽기 연산이 성공한 것으로 간주되려면, 적어도 W개의 서버로부터 읽기 연산이 성공했다는 응답을 받아야 한다. 예시 다음은 N=3일 때 key1을 통해서 val1을 서버에 저장할 때다. 참고로 중재자는 클라이언트와 노드 사이의 Proxy이며, 노드가..
-
안정 해시 설계시스템 설계 2022. 8. 2. 22:35
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트 입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 수평적 규모 확장성 구조를 위해서는 데이터나 요청을 서버에 균등하게 나누는 것이 중요하다. 이번 포스팅에서는 수평적 규모 확장성 구조에 왜 안정해시 설계가 필요한지에 대해서 작성한다. 우선 안정 해시 설계에 대해서 알아보기전에, 어떤 문제를 풀려고 하는지에 대해서부터 알아보자. 다음 문제에 주목하자. 해시 키 재배치(rehash) 문제 4개의 캐시 서버가 있다고 가정하자. 보편적으로 데이터를 4개의 캐시 서버에 고루 배정할 때 다음과 같은 해시 함수를 사용할 수 있다. serverIndex = hash(key) % 4 예를 들어 hash(..