Book/분산 컴퓨팅
[분산 컴퓨팅] 3장 - 이중화된 데이터베이스 문제
31514
2024. 10. 28. 12:26
개요
데이터베이스 장애 대비를 위해 다른 지역에 복제본을 생성했다고 가정해보자.
이 경우 두 데이터베이스 사이의 동기화 문제를 해결하는 방법 중 하나로 이벤트가 발생한 시간을 기준으로 처리 순서를 결정하는 방식을 떠올릴 수 있다. 하지만 분산된 노드들은 정확히 동일한 시간을 가리키고 있지 않기 때문에, 물리적 시계를 기준으로 이벤트의 순서를 결정하면 문제가 발생할 수 있다.
이를 위해 우리는 크리스티안 알고리즘, 버클리 알고리즘, NTP(네트워크 시간 프로토콜)과 같은 방법을 사용하여 네트워크 통신 지연을 고려한 시간 동기화를 시도한다. 이 기법들은 시간 동기화의 정확도를 높여주지만, 나노초 단위의 완벽한 동기화는 여전히 보장되지 않는다.
따라서 정확한 물리적 시각을 사용하는 대신, Lamport Clock과 같은 논리적 시계를 통해 이벤트 간의 순서를 규정하는 방식을 택할 수 있다. Lamport Clock은 절대적인 시각을 기반으로 하지 않고, 분산된 장치들이 서로 어떤 작업이 먼저 일어났는지를 파악하는 데 중점을 두어 동기화 문제를 해결한다. 이로써 분산된 환경에서도 작업 간의 순서 보장을 효과적으로 달성할 수 있다.
결론
이벤트의 발생 시간이 중요하면 물리적인 시간, 이벤트 발생의 순서가 중요하면 논리적인 시간을 사용한다.