책/데이터 중심 어플리케이션 설계
-
맵리듀스와 분산 파일 시스템책/데이터 중심 어플리케이션 설계 2024. 6. 27. 13:57
맵 리듀스(MapReduce)는 구글에서 개발한 대용량 데이터 처리를 위한 분산 컴퓨팅 모델이다. 이 모델은 주로 빅데이터를 분석하고 처리하는 데 사용된다. 맵 리듀스는 두 가지 주요 단계로 구성돠는데 크게 맵(Map) 단계와 리듀스(Reduce) 단계이다. 먼저, 맵(Map) 단계에서는 입력 데이터를 여러 조각으로 나누어 각 조각을 병렬로 처리한다.. 각 조각은 키-값 쌍으로 변환되며, 이 쌍들이 중간 결과로 생성된다. 예를 들어, 단어 빈도를 계산하는 경우, 입력 텍스트의 각 단어를 키로, 단어의 출현 횟수를 값으로 하는 쌍이 만들어 질 수 있다. 그 다음, 리듀스(Reduce) 단계에서는 맵 단계에서 생성된 중간 결과를 취합하여 최종 결과를 생성한다. 같은 키를 가진 데이터들을 모아서 지정된 연산을..
-
분산 시스템에서의 일관성 모델: 다이나모 스타일과 완화된 일관성책/데이터 중심 어플리케이션 설계 2024. 6. 26. 23:38
분산 시스템에서 데이터 일관성을 유지하는 것은 매우 중요한 과제이다. 특히, 데이터가 여러 노드에 복제되는 환경에서 일관성을 유지하면서도 성능과 가용성을 높이는 것은 어려운 일이다. 다이나모 스타일 복제를 사용하는 시스템에서의 일관성 모델과 완화된 일관성 모델에 대해 알아보.다이나모 스타일 복제다이나모 스타일 복제(Dynamo-style replication)는 리더 없는 분산 시스템에서 사용된다. 이러한 시스템은 모든 노드가 동일한 역할을 수행하며, 쓰기 및 읽기 요청이 임의의 노드에 분산된다. 이로 인해 특정 노드의 장애가 시스템 전체에 미치는 영향을 최소화할 수 있다.다이나모 스타일 복제를 사용하는 시스템은 궁극적 일관성(eventual consistency)을 제공한다. 궁극적 일관성이란 시간이 ..
-
분산 시스템에서 2PC ( 2-Phase-Commit) 해결책과 한계책/데이터 중심 어플리케이션 설계 2023. 7. 30. 23:26
분산 시스템에서 2PC와 일관성 보장: 해결책과 한계 분산 시스템에서는 여러 노드가 협력하여 작업을 수행한다. 이러한 시스템에서 트랜잭션의 일관성을 보장하는 것은 매우 중요하다. 이를 위해 다양한 방법이 사용되는데, 그 중 하나가 2PC(2-Phase Commit) 프로토콜이다. 2PC는 분산 트랜잭션의 일관성을 보장하지만, 단점도 존재한다. 2PC(2-Phase Commit) 프로토콜2PC의 원리2PC는 두 단계로 구성된다: 준비 단계(Prepare Phase)와 커밋 단계(Commit Phase)이다.준비 단계 (Prepare Phase): 코디네이터는 모든 참가자에게 트랜잭션을 준비할 수 있는지 요청한다. 각 참가자는 준비가 되었는지 여부를 코디네이터에게 응답한다. 모든 참가자가 준비 상태임을 응..
-
합의 알고리즘에 대한 이해책/데이터 중심 어플리케이션 설계 2023. 5. 30. 18:51
분산 시스템에서 합의 알고리즘은 여러 노드들이 하나의 일관된 결정을 내리도록 하는 메커니즘이다. 분산 시스템은 다양한 노드들이 협력하여 작업을 수행하므로, 데이터의 일관성과 신뢰성을 유지하기 위해 합의 알고리즘이 필요하다. 합의 알고리즘은 비잔틴 결함이 없다고 가정하는데 비잔틴 결함이 뭘까? 비잔틴 결함은 분산 시스템에서 발생할 수 있는 가장 심각한 유형의 결함 중 하나이다. 이는 시스템 내 일부 노드가 실패할 때, 단순히 작동을 멈추는 것이 아니라 의도적으로 잘못된 정보를 보내거나 예측할 수 없는 방식으로 행동하여 전체 시스템의 동작을 방해하는 것을 의미한다. 그렇다면 합의 알고리즘에서 비잔틴 결함이 없다고 가정해도 될까?비잔틴 결함의 발생 원인비잔틴 결함은 다양한 원인으로 발생할 수 있다. 첫째는 악..