분산 시스템
-
분산 키-값 저장소 설계시스템 설계 2022. 8. 30. 23:27
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 이번 챕터에서는 키-값 저장소 설계에 대해서 공부한 내용을 정리했다. 키 값 저장소란? 키 값 저장소는 비 관계형 데이터베이스로 키-값 데이터 쌍을 저장하며, 내부의 데이터는 키를 통해서만 접근할 수 있기 때문에 키를 고유 식별자로 가져야 한다. 키는 일반 텍스트 일수도 있고, 해시 값일 수도 있다. 키는 성능상의 이유로 짧을수록 좋으며, 값은 문자열, 객체, 리스트 등 어떤 값도 가능하다. 대표적인 키 값 저장소로 다이나모 DB, Memcached, Redis 등이 있다. 어떠한 특징을 갖는 키-값 저장소를 살펴볼 것인가? 해당 챕터에서는..
-
분산 환경에서의 장애감지: Gossip Protocol시스템 설계 2022. 8. 28. 17:43
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트 입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 분산 시스템에서는 보통 두 대이상의 서버가 똑같이 한대의 서버에 장애가 발생한 것을 감지해야 해당 서버에 장애가 발생했다고 간주한다. 모든 노드 사이에 멀티캐스팅 채널을 두어, 노드의 장애를 발생할 수 있지만 이는 노드 수가 늘어나면 비효율적이다. 이러한 분산 환경에서 장애를 감지할 때는 gossip protocol을 이용하는 것이 효율적이다. 동작원리 - 각 노드는 멤버쉽 목록을 유지 - 멤버쉽 목록은 멤버 ID와 heartbeat counter 쌍의 목록을 나타냄 - 각 노드는 주기적으로 자신의 heartbeat counter를 증가시..
-
분산 환경에서의 일관성 처리: 정족수 합의시스템 설계 2022. 8. 28. 15:07
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트 입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 다중화된 노드에 데이터를 분산 저장할 때, 정족수 합의 알고리즘을 이용해서 일관성 수준을 조절한다. N = 사본의 갯수 W = 쓰기 연산에 대한 정족수로 쓰기 연산이 성공한 것으로 간주되려면, 적어도 W개의 서버로부터 쓰기 연산이 성공했다는 응답을 받아야 한다. R = 읽기 연산에 대한 정족수로 읽기 연산이 성공한 것으로 간주되려면, 적어도 W개의 서버로부터 읽기 연산이 성공했다는 응답을 받아야 한다. 예시 다음은 N=3일 때 key1을 통해서 val1을 서버에 저장할 때다. 참고로 중재자는 클라이언트와 노드 사이의 Proxy이며, 노드가..