[CS] 분산환경의 복제(Replication)와 일관성(Consistency) 유지
2024. 1. 5. 18:56
반응형
Replication
데이터나 서비스를 여러 개로 복제하는 것을 의미한다. 이는 분산 시스템에서 Scalability(확장성) 및 Reliability(신뢰성) 확보를 위한 테크닉으로서 매우 중요한 개념이다.
Object Replication 방법
- 애플리케이션이 복제하는 방법 : App이 Consistency Issue를 해결해야 함
- Middleware가 복제 : 개발을 단순화하지만 Object 특화 솔루션을 어렵게 한다.
데이터 복제와 컴퓨팅 작업의 복제
- Data Replication : 여러 저장장치에 동일한 데이터가 저장된 경우(DNS, 브라우저 캐시..)
- Computation Replication : 동일한 컴퓨팅 작업이 여러 번 실행되는 경우, 이는 결과를 평균화하거나 일부 실패가 발생하더라도 더 안정적인 결과를 얻기 위해 사용될 수 있다.
- 공간에 따른 복제(별도 장치에서 병렬로 처리)
- 시간에 따른 복제(단일 장치에서 여러 번 반복실행)
Replication의 이유
- Reliablilty : Fault Tolerance -> 하나의 복제본이 실패하더라도 다른 복제본이 여전히 이용 가능
- Performance : 분산 시스템의 크기에 따라서 Size Scale, 병렬 처리를 통해 성능 향상
Replication의 Issue
- Consistency
- 일관성을 유지하기 위해서 여러 복제본 간의 동기화가 반드시 필요하다.
- 이를 유지하기 위한 리소스 및 대역폭 증가가 있을 수 있음.
- Multiple Copies
- Access Latency를 줄여 Performance 향상이 목적, 하지만..
- Consistency 유지를 위한 Overhead 발생(Read < Write 시)
- Consistency 유지 그 자체의 문제
- Tight Consistency (엄격한 일관성)
- Global Synchronzation이 필요함. -> 높은 Performance 비용이 필요
- Solution : Loosen Consistency(느슨한 일관성)
- 다양한 일관성 Semantics(의미론)이 가능해짐
Consistency Semantic (일관성 방법론)
Data-Centric Consistency(데이터 중심 일관성)
- 프로세스와 데이터 저장소 간의 규칙
- Last Write를 읽어야 하는데, Global Clock이 없으면 이를 정의하기 힘듬. -> Consistency의 정도/범위에 대한 정의 필요
Strict Consistency(엄격한 일관성)
- 공유 데이터의 Read -> 가장 최근의 Write값 반환
- 작업 순서를 전제로 하지만, 분산 환경에서는 이를 정의하는 것이 불가능하다.
Sequential Consistency(순차적 일관성)
- 모든 프로세스의 작업이 어떤 Sequential한 순서로 실행되었다면(순서 결정) -> 서로 다른 Machine에서 결과는 동일해야 한다.
- Write 시에는 상호적으로 어떤 순서로든 예약될 수 있다. → Read시에는 순서가 일정해야 함
Casual Consistency(인과 일관성)
- Related된 Write는 모든 프로세스에서 동일한 Order로 볼 수 있어야 한다.
- Concurrent한(동시에 일어난) Write는 다른 Machine에서 다른 순서로 보일 수 있다.
Content / Image Reference
Tannenbaum and Van Steen :: Distributed Systems: Principles and Paradigms (PDF)
반응형
'CS > 아키텍쳐 & 분산시스템' 카테고리의 다른 글
[CS] 아키텍쳐 관점에서의 DNS와 Namespace (0) | 2024.01.07 |
---|---|
[CS] 분산 시스템의 핵심목표 : Fault Tolerance(결함 내성) (1) | 2024.01.05 |
[CS] 분산 시스템에서의 리더 선출 알고리즘 (1) | 2024.01.05 |
[CS] 분산 상호 배제 (Distributed Mutual Exclusion) (1) | 2024.01.05 |
[CS] 동기화(Syncronization)와 Clock (1) | 2024.01.05 |