programing

동기 클러스터링과 비동기 클러스터링

firstcheck 2022. 12. 27. 21:27
반응형

동기 클러스터링과 비동기 클러스터링

Galera Cluster의 MariaDD 기술 자료를 읽다가 다음과 같은 사실을 알게 되었습니다.

동기식 복제와 비동기식 복제의 기본적인 차이점은 "동기식"으로 클러스터의 한 노드에서 변경이 발생한 경우 다른 노드에서 "동기식" 또는 동시에 변경되었음을 보증한다는 것입니다."비동기"는 "마스터" 노드에 변경을 적용하는 것과 "슬레이브" 노드에 변경을 전파하는 것 사이의 지연에 대해 보장하지 않습니다.지연은 짧을 수도 있고 길 수도 있습니다.이는 마스터 노드가 크래시할 경우 최신 변경사항 중 일부가 손실될 수 있음을 의미합니다.

마지막 문장에서는 비동기 클러스터 셋업에서 슬레이브에 대한 업데이트가 동시에 수행되지 않더라도 마스터에서 업데이트가 수행될 때 이러한 업데이트가 빈 로그 파일에 기록된다는 것을 항상 이해했습니다.따라서 모든 데이터가 슬레이브에 전달되기 전에 마스터가 크래쉬한 경우에도 bin 로그 파일에 업데이트가 기록되었기 때문에 마스터가 복원될 때 업데이트가 계속 진행됩니다.제 이해가 틀렸는지 누가 좀 알려주세요.감사해요.

일반 복제 쌍의 예에서는 마스터가 돌아온 후에 슬레이브가 따라잡습니다.마스터가 돌아왔다고 가정해도 실제로 데이터가 손실되지는 않지만 마스터가 영구적으로 비활성 상태일 경우 데이터가 손실됩니다.기술 자료 문서에서는 복제 스트림의 전반적인 무결성이 아니라 복제 지연에 대해 설명합니다.

통상의 레플리케이션에서는 슬레이브 IO 스레드(마스터로부터 레플리케이션이벤트를 취득하는 부분)가 마스터를 따라잡을 수 있는 경우 마스터가 크래시하면 슬레이브가 몇 초밖에 없어집니다.단, 예를 들어 1시간 늦어지면 슬레이브는 1시간의 데이터에 액세스 할 수 없게 됩니다.슬레이브상의 데이터에 액세스 할 수 없게 되는 또 하나의 방법은 최대 릴레이 로그사이즈가 설정되어 있는 경우입니다.

Galera는 쓰기가 실제로 어느 노드에서나 커밋되기 전에 클러스터 내의 모든 노드에 쓰기가 전송되도록 합니다.따라서 쓰기가 완료된 노드가 쓰기를 커밋하면 다른 모든 노드가 동일한 쓰기를 커밋합니다.Galera에서는 기본적으로 모든 노드에서 모든 쓰기가 동시에 수행됩니다.정상 동작 중에 노드가 손실되어도 데이터 손실은 발생하지 않습니다.

언급URL : https://stackoverflow.com/questions/26248085/synchronous-vs-asynchronous-clustering

반응형